But I found no matter how small I made the ring buffers, 64 huge pages wasn't enough with Mellanox cards. My hello world programs worked fine with 64 huge pages on Intel cards. > Hugepages depends on how much memory your program is going to allocate It seems like something similar should be the first apps everyone beginner sees. To understand if I had the basics right, I wrote a simple UDP sender and UDP echoer. I cannot read them to learn how to write a DPDK app. > Hello world apps are testpmd or dpdk-pktgen. It's not at all clear if/how back-pressure is asserted to the NICs. There's some kind of fairness rules that either the hypervisor or the TOR enforces (I think). I'm working on a public cloud, so the rules of what "line rate" really is are not available. When I tried it, I found I could send nearly twice as many packets, but got lots of packet loss. I still don't know if there is any advantage to using more than 1 queue (aka ring) when using a single core. The docs should explain why/how the defaults values were chosen in the example apps. ![]() Mostly for me the bottleneck is the DDR RAM bandwidth, and using more cores doesn't increase that. In my tests I could even do the UDP checksum in software at 40 Gbit/s on one core. A single core on a 5 year old laptop CPU can memcpy at a few hundred Gbit/s. How many is really a question of how fast your processor is, how many cores, and what rates you're doing.įWIW, as far as I can tell, if you have no significant CPU work to do per packet, then you never need more than one core.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |