svn commit: r265792 - head/sys/kern

Slawa Olhovchenkov slw at zxy.spb.ru
Tue Aug 26 22:21:35 UTC 2014


On Tue, Aug 26, 2014 at 03:05:41PM -0700, Adrian Chadd wrote:

> This to me reads like "we need to fix pmc's locking so it's not so
> terrible on multi-multi-core-machines." :)

I am may be wrong, but I don't see in pmc interrupt path.
May be this is need fix too?

> On 26 August 2014 11:54, Slawa Olhovchenkov <slw at zxy.spb.ru> wrote:
> > On Tue, May 20, 2014 at 09:04:25AM -0700, Adrian Chadd wrote:
> >
> >> On 20 May 2014 08:41, Slawa Olhovchenkov <slw at zxy.spb.ru> wrote:
> >>
> >> >> (But if you try it on 10.0 and it changes things, by all means let me know.)
> >> >
> >> > I am try on 10.0, but not sure about significant improvement (may be
> >> > 10%).
> >> >
> >> > For current CPU (E5-2650 v2 @ 2.60GHz) hwpmc don't working (1. after
> >> > collect some data `pmcstat -R sample.out -G out.txt` don't decode any;
> >> > 2. kldunload hwpmc do kernel crash) and I can't collect detailed
> >> > profile information.
> >>
> >> Yup. I'm starting to get really ticked off at how pmc logging on
> >> multi-core devices just "stops" after a while. I'll talk with other
> >> pmc people and see if we can figure out what the heck is going on. :(
> >
> > Now I can test you work on CPU w/ working pmc.
> > Current traffic 16.8 Gbit/s.
> > CPU: Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz (2000.04-MHz K8-class CPU)
> >
> > last pid: 22677;  load averages:  9.12,  9.07,  8.90                                                                                   up 0+04:06:06  22:52:57
> > 47 processes:  3 running, 44 sleeping
> > CPU 0:  11.8% user,  0.0% nice, 43.1% system,  1.6% interrupt, 43.5% idle
> > CPU 1:  11.4% user,  0.0% nice, 51.8% system,  0.0% interrupt, 36.9% idle
> > CPU 2:  10.6% user,  0.0% nice, 46.3% system,  0.8% interrupt, 42.4% idle
> > CPU 3:  11.8% user,  0.0% nice, 45.1% system,  0.4% interrupt, 42.7% idle
> > CPU 4:  13.7% user,  0.0% nice, 43.1% system,  0.0% interrupt, 43.1% idle
> > CPU 5:  14.5% user,  0.0% nice, 45.9% system,  0.4% interrupt, 39.2% idle
> > CPU 6:   0.0% user,  0.0% nice,  5.5% system, 68.6% interrupt, 25.9% idle
> > CPU 7:   0.0% user,  0.0% nice,  4.3% system, 70.2% interrupt, 25.5% idle
> > CPU 8:   0.0% user,  0.0% nice,  2.7% system, 69.4% interrupt, 27.8% idle
> > CPU 9:   0.0% user,  0.0% nice,  4.7% system, 67.1% interrupt, 28.2% idle
> > CPU 10:  0.0% user,  0.0% nice,  3.1% system, 76.9% interrupt, 20.0% idle
> > CPU 11:  0.0% user,  0.0% nice,  5.1% system, 58.8% interrupt, 36.1% idle
> > Mem: 322M Active, 15G Inact, 96G Wired, 956K Cache, 13G Free
> > ARC: 90G Total, 84G MFU, 5690M MRU, 45M Anon, 394M Header, 98M Other
> > Swap:
> >
> >
> >
> > @ CPU_CLK_UNHALTED_CORE [241440 samples]
> >
> > 10.59%  [25561]    _mtx_lock_spin_cookie @ /boot/kernel/kernel
> >  94.25%  [24092]     pmclog_reserve @ /boot/kernel/hwpmc.ko
> >   100.0%  [24092]      pmclog_process_callchain
> >    100.0%  [24092]       pmc_process_samples
> >     100.0%  [24092]        pmc_hook_handler
> >      100.0%  [24092]         hardclock_cnt @ /boot/kernel/kernel
> >       100.0%  [24092]          handleevents
> >        99.62%  [24001]           timercb
> >         100.0%  [24001]            lapic_handle_timer
> >        00.38%  [91]              cpu_activeclock
> >         100.0%  [91]               cpu_idle
> >          100.0%  [91]                sched_idletd
> >           100.0%  [91]                 fork_exit
> >  03.04%  [777]       callout_lock
> >   91.63%  [712]        callout_reset_sbt_on
> >    98.60%  [702]         tcp_timer_activate
> >     94.87%  [666]          tcp_do_segment
> >      100.0%  [666]           tcp_input
> >       100.0%  [666]            ip_input
> >        100.0%  [666]             netisr_dispatch_src
> >         100.0%  [666]              ether_demux
> >          100.0%  [666]               ether_nh_input
> >           100.0%  [666]                netisr_dispatch_src
> >            98.05%  [653]                 ixgbe_rxeof @ /boot/kernel/if_ixgbe.ko
> >             87.44%  [571]                  ixgbe_msix_que
> >              100.0%  [571]                   intr_event_execute_handlers @ /boot/kernel/kernel
> >               100.0%  [571]                    ithread_loop
> >                100.0%  [571]                     fork_exit
> >             12.56%  [82]                   ixgbe_handle_que @ /boot/kernel/if_ixgbe.ko
> >              100.0%  [82]                    taskqueue_run_locked @ /boot/kernel/kernel
> >               100.0%  [82]                     taskqueue_thread_loop
> >                100.0%  [82]                      fork_exit
> >            01.95%  [13]                  tcp_lro_flush
> >             92.31%  [12]                   ixgbe_rxeof @ /boot/kernel/if_ixgbe.ko
> >              100.0%  [12]                    ixgbe_msix_que
> >               100.0%  [12]                     intr_event_execute_handlers @ /boot/kernel/kernel
> >                100.0%  [12]                      ithread_loop
> >             07.69%  [1]                    tcp_lro_rx
> >              100.0%  [1]                     ixgbe_rxeof @ /boot/kernel/if_ixgbe.ko
> >               100.0%  [1]                      ixgbe_msix_que
> >                100.0%  [1]                       intr_event_execute_handlers @ /boot/kernel/kernel
> >     05.13%  [36]           tcp_output
> >      100.0%  [36]            tcp_do_segment
> >       100.0%  [36]             tcp_input
> >        100.0%  [36]              ip_input
> >         100.0%  [36]               netisr_dispatch_src
> >          100.0%  [36]                ether_demux
> >           100.0%  [36]                 ether_nh_input
> >            100.0%  [36]                  netisr_dispatch_src
> >             100.0%  [36]                   ixgbe_rxeof @ /boot/kernel/if_ixgbe.ko
> >              91.67%  [33]                    ixgbe_msix_que
> >               100.0%  [33]                     intr_event_execute_handlers @ /boot/kernel/kernel
> >                100.0%  [33]                      ithread_loop
> >              08.33%  [3]                     ixgbe_handle_que @ /boot/kernel/if_ixgbe.ko
> >               100.0%  [3]                      taskqueue_run_locked @ /boot/kernel/kernel
> >                100.0%  [3]                       taskqueue_thread_loop


More information about the svn-src-head mailing list