Hi FreeBSD team, I am writing a network driver using the iflib framework and using the "iperf" tool for performance testing.
1) 10G link with 9000 MTU: Seeing line-rate numbers on both Tx and Rx path. 2) 10G link with 1500 MTU. Seeing line-rate numbers on Tx path, but low numbers on Rx path. Base issue seems to be that Rx buffers are not getting re-filled fast enough. With low thread count, I see higher CPU utilization and lower throughput. But with a higher number of threads, I could see better throughput and lesser cpu utilization. iperf with 1 Thread: CPU Utilization is 80% - 95% - Throughput is ~4Gbps. iperf with 2 Thread: CPU Utilization is 80% - 90% - Throughput is ~7.5Gbps. iperf with 4 Thread: CPU Utilization is 40% - 75% - Throughput is ~9Gbps. iperf with 8 Thread: CPU Utilization is 30% - 70% - Throughput is ~9.2Gbps. So, something is causing CPU utilization higher with lesser thread, which kind of leads to Rx buffers not getting filled up faster and hence the performance numbers drop. From a code perspective, I couldn't see any evident CPU consuming operations in the Rx path. It's plain hardware descriptors reading/processing. Anyway we can debug to find what is causing more CPU utilization (with lesser threads) in my case? Any clues on debugging this issue? Thanks, Rajesh. _______________________________________________ freebsd-net@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"