diff options
author | Namhyung Kim <namhyung@kernel.org> | 2024-12-03 21:04:41 +0300 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2024-12-09 17:50:32 +0300 |
commit | d29e744c71673a71da8f8522799ee02744cad6c9 (patch) | |
tree | b136c3e81ed782fd8a358e662d8c913af7a089f0 /tools/perf/scripts/python/exported-sql-viewer.py | |
parent | 6057b90ecc84f232dd32a047a086a4c4c271765f (diff) | |
download | linux-d29e744c71673a71da8f8522799ee02744cad6c9.tar.xz |
perf/x86: Relax privilege filter restriction on AMD IBS
While IBS is available for per-thread profiling, still regular users
cannot open an event due to the default paranoid setting (2) which
doesn't allow unprivileged users to get kernel samples. That means
it needs to set exclude_kernel bit in the attribute but IBS driver
would reject it since it has PERF_PMU_CAP_NO_EXCLUDE. This is not what
we want and I've been getting requests to fix this issue.
This should be done in the hardware, but until we get the HW fix we may
allow exclude_{kernel,user,hv} in the attribute and silently drop the
samples in the PMU IRQ handler. It won't guarantee the sampling
frequency or even it'd miss some with fixed period too. Not ideal,
but that'd still be helpful to regular users.
To minimize the confusion, let's add 'swfilt' bit to attr.config2 which
is exposed in the sysfs format directory so that users can figure out
if the kernel support the privilege filters by software.
$ perf record -e ibs_op/swfilt=1/u true
This uses perf_exclude_event() which checks regs->cs. But it should be
fine because set_linear_ip() also updates the CS according to the RIP
provided by IBS.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Tested-by: Ravi Bangoria <ravi.bangoria@amd.com>
Reviewed-by: Ravi Bangoria <ravi.bangoria@amd.com>
Link: https://lore.kernel.org/r/20241203180441.1634709-3-namhyung@kernel.org
Diffstat (limited to 'tools/perf/scripts/python/exported-sql-viewer.py')
0 files changed, 0 insertions, 0 deletions