From: Ingo Molnar <mingo@kernel.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Andi Kleen <andi@firstfloor.org>,
linux-kernel@vger.kernel.org, Andi Kleen <ak@linux.intel.com>
Subject: Re: [PATCH 1/3] perf, x86: Add new cache events table for Haswell
Date: Mon, 23 Mar 2015 14:55:19 +0100 [thread overview]
Message-ID: <20150323135519.GB25233@gmail.com> (raw)
In-Reply-To: <20150323135318.GN21418@twins.programming.kicks-ass.net>
* Peter Zijlstra <peterz@infradead.org> wrote:
> On Mon, Mar 23, 2015 at 10:45:07AM +0100, Ingo Molnar wrote:
> >
> > * Andi Kleen <andi@firstfloor.org> wrote:
> >
> > > From: Andi Kleen <ak@linux.intel.com>
> > >
> > > Haswell offcore events are quite different from Sandy Bridge.
> > > Add a new table to handle Haswell properly.
> > >
> > > Note that the offcore bits listed in the SDM are not quite correct
> > > (this is currently being fixed). An uptodate list of bits is
> > > in the patch.
> > >
> > > The basic setup is similar to Sandy Bridge. The prefetch columns
> > > have been removed, as prefetch counting is not very reliable
> > > on Haswell. One L1 event that is not in the event list anymore
> > > has been also removed.
> > >
> > > - data reads do not include code reads (comparable to earlier Sandy
> > > Bridge tables)
> > > - data counts include speculative execution (except L1 write, dtlb, bpu)
> > > - remote node access includes both remote memory, remote cache, remote mmio.
> > > - prefetches are not included in the counts for consistency
> > > (different from Sandy Bridge, which includes prefetches in the remote node)
> > >
> > > The events with additional caveats have references to the specification update.
> >
> > > + [ C(RESULT_ACCESS) ] = 0x81d0, /* MEM_UOPS_RETIRED.ALL_LOADS, HSM30 */
> > > + [ C(RESULT_ACCESS) ] = 0x82d0, /* MEM_UOPS_RETIRED.ALL_STORES, HSM30 */
> > > + [ C(RESULT_ACCESS) ] = 0x81d0, /* MEM_UOPS_RETIRED.ALL_LOADS, HSM30 */
> > > + [ C(RESULT_ACCESS) ] = 0x82d0, /* MEM_UOPS_RETIRED.ALL_STORES, HSM30 */
> >
> > So that 'HSM30' is code for the specification update?
>
> Yep; found it in:
> http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/4th-gen-core-family-mobile-specification-update.pdf
>
> > You'll need to properly describe HSM30 at least once instead of using
> > obfuscation.
>
>
> HSM30.
> Problem:
> Performance Monitor Counters May Produce Incorrect Results
> When operating with SMT enabled, a memory at-retirement performance monitoring
> event (from the list below) may be dropped or may increment an enabled event on the
> corresponding counter with the same number on the physical core’s other thread rather
> than the thread experiencing the event. Processors with SMT disabled in BIOS are not
> affected by this erratum.
> The list of affected memory at-retirement events is as follows:
> MEM_UOP_RETIRED.LOADS
> MEM_UOP_RETIRED.STORES
> MEM_UOP_RETIRED.LOCK
> MEM_UOP_RETIRED.SPLIT
> MEM_UOP_RETIRED.STLB_MISS
> MEM_LOAD_UOPS_RETIRED.HIT_LFB
> MEM_LOAD_UOPS_RETIRED.L1_HIT
> MEM_LOAD_UOPS_RETIRED.L2_HIT
> MEM_LOAD_UOPS_RETIRED.L3_HIT
> MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HIT
> MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_HITM
> MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_MISS
> MEM_LOAD_UOPS_L3_HIT_RETIRED.XSNP_NONE
> MEM_LOAD_UOPS_RETIRED.L3_MISS
> MEM_LOAD_UOPS_L3_MISS_RETIRED.LOCAL_DRAM
> MEM_LOAD_UOPS_L3_MISS_RETIRED.REMOTE_DRAM
> MEM_LOAD_UOPS_RETIRED.L2_MISS
> Implication:
> Due to this erratum, certain performance monitoring event will produce unreliable
> results during hyper-threaded operation.
> Workaround:
> None identified.
> Status:
> For the steppings affected, see the Summary Table of Changes.
>
> Stephane is working on patches to address this. It affects multiple
> generations.
Ok - then at minimum a minimal summary of 'HSM30' should be added to
the code, so that people know what's happening, without having to dig
out Intel documents (which might be gone years down the line).
Thanks,
Ingo
next prev parent reply other threads:[~2015-03-23 13:55 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-18 2:18 [PATCH 1/3] perf, x86: Add new cache events table for Haswell Andi Kleen
2015-02-18 2:18 ` [PATCH 2/3] perf, x86: Add Broadwell core support Andi Kleen
2015-03-27 11:39 ` [tip:perf/core] perf/x86/intel: " tip-bot for Andi Kleen
2015-02-18 2:18 ` [PATCH 3/3] perf, x86: Add INST_RETIRED.ALL workarounds Andi Kleen
2015-03-23 9:38 ` Ingo Molnar
2015-03-23 10:19 ` Peter Zijlstra
2015-03-23 10:39 ` Ingo Molnar
2015-03-23 12:35 ` Peter Zijlstra
2015-03-23 13:32 ` Ingo Molnar
2015-03-27 11:39 ` [tip:perf/core] perf/x86/intel: " tip-bot for Andi Kleen
2015-03-23 9:45 ` [PATCH 1/3] perf, x86: Add new cache events table for Haswell Ingo Molnar
2015-03-23 13:53 ` Peter Zijlstra
2015-03-23 13:55 ` Ingo Molnar [this message]
2015-03-27 11:39 ` [tip:perf/core] perf/x86/intel: " tip-bot for Andi Kleen
-- strict thread matches above, loose matches on Subject: below --
2015-02-11 0:40 [PATCH 1/3] perf, x86: " Andi Kleen
2015-02-12 21:28 ` Peter Zijlstra
2015-02-18 4:58 ` Andi Kleen
2015-02-09 19:17 Andi Kleen
2015-02-10 10:34 ` Peter Zijlstra
2015-02-10 17:11 ` Andi Kleen
2015-02-10 17:16 ` Peter Zijlstra
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=20150323135519.GB25233@gmail.com \
--to=mingo@kernel.org \
--cc=ak@linux.intel.com \
--cc=andi@firstfloor.org \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
/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