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