Date: Wed, 9 Jul 2014 22:43:25 +0100 From: Vlad Galu <galu@packetdam.com> To: John Baldwin <jhb@freebsd.org> Cc: freebsd-stable@freebsd.org Subject: Re: Weird ISR accounting in 10-STABLE Message-ID: <CABN%2B6JnpiV0JZ0BdNAKv4FOsVJHCZUC6fmDi2-Wwox5EUhrseg@mail.gmail.com> In-Reply-To: <201407091402.23537.jhb@freebsd.org> References: <CABN%2B6JmYP4U1vT7r7vy810TUzdH%2BqG=zuHRnNU9fDzOF0J-skg@mail.gmail.com> <CABN%2B6JnjgGy_S1Sq-a28TgQ20A-KXn1J-F7TsAx4qEPgUFSx8Q@mail.gmail.com> <CABN%2B6JmjUVg1z-nC1LmZNYeWffWyKzhrP7=6B_q5KSHav2ocfA@mail.gmail.com> <201407091402.23537.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
I hope I'm doing this the right way. Invoking DTrace as dtrace -n 'profile-1000 /curthread->td_name == "swi1: netisr 0"/ { @[func(arg0)] = count(); }' outputs: -- cut here -- kernel`__mtx_lock_sleep 2 kernel`in6_rtalloc1 15 kernel`mb_dtor_mbuf 25 kernel`m_tag_delete_nonpersistent 26 kernel`m_tag_delete_chain 29 kernel`swi_net 29 kernel`netisr_select_cpuid 34 kernel`mac_mbuf_init 37 kernel`ipsec_in_reject 42 kernel`nd6_output 44 kernel`key_havesp 44 kernel`mac_policy_sunlock_nosleep 51 kernel`mac_mbuf_to_label 51 kernel`m_tag_copy_chain 52 kernel`ip6_ipsec_filtertunnel 53 kernel`critical_enter 58 kernel`critical_exit 58 kernel`pf_check6_in 58 kernel`netisr_queue 59 kernel`ipsec6_in_reject 59 kernel`m_freem 63 kernel`mac_policy_slock_nosleep 63 kernel`pf_check6_out 69 kernel`in6_lltable_lookup 87 kernel`in6_clearscope 102 kernel`looutput 108 kernel`if_simloop 121 kernel`ipsec_getpolicybyaddr 134 kernel`rtfree 160 kernel`uma_zalloc_arg 211 kernel`m_copym 262 kernel`mac_netinet6_nd6_send 268 kernel`key_allocsp_default 270 kernel`pfil_run_hooks 303 kernel`pf_test6 335 kernel`uma_zfree_arg 337 kernel`bcopy 340 kernel`mac_ifnet_create_mbuf 358 kernel`netisr_queue_internal 368 kernel`_rm_runlock 371 kernel`rtalloc1_fib 385 kernel`mb_ctor_mbuf 412 kernel`nd6_output_lle 465 kernel`_key_freesp 506 kernel`key_addref 521 kernel`_rw_runlock_cookie 602 kernel`__rw_rlock 606 kernel`in6_setscope 662 kernel`_rm_rlock 758 kernel`rn_match 797 kernel`mac_ifnet_check_transmit 1110 kernel`ip6_forward 1334 kernel`bzero 1492 kernel`ip6_input 1685 kernel`bcmp 3511 -- and here -- The swi thread is definitely the naughtiest, running dtrace -n 'profile-1000 { @[stringof(curthread->td_name)] = count(); }' shows: -- cut here -- aiod1 1 arc_reclaim_thread 1 trim tank 1 txg_thread_enter 1 vmdaemon 1 zio_write_issue_1 1 acpi_cooling1 2 acpi_thermal 2 irq265: re0 2 vnlru 2 bufdaemon 3 irq266: ahci0 3 l2arc_feed_thread 3 sshd 5 pagedaemon 6 syncer 13 dtrace 17 cut 18 sh 18 tmux 30 rand_harvestq 38 pf purge 51 swi4: clock 256 idle: cpu3 18803 idle: cpu5 18810 idle: cpu4 18826 idle: cpu2 18836 idle: cpu7 18839 idle: cpu6 18842 idle: cpu0 18882 swi1: netisr 0 19008 -- and here -- On Wed, Jul 9, 2014 at 7:02 PM, John Baldwin <jhb@freebsd.org> wrote: > On Tuesday, July 08, 2014 8:56:44 am Vlad Galu wrote: > > The symptom has reappeared, although interestingly enough I can't spot > > anything out of the ordinary in this DTrace output: > > Can you get dtrace to only display the functions called by that thread? > > -- > John Baldwin > -- Regards, Vlad
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CABN%2B6JnpiV0JZ0BdNAKv4FOsVJHCZUC6fmDi2-Wwox5EUhrseg>