The execution time of the spi_read function is unstable on Orin module

I have specified two spi node resources in the device tree, one is the spi@3230000 of the orin module and the other is the GPIO emulating spi node. The driver file uses two spi resources respectively to read the ADC device data, and both call the kernel function spi_read. But it has a different execution effect.

I have calculated the time of spi@3230000 executing 500 spi_read functions, the average time is 10ms, the maximum is 25ms, and the minimum is 0.02ms. but the average execution time of spi simulation is 0.3ms, the maximum is 0.8ms, and the minimum is 0.3ms.

The execution effect of the two spi_read is quite different. What might be the reason?

Could you check if it relative with the data size?

The spi_read function reads 24 bytes of data each time. What puzzles me is that the amount of data is the same, but the elapsed time is great difference.

Could you give me some suggestions?
Thank you.

Can you share the test code which your using ? I will take a look and suggest based on it.