Date: Thu, 31 Oct 2013 14:00:02 +0000 From: Venkata Duvvuru <VenkatKumar.Duvvuru@Emulex.Com> To: "freebsd-current@freebsd.org" <freebsd-current@freebsd.org> Subject: Freebsd-10.0-CURRENT problem in the bottom half Message-ID: <BF3270C86E8B1349A26C34E4EC1C44CB2C72A773@CMEXMB1.ad.emulex.com>
next in thread | raw e-mail | index | archive | help
Hi, In Freebsd 10.0-current with Emulex's OCE driver, I observe that the bottom= half is hogging all the CPU which is leading to system sluggishness. I use= d the same hardware to check the behavior on 9.1-RELEASE, everything is fin= e, bottom half is not taking more than 10% of the CPU even at the line rate= speed. But with half the throughput of line rate in Freebsd-10.0-current a= ll the CPUs peak and "top -aSCHIP" shows that it's all bottom half who is e= ating the CPU. I also tried with Intel's 10g NIC to see if it has got the s= ame problem and interestingly it is also having the same problem, where bot= tom half is hogging all the CPU. We did some profiling to check where the problem is. I'm pasting the profil= ing results for reference here. Observation from the results is that uma_z= alloc_arg=3D=3D> __mtx_lock_sleep is taking quite a bit of the CPU. We slee= p at a few places in the bottom half and I think the bottom half scheduling= is what is causing the problem. Please let me know if you see something ve= ry obvious from the profiling data. I'm seeing similar problem with ixgbe driver as well uma_zalloc_arg=3D=3D> = __mtx_lock_sleep is taking quite a bit of the CPU. Top command results are also pasted below for both 10.0-current (where the = problem is seen) and 9.1-RELEASE (where the problem is not seen). 42.99% [372357] __mtx_lock_sleep @ /boot/kernel/kernel 100.0% [372357] __mtx_lock_flags 80.37% [299245] sosend_generic 100.0% [299245] soo_write 17.27% [64322] uma_zalloc_arg 50.43% [32438] m_copym 45.85% [29490] m_getm2 03.72% [2393] tcp_output 00.00% [1] oce_alloc_rx_bufs @ /boot/kernel/oce.ko 02.35% [8762] _sleep @ /boot/kernel/kernel 100.0% [8762] sbwait 00.00% [11] in_matroute 100.0% [11] rtalloc1_fib 00.00% [10] uma_zfree_arg 60.00% [6] m_freem 40.00% [4] sbdrop_internal 00.00% [3] rtalloc1_fib 100.0% [3] rtalloc_ign_fib 00.00% [3] tcp_output 100.0% [3] tcp_usr_send 00.00% [1] _cv_wait 100.0% [1] usb_process 34.98% [303027] trash_ctor @ /boot/kernel/kernel 87.44% [264956] mb_ctor_clust 100.0% [264956] uma_zalloc_arg 100.0% [264956] m_getm2 12.51% [37921] mb_ctor_mbuf 100.0% [37921] uma_zalloc_arg 48.28% [18308] m_getm2 48.18% [18272] m_copym 03.54% [1341] tcp_output 00.05% [150] mb_ctor_pack 100.0% [150] uma_zalloc_arg 96.67% [145] m_getm2 03.33% [5] oce_alloc_rx_bufs @ /boot/kernel/oce.ko 04.36% [37786] __rw_wlock_hard @ /boot/kernel/kernel 100.0% [37786] _rw_wlock_cookie 99.88% [37741] tcp_usr_send 100.0% [37741] sosend_generic 00.11% [43] in_pcblookup_hash 100.0% [43] tcp_input Top -aSCHIP with Freebsd-10.0-CURRENT (throughput 4.5 Gbps) PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 0 root -92 0 0K 960K - 11 4:20 100.00% [kernel{oc= e1 taskq}] 2325 root 103 0 70524K 6240K CPU5 5 0:39 100.00% iperf -c 12= .0.238.24 -t 180 -i 3 -P 10{iperf} 0 root -92 0 0K 960K CPU8 8 5:17 99.37% [kernel{oce= 1 taskq}] 0 root -92 0 0K 960K CPU10 10 4:27 99.37% [kernel{oce= 1 taskq}] 0 root -92 0 0K 960K CPU9 9 3:35 98.88% [kernel{oce= 1 taskq}] 0 root -92 0 0K 960K CPU7 7 7:25 98.29% [kernel{oce= 1 taskq}] 11 root 155 ki31 0K 256K RUN 12 14:55 93.90% [idle{idle:= cpu12}] 11 root 155 ki31 0K 256K CPU13 13 14:48 91.70% [idle{idle:= cpu13}] 11 root 155 ki31 0K 256K CPU14 14 18:35 89.79% [idle{idle:= cpu14}] 11 root 155 ki31 0K 256K RUN 15 20:55 87.99% [idle{idle:= cpu15}] 11 root 155 ki31 0K 256K RUN 4 19:35 73.68% [idle{idle:= cpu4}] 11 root 155 ki31 0K 256K RUN 0 19:47 66.89% [idle{idle:= cpu0}] 11 root 155 ki31 0K 256K CPU2 2 18:53 64.89% [idle{idle:= cpu2}] 11 root 155 ki31 0K 256K CPU6 6 19:55 61.18% [idle{idle:= cpu6}] 11 root 155 ki31 0K 256K CPU1 1 18:46 55.66% [idle{idle:= cpu1}] 11 root 155 ki31 0K 256K RUN 5 19:41 42.48% [idle{idle:= cpu5}] 2325 root 52 0 70524K 6240K sbwait 6 0:15 38.77% iperf -c 12.= 0.238.24 -t 180 -i 3 -P 10{iperf} 11 root 155 ki31 0K 256K CPU3 3 19:06 36.38% [idle{idle:= cpu3}] 2325 root 49 0 70524K 6240K CPU1 1 0:14 35.06% iperf -c 12.= 0.238.24 -t 180 -i 3 -P 10{iperf} 2325 root 44 0 70524K 6240K sbwait 0 0:13 33.59% iperf -c 12.= 0.238.24 -t 180 -i 3 -P 10{iperf} 2325 root 42 0 70524K 6240K sbwait 2 0:13 33.15% iperf -c 12.= 0.238.24 -t 180 -i 3 -P 10{iperf} 2325 root 41 0 70524K 6240K sbwait 6 0:12 29.98% iperf -c 12.= 0.238.24 -t 180 -i 3 -P 10{iperf} 2325 root 36 0 70524K 6240K sbwait 15 0:09 25.10% iperf -c 12.= 0.238.24 -t 180 -i 3 -P 10{iperf} 2325 root 34 0 70524K 6240K CPU13 13 0:09 24.46% iperf -c 12.= 0.238.24 -t 180 -i 3 -P 10{iperf} Top -aSCHIP with Freebsd-9.1-RELEASE (throughput 9.6 Gbps) last pid: 16802; load averages: 0.68, 0.15, 0.05 = u= p 3+06:17:33 07:35:29 187 processes: 15 running, 128 sleeping, 44 waiting CPU 0: 0.0% user, 0.0% nice, 13.8% system, 0.4% interrupt, 85.8% idle CPU 1: 0.0% user, 0.0% nice, 9.4% system, 0.8% interrupt, 89.8% idle CPU 2: 0.0% user, 0.0% nice, 10.2% system, 0.0% interrupt, 89.8% idle CPU 3: 0.0% user, 0.0% nice, 12.6% system, 0.0% interrupt, 87.4% idle CPU 4: 0.0% user, 0.0% nice, 13.4% system, 0.0% interrupt, 86.6% idle CPU 5: 0.4% user, 0.0% nice, 11.0% system, 0.0% interrupt, 88.6% idle CPU 6: 0.0% user, 0.0% nice, 16.9% system, 0.0% interrupt, 83.1% idle CPU 7: 0.0% user, 0.0% nice, 32.3% system, 0.0% interrupt, 67.7% idle CPU 8: 0.0% user, 0.0% nice, 21.7% system, 0.0% interrupt, 78.3% idle CPU 9: 0.0% user, 0.0% nice, 24.4% system, 0.0% interrupt, 75.6% idle CPU 10: 0.4% user, 0.0% nice, 6.3% system, 0.0% interrupt, 93.3% idle CPU 11: 0.0% user, 0.0% nice, 16.1% system, 0.0% interrupt, 83.9% idle Mem: 21M Active, 2201M Inact, 1094M Wired, 1236M Buf, 8552M Free Swap: 15G Total, 15G Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 155 ki31 0K 192K CPU1 1 78.1H 95.75% [idle{idle: c= pu1}] 11 root 155 ki31 0K 192K RUN 10 78.1H 95.07% [idle{idle: c= pu10}] 11 root 155 ki31 0K 192K CPU4 4 78.2H 94.29% [idle{idle: c= pu4}] 11 root 155 ki31 0K 192K CPU2 2 78.2H 94.19% [idle{idle: c= pu2}] 11 root 155 ki31 0K 192K CPU5 5 78.2H 94.09% [idle{idle: c= pu5}] 11 root 155 ki31 0K 192K CPU3 3 78.2H 94.09% [idle{idle: c= pu3}] 11 root 155 ki31 0K 192K CPU6 6 78.1H 86.77% [idle{idle: c= pu6}] 11 root 155 ki31 0K 192K CPU11 11 78.1H 86.57% [idle{idle: c= pu11}] 11 root 155 ki31 0K 192K CPU0 0 77.5H 86.28% [idle{idle: c= pu0}] 11 root 155 ki31 0K 192K RUN 8 78.1H 81.79% [idle{idle: c= pu8}] 11 root 155 ki31 0K 192K CPU9 9 78.1H 78.47% [idle{idle: c= pu9}] 11 root 155 ki31 0K 192K RUN 7 78.1H 76.86% [idle{idle: c= pu7}] 0 root -92 0 0K 784K - 7 0:08 26.37% [kernel{oce2 = taskq}] 0 root -92 0 0K 784K CPU4 9 0:06 22.36% [kernel{oce2 = taskq}] 0 root -92 0 0K 784K - 8 0:07 20.65% [kernel{oce2 = taskq}] 0 root -92 0 0K 784K CPU3 6 0:06 15.48% [kernel{oce2 = taskq}] 0 root -92 0 0K 784K - 0 0:04 10.99% [kernel{oce2 = taskq}] 0 root -92 0 0K 784K - 11 0:04 10.89% [kernel{oce2 = taskq}] 16801 root 26 0 65196K 5292K sbwait 4 0:03 10.50% iperf -c 12.0= .238.24 -t 180 -i 3 -P 10{iperf} 16801 root 23 0 65196K 5292K sbwait 0 0:02 6.79% iperf -c 12.0= .238.24 -t 180 -i 3 -P 10{iperf} 16801 root 23 0 65196K 5292K sbwait 10 0:01 6.05% iperf -c 12.0= .238.24 -t 180 -i 3 -P 10{iperf} 16801 root 24 0 65196K 5292K sbwait 5 0:02 5.96% iperf -c 12.0= .238.24 -t 180 -i 3 -P 10{iperf} 16801 root 24 0 65196K 5292K sbwait 2 0:01 5.66% iperf -c 12.0= .238.24 -t 180 -i 3 -P 10{iperf} 16801 root 22 0 65196K 5292K sbwait 10 0:01 4.79% iperf -c 12.0= .238.24 -t 180 -i 3 -P 10{iperf} 16801 root 23 0 65196K 5292K sbwait 11 0:01 4.59% iperf -c 12.0= .238.24 -t 180 -i 3 -P 10{iperf} 16801 root 23 0 65196K 5292K sbwait 10 0:01 3.96% iperf -c 12.0= .238.24 -t 180 -i 3 -P 10{iperf} 16801 root 22 0 65196K 5292K sbwait 10 0:01 3.96% iperf -c 12.0= .238.24 -t 180 -i 3 -P 10{iperf} 16801 root 21 0 65196K 5292K sbwait 3 0:01 3.27% iperf -c 12.0= .238.24 -t 180 -i 3 -P 10{iperf}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BF3270C86E8B1349A26C34E4EC1C44CB2C72A773>