Date: Wed, 05 Nov 2014 20:00:24 +0300 From: "Andrey V. Elsukov" <bu7cher@yandex.ru> To: Evandro Nunes <evandronunes12@gmail.com> Cc: "Alexander V. Chernikov" <melifaro@freebsd.org>, "freebsd-net@freebsd.org" <net@freebsd.org> Subject: Re: netmap in GENERIC, by default, on HEAD Message-ID: <545A57A8.2010904@yandex.ru> In-Reply-To: <CAG4HiT46ZT1dDTt7Asv8gagPKrwH%2BTS-uUsvKDhNKiXMDM68nA@mail.gmail.com> References: <92D22BEA-DDE5-4C6E-855C-B8CACB0319AC@neville-neil.com> <545A47A5.4010601@yandex.ru> <CAG4HiT46ZT1dDTt7Asv8gagPKrwH%2BTS-uUsvKDhNKiXMDM68nA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --w6HrlTCB1wwmluQU9FwTkbOBVFpAuU9P2 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 05.11.2014 19:18, Evandro Nunes wrote: > On Wed, Nov 5, 2014 at 1:52 PM, Andrey V. Elsukov <bu7cher@yandex.ru> w= rote: >=20 >> On 05.11.2014 18:39, George Neville-Neil wrote: >>> Howdy, >>> >>> Last night (Pacific Time) I committed a change so that GENERIC, on HE= AD >>> has the netmap >>> device enabled. This is to increase the breadth of our testing of th= at >>> feature prior >>> to the release of FreeBSD 11. >>> >>> In two weeks I will enable IPSec by default, again in preparation for= 11. >> >> Hi, >> >> recently we did some IP forwarding tests and the GENERIC kernel is >> several times faster than GENERIC+IPSEC. Even when IPSEC has no SA. >> >> I didn't do test on vanilla kernel, but our kernel is able forward >> IPv4/IPv6 on rate close to 8.6 Mpps. The same kernel compiled with IPS= EC >> can forward only 180 kpps. I think this problem should be solved befor= e >> enabling it in GENERIC. >> >=20 > this forward rate you mention is related to netmap? or usual > forwarding/fastforwarding? this is a huge number, do you mind sharing y= our > dmesg output and top -PSH output so I can check for interrupt CPU usage= and > other relevant stuff? This is patched kernel without netmap and fastforwarding. We removed all lock contention on the forwarding path to be sure that it doesn't affect IPSEC. Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz (2200.05-MHz K8-class CPU) FreeBSD/SMP: Multiprocessor System Detected: 32 CPUs FreeBSD/SMP: 2 package(s) x 8 core(s) x 2 SMT threads real memory =3D 68736253952 (65552 MB) avail memory =3D 66370662400 (63295 MB) ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.5.15> port 0x7020-0x703f mem 0xde680000-0xde6fffff,0xde704000-0xde707fff irq 32 at device 0.0 on pci4 ix0: Using MSIX interrupts with 16 vectors ix0: Ethernet address: 90:e2:ba:0d:73:54 ix0: PCI Express Bus: Speed 5.0GT/s Width x8 This is IPv6 forwarding test - 6 /64 prefixes each has 200 random addresses. They are routed between 6 vlans. # netstat -I ix0 -w 1 input (ix0) output packets errs idrops bytes packets errs bytes colls 8917043 0 0 571436864 8149880 0 522587200 0 8943391 0 0 571598336 8179318 0 525085504 0 8928155 0 0 571262144 8168254 0 522712192 0 8921342 0 937 571693504 8128132 0 521997184 0 8924322 0 0 571170048 8211500 0 520264320 0 8934564 0 0 571483584 8180040 0 524475264 0 8937039 0 0 571384640 8234779 0 525686080 0 8926528 0 0 571481728 8160380 0 524265920 0 8923160 0 0 571397248 8229839 0 522569408 0 8930070 0 1705 571594944 8216092 0 528481152 0 8916249 0 0 571294784 8184286 0 524399360 0 8937301 0 0 571391040 8221895 0 526383744 0 8927967 0 0 571613312 8164779 0 524997760 0 8936306 0 0 571251712 8167960 0 519575744 0 8922983 0 306 571430528 8216466 0 525893056 0 8916209 0 0 571434240 8202692 0 526046336 0 8945608 0 0 571426624 8265756 0 524815552 0 8925548 0 1045 571444480 8229681 0 530935232 0 8932145 0 0 571747200 8149710 0 523409536 0 8929339 0 0 571683200 8186790 0 520719040 0 8917697 0 0 571585152 8212635 0 525775680 0 # top -PSH last pid: 2788; load averages: 12.01, 4.76, 1.92 up 0+00:04:38 20:58:48 471 processes: 45 running, 344 sleeping, 82 waiting CPU 0: 0.0% user, 0.0% nice, 21.6% system, 68.2% interrupt, 10.2% idle= CPU 1: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 2: 0.0% user, 0.0% nice, 2.7% system, 84.3% interrupt, 12.9% idle= CPU 3: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 4: 0.0% user, 0.0% nice, 3.9% system, 86.7% interrupt, 9.4% idle= CPU 5: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 6: 0.0% user, 0.0% nice, 5.5% system, 88.6% interrupt, 5.9% idle= CPU 7: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 8: 0.0% user, 0.0% nice, 3.5% system, 90.2% interrupt, 6.3% idle= CPU 9: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 10: 0.0% user, 0.0% nice, 3.1% system, 87.1% interrupt, 9.8% idle= CPU 11: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 12: 0.0% user, 0.0% nice, 27.5% system, 62.0% interrupt, 10.6% idle= CPU 13: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 14: 0.0% user, 0.0% nice, 6.3% system, 85.9% interrupt, 7.8% idle= CPU 15: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 16: 0.0% user, 0.0% nice, 17.6% system, 79.6% interrupt, 2.7% idle= CPU 17: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 18: 0.0% user, 0.0% nice, 2.4% system, 92.2% interrupt, 5.5% idle= CPU 19: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 20: 0.0% user, 0.0% nice, 7.8% system, 86.7% interrupt, 5.5% idle= CPU 21: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 22: 0.0% user, 0.0% nice, 6.3% system, 87.5% interrupt, 6.3% idle= CPU 23: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 24: 0.0% user, 0.0% nice, 1.6% system, 89.4% interrupt, 9.0% idle= CPU 25: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 26: 0.0% user, 0.0% nice, 2.0% system, 91.8% interrupt, 6.3% idle= CPU 27: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 28: 0.0% user, 0.0% nice, 2.7% system, 87.8% interrupt, 9.4% idle= CPU 29: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 30: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle= CPU 31: 0.0% user, 0.0% nice, 0.4% system, 0.0% interrupt, 99.6% idle= Mem: 17M Active, 13M Inact, 716M Wired, 61G Free ARC: 28M Total, 6102K MFU, 20M MRU, 16K Anon, 373K Header, 1492K Other Swap: 16G Total, 16G Free # top -HSIzts1 last pid: 2805; load averages: 13.88, 7.92, 3.56 up 0+00:06:40 21:00:50 469 processes: 45 running, 342 sleeping, 82 waiting CPU: 0.0% user, 0.0% nice, 3.5% system, 39.3% interrupt, 57.1% idle Mem: 17M Active, 13M Inact, 716M Wired, 61G Free ARC: 28M Total, 6105K MFU, 20M MRU, 16K Anon, 373K Header, 1494K Other Swap: 16G Total, 16G Free PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 12 root -92 - 0K 1504K CPU22 22 3:38 87.35% intr{irq293: ix0:que } 12 root -92 - 0K 1504K WAIT 26 3:41 86.57% intr{irq295: ix0:que } 12 root -92 - 0K 1504K CPU18 18 3:41 86.47% intr{irq291: ix0:que } 12 root -92 - 0K 1504K CPU28 28 3:41 86.47% intr{irq296: ix0:que } 12 root -92 - 0K 1504K CPU24 24 3:39 86.18% intr{irq294: ix0:que } 12 root -92 - 0K 1504K WAIT 4 3:35 86.18% intr{irq284: ix0:que } 12 root -92 - 0K 1504K CPU8 8 3:35 86.18% intr{irq286: ix0:que } 12 root -92 - 0K 1504K CPU6 6 3:33 85.60% intr{irq285: ix0:que } 12 root -92 - 0K 1504K CPU20 20 3:32 85.50% intr{irq292: ix0:que } 12 root -92 - 0K 1504K CPU10 10 3:32 84.86% intr{irq287: ix0:que } 12 root -92 - 0K 1504K CPU2 2 3:32 84.67% intr{irq283: ix0:que } 12 root -92 - 0K 1504K WAIT 14 3:31 84.38% intr{irq289: ix0:que } 12 root -92 - 0K 1504K CPU16 16 3:11 77.59% intr{irq290: ix0:que } 12 root -92 - 0K 1504K CPU0 0 2:42 64.70% intr{irq282: ix0:que } 12 root -92 - 0K 1504K CPU12 12 2:44 63.67% intr{irq288: ix0:que } 0 root -92 0 0K 4672K - 12 1:01 26.66% kernel{ix0 que} 0 root -92 0 0K 4672K - 0 0:58 23.00% kernel{ix0 que} 0 root -92 0 0K 4672K - 16 0:48 18.16% kernel{ix0 que} 0 root -92 0 0K 4672K - 20 0:20 7.86% kernel{ix0 que} 0 root -92 0 0K 4672K - 14 0:15 5.57% kernel{ix0 que} 0 root -92 0 0K 4672K CPU6 6 0:14 5.57% kernel{ix0 que} 0 root -92 0 0K 4672K - 22 0:12 4.59% kernel{ix0 que} 0 root -92 0 0K 4672K - 18 0:06 4.59% kernel{ix0 que} 0 root -92 0 0K 4672K - 28 0:06 4.49% kernel{ix0 que} 0 root -92 0 0K 4672K - 26 0:06 4.39% kernel{ix0 que} 0 root -92 0 0K 4672K - 24 0:05 4.05% kernel{ix0 que} 0 root -92 0 0K 4672K - 8 0:09 3.47% kernel{ix0 que} 0 root -92 0 0K 4672K - 4 0:08 3.17% kernel{ix0 que} 0 root -92 0 0K 4672K - 10 0:07 2.98% kernel{ix0 que} 0 root -92 0 0K 4672K - 2 0:05 2.39% kernel{ix0 que} # pmcstat -TS llc-misses -w10 PMC: [llc-misses] Samples: 3949 (100.0%) , 0 unresolved %SAMP IMAGE FUNCTION CALLERS 28.6 kernel ixgbe_rxeof ixgbe_msix_que:25.9 ixgbe_handle_que:2.8 14.7 kernel bcmp netisr_dispatch_src:13.5 rtalloc_fib_nolock:1.0 5.9 kernel mb_ctor_mbuf uma_zalloc_arg 5.8 kernel ixgbe_mq_start vlan_transmit 4.6 kernel _mtx_trylock ixgbe_mq_start 3.8 kernel ether_nh_input netisr_dispatch_src 2.6 kernel ether_input ixgbe_msix_que 2.4 kernel m_tag_delete_chain m_tag_copy_chain:1.2 uma_zfree_arg:= 0.9 2.4 kernel netisr_dispatch_src ixgbe_rxeof:1.6 ixgbe_msix_que:0.6 2.2 kernel cpu_search_highest cpu_search_highest 2.2 kernel ixgbe_txeof ixgbe_msix_que 2.1 kernel uma_zfree_arg m_freem 2.0 kernel netisr_dispatch ixgbe_msix_que:1.1 ixgbe_rxeof:0.7 2.0 kernel critical_exit uma_zfree_arg 1.9 kernel _thread_lock_flags ithread_loop:1.2 intr_event_schedule_thread:0.6 1.9 kernel _bus_dmamap_sync ixgbe_rxeof 1.3 kernel ixgbe_xmit ixgbe_mq_start_locked 0.9 kernel ixgbe_msix_que intr_event_execute_handlers --=20 WBR, Andrey V. Elsukov --w6HrlTCB1wwmluQU9FwTkbOBVFpAuU9P2 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBAgAGBQJUWlesAAoJEAHF6gQQyKF6aJsH/2bQCyYPCS6dllqsj/o81eMX 814K6t14Q85xvfDuTlfjxqjvTBjxPWrbZK2SBQ1qWB0WZvBQeOnFWn4Whf0QQ46f WRm2ft2YE7tTyBtdY5B9EltErH9MnbXqHGhGMQhrhTOlgmVo6dVVcGi2aXLmiUhm L62dKMpifedM9Ecfm9aZpXZhn0pdVyqriJ+QTND2xeynqC24Lu871CbiHr5UCE8j 8KpKCnS7c3uLcNH4j/pCvMmDcNc/igi9tyVC2wjx4rWm/sZlK+dG74p2UfjZGKow W+f8ITbpnE8OSIQ6OphlJFTdv4Hakc4AtCHrXLceqWixU4Q5i2+ntm/YhNjnJLs= =Xifd -----END PGP SIGNATURE----- --w6HrlTCB1wwmluQU9FwTkbOBVFpAuU9P2--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?545A57A8.2010904>