linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>,
	Ian Rogers <irogers@google.com>,
	Kan Liang <kan.liang@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-perf-users@vger.kernel.org,
	Ravi Bangoria <ravi.bangoria@amd.com>,
	Mark Rutland <mark.rutland@arm.com>,
	James Clark <james.clark@arm.com>,
	Kajol Jain <kjain@linux.ibm.com>,
	Thomas Richter <tmricht@linux.ibm.com>,
	Atish Patra <atishp@atishpatra.org>,
	Palmer Dabbelt <palmer@rivosinc.com>,
	Mingwei Zhang <mizhang@google.com>
Subject: [PATCHSET 0/9] perf tools: Do not set attr.exclude_guest by default (v5)
Date: Tue, 15 Oct 2024 23:23:50 -0700	[thread overview]
Message-ID: <20241016062359.264929-1-namhyung@kernel.org> (raw)

Hello,

I found perf tools set exclude_guest bit inconsistently.  It used to
set the bit but now the default event for perf record doesn't.  So I'm
wondering why we want the bit in the first place.

Actually it's not good for PMUs don't support any exclusion like AMD
IBS because it disables new features after the exclude_guest due to
the missing feature detection logic.

v5 changes)

 * fix instruction:P failure on AMD  (Ravi)
 * add per-pmu exclude_guest test again  (Ravi)
 * add precise_max subtest to perf record shell test

v4) https://lore.kernel.org/lkml/20241001002027.1272889-1-namhyung@kernel.org

 * handle EOPNOTSUPP error in compatible way  (Kan)
 * drop --exclude-guest option in perf stat
 * not to separate exclude_hv fallback
 * rename to exclude_GH_default  (Kan)
 * drop the RFC from the subject

v3) https://lore.kernel.org/lkml/20240905202426.2690105-1-namhyung@kernel.org/

 * move exclude_guest fallback to the front
 * fix precise_max handling on AMD
 * simplify the default event for perf record

v2) https://lore.kernel.org/lkml/20240904064131.2377873-1-namhyung@kernel.org/

 * update the missing feature detection logic
 * separate exclude_hv fallback
 * add new fallback for exclude_guest

v1) https://lore.kernel.org/lkml/20240902014621.2002343-1-namhyung@kernel.org/

AFAIK it doesn't matter for the most cases but perf kvm.  If users
need to set the bit, they can still use :H modifier.  For vPMU pass-
through or Apple M1, it'd add the exclude_guest during the fallback
logic.

Also the kernel feature detection logic should be separated from the
exclude bit tests since it depends on the PMU implementation rather
than the core kernel features.  So I changed it to use a software
event for the detection and factor out some hw-specific checks.

The code is available at 'perf/exclude-v5' branch in
git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git

Thanks,
Namhyung


Namhyung Kim (9):
  perf tools: Add fallback for exclude_guest
  perf tools: Don't set attr.exclude_guest by default
  perf tools: Simplify evsel__add_modifier()
  perf tools: Do not set exclude_guest for precise_ip
  perf tools: Detect missing kernel features properly
  perf tools: Move x86__is_amd_cpu() to util/env.c
  perf tools: Check fallback error and order
  perf record: Just use "cycles:P" as the default event
  perf test: Add precise_max subtest to the perf record shell test

 tools/perf/arch/x86/util/Build              |   1 -
 tools/perf/arch/x86/util/env.c              |  19 -
 tools/perf/arch/x86/util/env.h              |   7 -
 tools/perf/arch/x86/util/pmu.c              |   2 +-
 tools/perf/builtin-kvm.c                    |   1 +
 tools/perf/builtin-record.c                 |   4 +-
 tools/perf/builtin-stat.c                   |  18 +-
 tools/perf/dlfilters/dlfilter-test-api-v0.c |   2 +-
 tools/perf/dlfilters/dlfilter-test-api-v2.c |   2 +-
 tools/perf/tests/attr/test-record-dummy-C0  |   2 +-
 tools/perf/tests/parse-events.c             |  30 +-
 tools/perf/tests/shell/record.sh            |  25 ++
 tools/perf/tests/shell/stat.sh              |   2 +-
 tools/perf/util/env.c                       |  23 +
 tools/perf/util/env.h                       |   4 +
 tools/perf/util/evsel.c                     | 457 +++++++++++++++-----
 tools/perf/util/evsel.h                     |   1 -
 tools/perf/util/parse-events.c              |   6 +-
 tools/perf/util/pmu.h                       |   4 +
 tools/perf/util/util.c                      |  10 +-
 tools/perf/util/util.h                      |   3 +
 21 files changed, 452 insertions(+), 171 deletions(-)
 delete mode 100644 tools/perf/arch/x86/util/env.c
 delete mode 100644 tools/perf/arch/x86/util/env.h


base-commit: ea2ead4224fd3899f6dadd4c1fc526f32ec2246c
-- 
2.47.0.rc1.288.g06298d1525-goog


             reply	other threads:[~2024-10-16  6:24 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-16  6:23 Namhyung Kim [this message]
2024-10-16  6:23 ` [PATCH v5 1/9] perf tools: Add fallback for exclude_guest Namhyung Kim
2024-10-16  6:23 ` [PATCH v5 2/9] perf tools: Don't set attr.exclude_guest by default Namhyung Kim
2024-10-16  6:23 ` [PATCH v5 3/9] perf tools: Simplify evsel__add_modifier() Namhyung Kim
2024-10-16  6:23 ` [PATCH v5 4/9] perf tools: Do not set exclude_guest for precise_ip Namhyung Kim
2024-10-16  6:23 ` [PATCH v5 5/9] perf tools: Detect missing kernel features properly Namhyung Kim
2024-10-16  6:23 ` [PATCH v5 6/9] perf tools: Move x86__is_amd_cpu() to util/env.c Namhyung Kim
2024-10-16  6:23 ` [PATCH v5 7/9] perf tools: Check fallback error and order Namhyung Kim
2024-10-16  6:23 ` [PATCH v5 8/9] perf record: Just use "cycles:P" as the default event Namhyung Kim
2024-10-16  6:23 ` [PATCH v5 9/9] perf test: Add precise_max subtest to the perf record shell test Namhyung Kim
2024-10-23 18:01 ` [PATCHSET 0/9] perf tools: Do not set attr.exclude_guest by default (v5) Namhyung Kim

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=20241016062359.264929-1-namhyung@kernel.org \
    --to=namhyung@kernel.org \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=atishp@atishpatra.org \
    --cc=irogers@google.com \
    --cc=james.clark@arm.com \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@linux.intel.com \
    --cc=kjain@linux.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@kernel.org \
    --cc=mizhang@google.com \
    --cc=palmer@rivosinc.com \
    --cc=peterz@infradead.org \
    --cc=ravi.bangoria@amd.com \
    --cc=tmricht@linux.ibm.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;
as well as URLs for NNTP newsgroup(s).