This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]