From: Peter Zijlstra <peterz@infradead.org>
To: Robert Richter <robert.richter@amd.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>,
Ingo Molnar <mingo@kernel.org>,
Stephane Eranian <eranian@google.com>,
Jiri Olsa <jolsa@redhat.com>, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 4/7] perf/x86-ibs: Add support for IBS pseudo events
Date: Mon, 07 May 2012 17:15:18 +0200 [thread overview]
Message-ID: <1336403718.27020.64.camel@laptop> (raw)
In-Reply-To: <20120507144756.GG18810@erda.amd.com>
On Mon, 2012-05-07 at 16:47 +0200, Robert Richter wrote:
> > Who again wasn't decoding anything in perf_event_attr:config* ?
>
> attr:config is one of the ibs control msrs comparable with perfctr's
> evntsel msr:
>
> MSRC001_1030 IBS Fetch Control Register (IbsFetchCtl)
> MSRC001_1033 IBS Execution Control Register (IbsOpCtl)
You missed reading a '*', even so:
> There are some options (randomisation, cycle/micro-op counting) but
> usually it is null since the period is encoded in attr:period. But ibs
> could be setup by an application using attr:config only which then
> passes the value directly to the ctl msr.
PMU_FORMAT_ATTR(IbsFetchMaxCnt, "config:0-15" );
PMU_FORMAT_ATTR(IbsFetchCnt, "config:16-31" );
PMU_FORMAT_ATTR(IbsFetchVal, "config:49" );
PMU_FORMAT_ATTR(IbsRandEn, "config:57" );
and
PMU_FORMAT_ATTR(IbsOpMaxCnt, "config:0-15" );
PMU_FORMAT_ATTR(IbsOpVal, "config:18" );
PMU_FORMAT_ATTR(IbsOpCntCtl, "config:19" ); /* subject to ibs_caps */
Are the writable bitfields of those two MSRs resp.
This patch adds:
PMU_FORMAT_ATTR(IbsFilter0Idx, "config1:0-7" );
PMU_FORMAT_ATTR(IbsFilter0Type, "config1:12-15" );
PMU_FORMAT_ATTR(IbsFilter0Mask, "config1:16-23" );
PMU_FORMAT_ATTR(IbsFilter0Match,"config1:24-31" );
PMU_FORMAT_ATTR(IbsFilter0Any, "config1:16-31" );
PMU_FORMAT_ATTR(IbsFilter1Idx, "config1:32-39" );
PMU_FORMAT_ATTR(IbsFilter1Type, "config1:44-47" );
PMU_FORMAT_ATTR(IbsFilter1Mask, "config1:48-55" );
PMU_FORMAT_ATTR(IbsFilter1Match,"config1:56-63" );
PMU_FORMAT_ATTR(IbsFilter1Any, "config1:48-63" );
PMU_FORMAT_ATTR(IbsFilter2Idx, "config2:0-7" );
PMU_FORMAT_ATTR(IbsFilter2Type, "config2:12-15" );
PMU_FORMAT_ATTR(IbsFilter2Mask, "config2:16-23" );
PMU_FORMAT_ATTR(IbsFilter2Match,"config2:24-31" );
PMU_FORMAT_ATTR(IbsFilter2Any, "config2:16-31" );
PMU_FORMAT_ATTR(IbsFilter3Idx, "config2:32-39" );
PMU_FORMAT_ATTR(IbsFilter3Type, "config2:44-47" );
PMU_FORMAT_ATTR(IbsFilter3Mask, "config2:48-55" );
PMU_FORMAT_ATTR(IbsFilter3Match,"config2:56-63" );
PMU_FORMAT_ATTR(IbsFilter3Any, "config2:48-63" );
And you can write your events like:
ibs_fetch/IbsFilter0Type=1,IbsFilter0Idx=48,IbsFilter0Mask=0x4,IbsFilter0Match=0x4/
No need to duplicate the struct and you're free to re-arrange the actual
bitfields if there ever is a need.
Even more, if you were to expose these events through sysfs
ibs_fetch/events/$foo you could modify the lot and it'd still all work.
No need to query cpuid to figure out if you're fam 10h+, no need to read
ibs_caps in userspace to figure out if config:19 is available, and no
need to duplicate that struct.
And don't tell me your config[12] fields are spec'ed somewhere..
next prev parent reply other threads:[~2012-05-07 15:15 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-02 18:26 [PATCH 0/7] perf/x86-ibs and tools: Add support for AMD IBS Robert Richter
2012-05-02 18:26 ` [PATCH 1/7] perf tools: Fix generation of pmu list Robert Richter
2012-05-02 18:26 ` [PATCH 2/7] perf tools: Add basic dynamic PMU support Robert Richter
2012-05-02 18:26 ` [PATCH 3/7] perf tools: Add parser for dynamic PMU events Robert Richter
2012-05-07 11:01 ` Peter Zijlstra
2012-05-07 17:05 ` Robert Richter
2012-05-07 17:10 ` Peter Zijlstra
2012-05-02 18:26 ` [PATCH 4/7] perf/x86-ibs: Add support for IBS pseudo events Robert Richter
2012-05-07 11:00 ` Peter Zijlstra
2012-05-07 14:47 ` Robert Richter
2012-05-07 15:15 ` Peter Zijlstra [this message]
2012-05-07 16:03 ` Robert Richter
2012-05-07 12:08 ` Peter Zijlstra
2012-05-07 13:03 ` Peter Zijlstra
2012-05-07 15:44 ` Robert Richter
2012-05-07 15:51 ` Peter Zijlstra
2012-05-07 15:58 ` Robert Richter
2012-05-07 15:21 ` Stephane Eranian
2012-05-07 15:29 ` Peter Zijlstra
2012-05-07 15:52 ` Robert Richter
2012-05-02 18:26 ` [PATCH 5/7] perf, tools: Add raw event support for dynamic allocated pmus Robert Richter
2012-05-07 13:05 ` Peter Zijlstra
2012-05-07 14:20 ` Peter Zijlstra
2012-05-02 18:26 ` [PATCH 6/7] perf tools: Add pmu mappings to header information Robert Richter
2012-05-02 18:26 ` [PATCH 7/7] perf script: Add script to collect and display IBS samples Robert Richter
2012-05-31 15:24 ` [PATCH 0/7] perf/x86-ibs and tools: Add support for AMD IBS Stephane Eranian
2012-05-31 15:51 ` Robert Richter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1336403718.27020.64.camel@laptop \
--to=peterz@infradead.org \
--cc=acme@redhat.com \
--cc=eranian@google.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=robert.richter@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox