[PATCH v3 00/10] perf/amd/ibs: Fix sample period computations

Ravi Bangoria posted 10 patches 1 year ago
There is a newer version of this series
arch/x86/events/amd/ibs.c                  |  96 ++-
arch/x86/include/asm/perf_event.h          |   1 +
include/linux/perf_event.h                 |   5 +
kernel/events/core.c                       |  12 +-
tools/perf/arch/x86/include/arch-tests.h   |   1 +
tools/perf/arch/x86/tests/Build            |   1 +
tools/perf/arch/x86/tests/amd-ibs-period.c | 953 +++++++++++++++++++++
tools/perf/arch/x86/tests/arch-tests.c     |   2 +
tools/perf/tests/tests.h                   |  10 +
9 files changed, 1055 insertions(+), 26 deletions(-)
create mode 100644 tools/perf/arch/x86/tests/amd-ibs-period.c
[PATCH v3 00/10] perf/amd/ibs: Fix sample period computations
Posted by Ravi Bangoria 1 year ago
IBS Fetch and IBS Op PMUs have constraints on supported sample period
values. The IBS hw behavior could be undefined if they are not followed.
Currently, IBS driver does not honor them correctly and thus a malicious
event could cause issues to the system. Fortunately, the IBS hw is very
resilient so far and IBS PMUs are restricted to root only, so the attack
vector is minimal. In any case, these are genuine bugs and must be fixed.

There were some conflicts with Namhyung's IBS patches[1] which are now
in the tip tree, so rebased the series on tip/perf/core (02c56362a7d3).

v2: https://lore.kernel.org/r/20241206051713.991-1-ravi.bangoria@amd.com
v2->v3:
 - No code changes
 - s/pmu/PMU/g
 - Include unit test example in the commit description

[1]: https://lore.kernel.org/r/20241203180441.1634709-1-namhyung@kernel.org

Ravi Bangoria (10):
  perf/amd/ibs: Remove IBS_{FETCH|OP}_CONFIG_MASK macros
  perf/amd/ibs: Remove pointless sample period check
  perf/amd/ibs: Fix ->config to sample period calculation for OP PMU
  perf/amd/ibs: Fix perf_ibs_op.cnt_mask for CurCnt
  perf/amd/ibs: Don't allow freq mode event creation through ->config
    interface
  perf/amd/ibs: Add PMU specific minimum period
  perf/amd/ibs: Add ->check_period() callback
  perf/core: Introduce pmu->adjust_period() callback
  perf test: Introduce DEFINE_SUITE_EXCLUSIVE()
  perf test amd ibs: Add sample period unit test

 arch/x86/events/amd/ibs.c                  |  96 ++-
 arch/x86/include/asm/perf_event.h          |   1 +
 include/linux/perf_event.h                 |   5 +
 kernel/events/core.c                       |  12 +-
 tools/perf/arch/x86/include/arch-tests.h   |   1 +
 tools/perf/arch/x86/tests/Build            |   1 +
 tools/perf/arch/x86/tests/amd-ibs-period.c | 953 +++++++++++++++++++++
 tools/perf/arch/x86/tests/arch-tests.c     |   2 +
 tools/perf/tests/tests.h                   |  10 +
 9 files changed, 1055 insertions(+), 26 deletions(-)
 create mode 100644 tools/perf/arch/x86/tests/amd-ibs-period.c

-- 
2.43.0
Re: [PATCH v3 00/10] perf/amd/ibs: Fix sample period computations
Posted by Ravi Bangoria 12 months ago
On 10-Dec-24 3:04 PM, Ravi Bangoria wrote:
> IBS Fetch and IBS Op PMUs have constraints on supported sample period
> values. The IBS hw behavior could be undefined if they are not followed.
> Currently, IBS driver does not honor them correctly and thus a malicious
> event could cause issues to the system. Fortunately, the IBS hw is very
> resilient so far and IBS PMUs are restricted to root only, so the attack
> vector is minimal. In any case, these are genuine bugs and must be fixed.
> 
> There were some conflicts with Namhyung's IBS patches[1] which are now
> in the tip tree, so rebased the series on tip/perf/core (02c56362a7d3).
> 
> v2: https://lore.kernel.org/r/20241206051713.991-1-ravi.bangoria@amd.com
> v2->v3:
>  - No code changes
>  - s/pmu/PMU/g
>  - Include unit test example in the commit description
> 
> [1]: https://lore.kernel.org/r/20241203180441.1634709-1-namhyung@kernel.org

Peter, Ingo, gentle ping.

Thanks,
Ravi