This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Example looking at the periodic timers
On Wed, Dec 14, 2011 at 07:19:12PM +0100, Mark Wielaard wrote:
> On Wed, Dec 14, 2011 at 09:52:18AM -0500, William Cohen wrote:
> > Which functions are you referring to? I think that the raw addresses in
> > the output are might the timers related to the systemtap instrumentation
> > module.
>
> Aha. You are right.
> I even have a patch for modname() to get "unknown" module names.
> I haven't checked it in because I found the preempt_disable() so
> incredible ugly. We cannot use the module_mutex because we could
> theoretically be probing some code that holds that mutex. What do
> people think, is it useful enough to warrant the ugliness?
Since nobody yelled and screamed about it being too ugly I cleaned
it up and made sure it also works for symdata().
commit 17373b9e59df05fb8101ec173b580d593ba65d09
Author: Mark Wielaard <mjw@redhat.com>
Date: Fri Dec 16 16:59:00 2011 +0100
modname/symdata: Try harder to retrieve module name when requested.
When the user really wants a kernel module name with an address and
we are unable to map it to any existing one then fall back on using
__module_text_address() with appropriate locking.
Now the periodic.stp example will show who is really responsible
for all these timers... us...
#monitoring timer periods (press control-c for output)
#type function period(us) count
kernel 0xffffffffa109c780 [stap_6c9caccd440e93fb9f95605bb 999 4999
kernel 0xffffffffa109c780 [stap_6c9caccd440e93fb9f95605bb 1000 4996
kernel 0xffffffffa109c780 [stap_6c9caccd440e93fb9f95605bb 1001 4992
kernel 0xffffffffa109c780 [stap_6c9caccd440e93fb9f95605bb 1001 4992
work_q do_dbs_timer 9999 499
kernel 0xffffffffa109c330 [stap_6c9caccd440e93fb9f95605bb 10000 499
work_q do_dbs_timer 10000 499
work_q do_dbs_timer 10000 499
work_q do_dbs_timer 10000 499
kernel 0xffffffffa109c270 [stap_6c9caccd440e93fb9f95605bb 20003 249
kernel flush_unmaps_timeout+0x0/0x40 [kernel] 80573 61
kernel clocksource_watchdog+0x0/0x210 [kernel] 500001 9
work_q i915_gem_retire_work_handler 1001999 4
work_q sync_cmos_clock 999999 4
work_q vmstat_update 1000002 4
work_q vmstat_update 1000002 4
work_q vmstat_update 999999 4
work_q vmstat_update 999997 4
kernel intel_gpu_idle_timer+0x0/0x80 [i915] 601000 3
kernel br_hello_timer_expired+0x0/0x80 [bridge] 2000015 1
kernel iwl_bg_watchdog+0x0/0x110 [iwlagn] 2504008 1
kernel e1000_watchdog+0x0/0x20 [e1000e] 2000016 1
Cheers,
Mark