From: Andi Kleen <andi@firstfloor.org>
To: linux-kernel@vger.kernel.org
Cc: acme@redhat.com, peterz@infradead.org, jolsa@redhat.com,
eranian@google.com, mingo@kernel.org, namhyung@kernel.org
Subject: perf PMU support for Haswell v6
Date: Fri, 9 Nov 2012 17:27:16 -0800 [thread overview]
Message-ID: <1352510868-7911-1-git-send-email-andi@firstfloor.org> (raw)
[Updated version for the latest master tree and various fixes,
addressing review feedback. See end for details.
This should be ready for merging now, just waiting for Peter&Ingo.]
This adds perf PMU support for the upcoming Haswell core. The patchkit
is fairly large, mainly due to various enhancement for TSX. TSX tuning
relies heavily on the PMU, so I tried hard to make all facilities
easily available. In addition it also has some other enhancements.
This includes changes to the core perf code, to the x86 specific part,
to the perf user land tools and to KVM
Available at
git://git.kernel.org/pub/scm/linux/kernel/ak/linux-misc.git hsw/pmu3
High level overview:
- Basic Haswell PMU support
- Easy high level TSX measurement in perf stat -T
- Transaction events and attributes implemented with sysfs enumeration
- Export arch perfmon events in sysfs
- Generic weightend profiling for memory latency and transaction abort costs.
- Support for address profiling
- Support for filtering events inside/outside transactions
- KVM support to do this from guests
- Support for filtering/sorting/bucketing transaction abort types based on
PEBS information
- LBR support for transactions
For more details on the Haswell PMU please see the SDM. For more details on TSX
please see http://halobates.de/adding-lock-elision-to-linux.pdf
Some of the added features could be added to older CPUs too. I plan
to do this, but in separate patches.
Review appreciated.
v2: Removed generic transaction events and qualifiers and use sysfs
enumeration. Also export arch perfmon, so that the qualifiers work.
Fixed various issues this exposed. Don't use a special macro for the
TSX constraints anymore. Address other review feedback.
Added pdir event in sysfs.
v3: Fix various bugs and address review comments.
tx-aborts instead of cpu/tx-aborts/ works now (with some limitations)
cpu/instructions,intx=1/ works now
v4:
Addressed all review feedback (I hope). See changelog in individual patches.
KVM support now works again with more changes.
Forbid some more flag combinations that don't work well.
v5:
Rebased on latest perf/core. New method for sysfs events.
Obsolete patches dropped. Added one patch from Stephane.
Fixed generic aliases inside cpu//
Improved transaction flags decoding
Addressed all review feedback (except for two minor items in
perf tools from Namhyung)
v6:
Fix WERROR=1 build with latest fixes.
Address KVM feedback.
Improve transaction flags display.
-Andi
next reply other threads:[~2012-11-10 1:34 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-10 1:27 Andi Kleen [this message]
2012-11-10 1:27 ` [PATCH 01/32] perf, x86: Add PEBSv2 record support Andi Kleen
2012-11-10 1:27 ` [PATCH 02/32] perf, x86: Basic Haswell PMU support v2 Andi Kleen
2012-11-10 1:27 ` [PATCH 03/32] perf, x86: Basic Haswell PEBS support v3 Andi Kleen
2012-11-10 1:27 ` [PATCH 04/32] perf, x86: Support the TSX intx/intx_cp qualifiers v2 Andi Kleen
2012-11-10 1:27 ` [PATCH 05/32] perf, kvm: Support the intx/intx_cp modifiers in KVM arch perfmon emulation v4 Andi Kleen
2012-11-12 12:43 ` Gleb Natapov
2012-11-10 1:27 ` [PATCH 06/32] perf, x86: Support PERF_SAMPLE_ADDR on Haswell Andi Kleen
2012-11-10 1:27 ` [PATCH 07/32] perf, x86: Support Haswell v4 LBR format Andi Kleen
2012-11-10 1:27 ` [PATCH 08/32] perf, x86: Disable LBR recording for unknown LBR_FMT Andi Kleen
2012-11-10 1:27 ` [PATCH 09/32] perf, x86: Support LBR filtering by INTX/NOTX/ABORT v2 Andi Kleen
2012-11-10 1:27 ` [PATCH 10/32] perf, tools: Add abort_tx,no_tx,in_tx branch filter options to perf record -j v3 Andi Kleen
2012-11-10 1:27 ` [PATCH 11/32] perf, tools: Support sorting by intx, abort branch flags Andi Kleen
2012-11-10 1:27 ` [PATCH 12/32] perf, x86: Support full width counting Andi Kleen
2012-11-10 1:27 ` [PATCH 13/32] perf, x86: Avoid checkpointed counters causing excessive TSX aborts v3 Andi Kleen
2012-11-10 1:27 ` [PATCH 14/32] perf, core: Add a concept of a weightened sample Andi Kleen
2012-11-10 1:27 ` [PATCH 15/32] perf, x86: Support weight samples for PEBS Andi Kleen
2012-11-10 1:27 ` [PATCH 16/32] perf, tools: Add support for weight v3 Andi Kleen
2012-11-10 1:27 ` [PATCH 17/32] perf, tools: Handle XBEGIN like a jump Andi Kleen
2012-11-10 1:27 ` [PATCH 18/32] perf, x86: Support for printing PMU state on spurious PMIs v3 Andi Kleen
2012-11-10 1:27 ` [PATCH 19/32] perf, core: Add generic transaction flags v2 Andi Kleen
2012-11-10 1:27 ` [PATCH 20/32] perf, x86: Add Haswell specific transaction flag reporting Andi Kleen
2012-11-10 1:27 ` [PATCH 21/32] perf, tools: Add support for record transaction flags v2 Andi Kleen
2012-11-10 1:27 ` [PATCH 22/32] perf, tools: Point --sort documentation to --help Andi Kleen
2012-11-10 1:27 ` [PATCH 23/32] perf, tools: Add browser support for transaction flags v3 Andi Kleen
2012-11-10 1:27 ` [PATCH 24/32] perf, tools: Add arbitary aliases and support names with - Andi Kleen
2012-11-10 1:27 ` [PATCH 25/32] tools, perf: Add a precise event qualifier Andi Kleen
2012-11-28 15:40 ` Jiri Olsa
2012-11-28 20:37 ` Andi Kleen
2012-11-10 1:27 ` [PATCH 26/32] perf, x86: improve sysfs event mapping with event string Andi Kleen
2012-11-10 1:27 ` [PATCH 27/32] perf, x86: Support CPU specific sysfs events Andi Kleen
2012-11-10 1:27 ` [PATCH 28/32] perf, x86: Add Haswell TSX event aliases v2 Andi Kleen
2012-11-10 1:27 ` [PATCH 29/32] perf, tools: Add perf stat --transaction v2 Andi Kleen
2012-11-10 1:27 ` [PATCH 30/32] perf, x86: Add a Haswell precise instructions event v2 Andi Kleen
2012-11-10 1:27 ` [PATCH 31/32] perf, tools: Default to cpu// for events v3 Andi Kleen
2012-11-28 15:53 ` Jiri Olsa
2012-11-28 19:04 ` Andi Kleen
2012-11-28 19:42 ` Arnaldo Carvalho de Melo
2012-11-10 1:27 ` [PATCH 32/32] perf, tools: List kernel supplied event aliases in perf list v2 Andi Kleen
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=1352510868-7911-1-git-send-email-andi@firstfloor.org \
--to=andi@firstfloor.org \
--cc=acme@redhat.com \
--cc=eranian@google.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.