Hi,

For those of you living on the bleeding edge and who are playing with
perfmon for 2.6.30 from the GIT tree, here are some basic instructions
on how to enable/disable debugging.

As of 2.6.29, perfmon debugging uses the dynamic debug infrastructure
via pr_debug().

That means you need the following config parameters enabled when you
build your kernel:
     - CONFIG_DEBUG_FS
     - CONFIG_DYNAMIC_DEBUG

Then you need to mount the debugfs filesystem somewhere:
   # mount -t debugfs none /debugfs

In 2.6.30, the dynamic debug infrastructure has been refined so you
can enabled/disabled individual debug messages.

To list the perfmon debug messages available (shown here just for perfmon_rw.c):

    # cat /debugfs/dynamic_debug/control  | fgrep perfmon_rw
perfmon/perfmon_rw.c:634 [perfmon_rw]__pfm_read_pmds - "%s.%d: CPU%d
[%d]: set%u pmd%u=0x%llx sw_thr=%llu lval=0x%llx\012"
perfmon/perfmon_rw.c:604 [perfmon_rw]__pfm_read_pmds - "%s.%d: CPU%d
[%d]: pmd%u cannot read, because not used\012"
perfmon/perfmon_rw.c:587 [perfmon_rw]__pfm_read_pmds - "%s.%d: CPU%d
[%d]: event set%u does not exist\012"
perfmon/perfmon_rw.c:574 [perfmon_rw]__pfm_read_pmds - "%s.%d: CPU%d
[%d]: pmd%u is not implemented/unaccessible\012"
perfmon/perfmon_rw.c:515 [perfmon_rw]__pfm_write_pmcs p "%s.%d: CPU%d
[%d]: set%u pmc%u=0x%llx a_pmu=%d u_pmcs=0x%llx\012"
perfmon/perfmon_rw.c:466 [perfmon_rw]__pfm_write_pmcs - "%s.%d: CPU%d
[%d]: pmc%u no support for PFM_REGFL_NO_EMUL64\012"
perfmon/perfmon_rw.c:449 [perfmon_rw]__pfm_write_pmcs - "%s.%d: CPU%d
[%d]: event set%u does not exist\012"
perfmon/perfmon_rw.c:438 [perfmon_rw]__pfm_write_pmcs - "%s.%d: CPU%d
[%d]: pmc%u: invalid flags=0x%x\012"
perfmon/perfmon_rw.c:426 [perfmon_rw]__pfm_write_pmcs - "%s.%d: CPU%d
[%d]: pmc%u is not available\012"
perfmon/perfmon_rw.c:358 [perfmon_rw]__pfm_write_pmds p "%s.%d: CPU%d
[%d]: set%u pmd%u=0x%llx flags=0x%x a_pmu=%d ctx_pmd=0x%llx
s_reset=0x%llx l_reset=0x%llx s_pmds=0x%llx r_pmds=0x%llx
o_pmds=0x%llx o_thres=%llu compat=%d eventid=%llx\012"
perfmon/perfmon_rw.c:239 [perfmon_rw]__pfm_write_pmds - "%s.%d: CPU%d
[%d]: event set%u does not exist\012"
perfmon/perfmon_rw.c:228 [perfmon_rw]__pfm_write_pmds - "%s.%d: CPU%d
[%d]: invalid reset_pmds=0x%llx for pmd%u\012"
perfmon/perfmon_rw.c:216 [perfmon_rw]__pfm_write_pmds - "%s.%d: CPU%d
[%d]: invalid smpl_pmds=0x%llx for pmd%u\012"
perfmon/perfmon_rw.c:206 [perfmon_rw]__pfm_write_pmds - "%s.%d: CPU%d
[%d]: pmd%u: invalid flags=0x%x\012"
perfmon/perfmon_rw.c:195 [perfmon_rw]__pfm_write_pmds - "%s.%d: CPU%d
[%d]: pmd%u is not available\012"

To enable a particular printk:

     # echo -n 'file perfmon_rw.c line 358 +p' >/debugfs/dynamic_debug/control

To disable a particular printk:

     # echo -n 'file perfmon_rw.c line 358 -p' >/debugfs/dynamic_debug/control


More documentation about this feature in the kernel source tree:
    Documentation/dynamic-debug-howto.txt

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
perfmon2-devel mailing list
perfmon2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel

Reply via email to