svn commit: r334647 - in head: lib/libpmc sys/dev/hwpmc sys/kern sys/sys usr.sbin usr.sbin/pmc
Mark Johnston
markj at freebsd.org
Wed Aug 29 14:02:34 UTC 2018
On Wed, Aug 29, 2018 at 02:41:49PM +0200, Kristof Provost wrote:
> On 5 Jun 2018, at 6:26, Matt Macy wrote:
> > Author: mmacy
> > Date: Tue Jun 5 04:26:40 2018
> > New Revision: 334647
> > URL: https://svnweb.freebsd.org/changeset/base/334647
> >
> > Log:
> > hwpmc: log name->pid, name->tid mappings
> >
> > By logging all threads and processes 'pmc filter'
> > can now filter on process or thread name, relieving
> > the user of the burden of determining which tid or
> > pid was which when the sample was taken.
> >
> > % pmc filter -T if_io_tqg -P nginx pmc.log pmc-iflib.log
> >
> > % pmc filter -x -T idle pmc.log pmc-noidle.log
> >
> > Added:
> > head/usr.sbin/pmc/cmd_pmc_filter.cc
> > - copied, changed from r334645,
> > head/usr.sbin/pmc/cmd_pmc_filter.c
> > Deleted:
> > head/usr.sbin/pmc/cmd_pmc_filter.c
> > Modified:
> > head/lib/libpmc/pmclog.c
> > head/lib/libpmc/pmclog.h
> > head/sys/dev/hwpmc/hwpmc_logging.c
> > head/sys/dev/hwpmc/hwpmc_mod.c
> > head/sys/kern/kern_kthread.c
> > head/sys/kern/kern_thr.c
> > head/sys/kern/kern_thread.c
> > head/sys/sys/pmc.h
> > head/sys/sys/pmckern.h
> > head/sys/sys/pmclog.h
> > head/usr.sbin/Makefile
> > head/usr.sbin/pmc/Makefile (contents, props changed)
> > head/usr.sbin/pmc/cmd_pmc.h (contents, props changed)
> >
> > Modified: head/lib/libpmc/pmclog.c
> > ==============================================================================
> > --- head/lib/libpmc/pmclog.c Tue Jun 5 01:05:58 2018 (r334646)
> > +++ head/lib/libpmc/pmclog.c Tue Jun 5 04:26:40 2018 (r334647)
> > @@ -404,6 +404,19 @@ pmclog_get_event(void *cookie, char **data,
> > ssize_t *l
> > case PMCLOG_TYPE_USERDATA:
> > PMCLOG_READ32(le,ev->pl_u.pl_u.pl_userdata);
> > break;
> > + case PMCLOG_TYPE_THR_CREATE:
> > + PMCLOG_READ32(le,ev->pl_u.pl_tc.pl_tid);
> > + PMCLOG_READ32(le,ev->pl_u.pl_tc.pl_pid);
> > + PMCLOG_READ32(le,noop);
> > + memcpy(ev->pl_u.pl_tc.pl_tdname, le, MAXCOMLEN+1);
> > + break;
> > + case PMCLOG_TYPE_THR_EXIT:
> > + PMCLOG_READ32(le,ev->pl_u.pl_te.pl_tid);
> > + break;
> > + case PMCLOG_TYPE_PROC_CREATE:
> > + PMCLOG_READ32(le,ev->pl_u.pl_pc.pl_pid);
> > + memcpy(ev->pl_u.pl_pc.pl_pcomm, le, MAXCOMLEN+1);
> > + break;
> > default: /* unknown record type */
> > ps->ps_state = PL_STATE_ERROR;
> > ev->pl_state = PMCLOG_ERROR;
> >
>
> pmcstat does not know about these new event types, so a `pmcstat -S
> cpu_clk_unhalted.core -l 10 -G data.test` produces error messages about
> unknown events:
See also:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230984
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230985
More information about the svn-src-head
mailing list