mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 22:52:19 +02:00
perf/amd/ibs: Account interrupt for discarded samples
Add interrupt throttling accounting for below cases:
o IBS Op PMU: A software filter (in addition to the hardware filter)
drops samples whose load latency is below the user-specified
threshold.
o IBS Fetch PMU: Samples discarded due to the zero-RIP erratum (#1197).
Although these samples are discarded, the NMI cost is still incurred, so
they should be counted for interrupt throttling.
Fixes: 26db2e0c51 ("perf/x86/amd/ibs: Work around erratum #1197")
Fixes: d20610c19b ("perf/amd/ibs: Add support for OP Load Latency Filtering")
Signed-off-by: Ravi Bangoria <ravi.bangoria@amd.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Link: https://patch.msgid.link/20260216042216.1440-2-ravi.bangoria@amd.com
This commit is contained in:
parent
da45c8d5f0
commit
01336b5559
|
|
@ -1293,8 +1293,10 @@ static int perf_ibs_handle_irq(struct perf_ibs *perf_ibs, struct pt_regs *iregs)
|
|||
* within [128, 2048] range.
|
||||
*/
|
||||
if (!op_data3.ld_op || !op_data3.dc_miss ||
|
||||
op_data3.dc_miss_lat <= (event->attr.config1 & 0xFFF))
|
||||
op_data3.dc_miss_lat <= (event->attr.config1 & 0xFFF)) {
|
||||
throttle = perf_event_account_interrupt(event);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -1326,8 +1328,10 @@ static int perf_ibs_handle_irq(struct perf_ibs *perf_ibs, struct pt_regs *iregs)
|
|||
regs.flags &= ~PERF_EFLAGS_EXACT;
|
||||
} else {
|
||||
/* Workaround for erratum #1197 */
|
||||
if (perf_ibs->fetch_ignore_if_zero_rip && !(ibs_data.regs[1]))
|
||||
if (perf_ibs->fetch_ignore_if_zero_rip && !(ibs_data.regs[1])) {
|
||||
throttle = perf_event_account_interrupt(event);
|
||||
goto out;
|
||||
}
|
||||
|
||||
set_linear_ip(®s, ibs_data.regs[1]);
|
||||
regs.flags |= PERF_EFLAGS_EXACT;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user