| Summary: | pmcstat runs out of buckets | ||
|---|---|---|---|
| Product: | Base System | Reporter: | Hans Petter Selasky <hselasky> |
| Component: | kern | Assignee: | George V. Neville-Neil <gnn> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | CC: | fernape |
| Priority: | --- | Keywords: | patch |
| Version: | CURRENT | ||
| Hardware: | Any | ||
| OS: | Any | ||
I'd say this calculation was fixed with the use of the howmany macro? Closing since this seems to be fixed by the use of the "howmany" macro. |
Hi, It has been observed that pmcstat can run out of buckets leading to an assert, when converting trace data into gprof compatible format. Applying the following patch, temporarily solves the problem: diff --git a/usr.sbin/pmcstat/pmcpl_gprof.c b/usr.sbin/pmcstat/pmcpl_gprof.c index 9ff78e8..4a8849f 100644 --- a/usr.sbin/pmcstat/pmcpl_gprof.c +++ b/usr.sbin/pmcstat/pmcpl_gprof.c @@ -445,8 +445,8 @@ pmcpl_gmon_process(struct pmcstat_process *pp, struct pmcstat_pmcrecord *pmcr, image, pmcid); pgf->pgf_pmcid = pmcid; assert(image->pi_end > image->pi_start); - pgf->pgf_nbuckets = (image->pi_end - image->pi_start) / - FUNCTION_ALIGNMENT; /* see <machine/profile.h> */ + pgf->pgf_nbuckets = (image->pi_end - image->pi_start); // / + // FUNCTION_ALIGNMENT; /* see <machine/profile.h> */ pgf->pgf_ndatabytes = sizeof(struct gmonhdr) + pgf->pgf_nbuckets * sizeof(HISTCOUNTER); pgf->pgf_nsamples = 0; --HPS