Author: fabient
Date: Fri Sep  3 13:54:02 2010
New Revision: 212176
URL: http://svn.freebsd.org/changeset/base/212176

Log:
  When an asm location cannot be resolved to a function the cost
  will be spread as small value and then filtered by the threshold.
  As a first step solution display the number of event that cannot
  be resolved as a valid function location.
  
  MFC after:    1week

Modified:
  head/usr.sbin/pmcstat/pmcpl_callgraph.c
  head/usr.sbin/pmcstat/pmcpl_calltree.c
  head/usr.sbin/pmcstat/pmcstat_log.c
  head/usr.sbin/pmcstat/pmcstat_log.h

Modified: head/usr.sbin/pmcstat/pmcpl_callgraph.c
==============================================================================
--- head/usr.sbin/pmcstat/pmcpl_callgraph.c     Fri Sep  3 11:58:50 2010        
(r212175)
+++ head/usr.sbin/pmcstat/pmcpl_callgraph.c     Fri Sep  3 13:54:02 2010        
(r212176)
@@ -149,6 +149,8 @@ pmcstat_cgnode_hash_lookup_pc(struct pmc
         */
        if ((sym = pmcstat_symbol_search(image, pc)) != NULL)
                pc = sym->ps_start;
+       else
+               pmcstat_stats.ps_samples_unknown_function++;
 
        for (hash = i = 0; i < sizeof(uintfptr_t); i++)
                hash += (pc >> i) & 0xFF;

Modified: head/usr.sbin/pmcstat/pmcpl_calltree.c
==============================================================================
--- head/usr.sbin/pmcstat/pmcpl_calltree.c      Fri Sep  3 11:58:50 2010        
(r212175)
+++ head/usr.sbin/pmcstat/pmcpl_calltree.c      Fri Sep  3 13:54:02 2010        
(r212176)
@@ -615,6 +615,8 @@ pmcpl_ct_node_hash_lookup_pc(struct pmcp
         */
        if ((sym = pmcstat_symbol_search(image, pc)) != NULL)
                pc = sym->ps_start;
+       else
+               pmcstat_stats.ps_samples_unknown_function++;
 
        for (hash = i = 0; i < (int)sizeof(uintfptr_t); i++)
                hash += (pc >> i) & 0xFF;

Modified: head/usr.sbin/pmcstat/pmcstat_log.c
==============================================================================
--- head/usr.sbin/pmcstat/pmcstat_log.c Fri Sep  3 11:58:50 2010        
(r212175)
+++ head/usr.sbin/pmcstat/pmcstat_log.c Fri Sep  3 13:54:02 2010        
(r212176)
@@ -2168,6 +2168,7 @@ pmcstat_shutdown_logging(void)
                PRINT("#samples/total", samples_total);
                PRINT("#samples/unclaimed", samples_unknown_offset);
                PRINT("#samples/unknown-object", samples_indeterminable);
+               PRINT("#samples/unknown-function", samples_unknown_function);
                PRINT("#callchain/dubious-frames", callchain_dubious_frames);
        }
 

Modified: head/usr.sbin/pmcstat/pmcstat_log.h
==============================================================================
--- head/usr.sbin/pmcstat/pmcstat_log.h Fri Sep  3 11:58:50 2010        
(r212175)
+++ head/usr.sbin/pmcstat/pmcstat_log.h Fri Sep  3 13:54:02 2010        
(r212176)
@@ -164,6 +164,7 @@ struct pmcstat_stats {
        int ps_samples_skipped; /* #samples filtered out for any reason */
        int ps_samples_unknown_offset;  /* #samples of rank 0 not in a map */
        int ps_samples_indeterminable;  /* #samples in indeterminable images */
+       int ps_samples_unknown_function;/* #samples with unknown function at 
offset */
        int ps_callchain_dubious_frames;/* #dubious frame pointers seen */
 };
 extern struct pmcstat_stats pmcstat_stats; /* statistics */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to