I am getting too good results!
Posted:
Hello,
I am using Xillybus on my platform which has a PCIe 1x, and I am doing a simple loopback in my user application. It write a large array and reads it back in C and measures the roundtrip delay. When I do this once, I get around 80 MB/s which is logical, however when I do this in multiple runs and measure the average (which should be a more robust measurement) I get around 10x better result which is around 800 MB/s. This is simply impossible on a 1x. In the best and ideal case I should not get over 500MB/s (roughly), so I'm confused.
Notes:
1. I re-initilize the whole array in every iteration, just to make sure cache is not messing up my numbers, or for example user space to kernel space overhead, etc.
2. I check the integrity i.e. I am indeed getting the right values back from device!
What am I missing? This is so confusing. Any ideas?
Thanks
I am using Xillybus on my platform which has a PCIe 1x, and I am doing a simple loopback in my user application. It write a large array and reads it back in C and measures the roundtrip delay. When I do this once, I get around 80 MB/s which is logical, however when I do this in multiple runs and measure the average (which should be a more robust measurement) I get around 10x better result which is around 800 MB/s. This is simply impossible on a 1x. In the best and ideal case I should not get over 500MB/s (roughly), so I'm confused.
Notes:
1. I re-initilize the whole array in every iteration, just to make sure cache is not messing up my numbers, or for example user space to kernel space overhead, etc.
2. I check the integrity i.e. I am indeed getting the right values back from device!
What am I missing? This is so confusing. Any ideas?
Thanks