Hi, I wrote if_wm multiqueue PoC using my MSI/MSI-X prototype. # Here is MSI/MSI-X prototype memo # http://mail-index.netbsd.org/tech-kern/2014/11/07/msg017897.html
Here is the PoC, which include [email protected]'s work NET_MPSAFE if_bridge code. https://github.com/knakahara/netbsd-src/tree/k-nakahara-work/if_wm-bridge-measurement # Because I haven't written xen support code, this code cannot release build... Furthermore, I measured the performance of the kernel, which is built above code with enabling "options NET_MPSAFE"("NET_MPSAFE PoC kernel"). The measurement environment is below. + Device under target (DUT) + supermicro A1SRi-2758F - 8core Atom C2578 - I354 ethernet controller x4 - DUT used as bridge between 2 NIC - The traffic is bi-directional UDP over DUT Here is the preliminary report. http://www.netbsd.org/~knakahara/bridge-mpsafe/Mbps.png The meaning of the graphs is below. + horizontal axis is packet size - from 74 byte to 1508 byte - vertical axis is mesurement results(Mbps) + the meaning of each line graph + red graph("MPSAFE-8core-Mbps.dat") - the kernel is "NET_MPSAFE PoC kernel" - using 8 core by dstributing each 1 NIC queue to other cores + green graph("MPSAFE-4core-Mbps.dat") - the kernel is "NET_MPSAFE kernel" - using 4 core by dstributing each 2 NIC queue to other cores + blue graph("MPSAFE-2core-Mbps.dat") - the kernel is "NET_MPSAFE PoC kernel" - using 2 core by dstributing each 4 NIC queue to other cores + green graph("MPSAFE-1core-Mbps.dat") - the kernel is "NET_MPSAFE PoC kernel" - using only 1 core by centralizing all NIC queues to one core + light blue graph("GENERIC-Mbps.dat") - the kernel to build the plain NetBSD-current code at Jan 07 - of course, using only 1 core We will report more details in AsiaBSDCon 2015, if our submission is accepted. :) Thanks, -- ////////////////////////////////////////////////////////////////////// Internet Initiative Japan Inc. Device Engineering Section, Core Product Development Department, Product Division, Technology Unit Kengo NAKAHARA <[email protected]>
