Messages in this thread Patch in this message | | | From | Namhyung Kim <> | Subject | [PATCH 3/3] perf/x86: Add CAP_NO_INTERRUPT for uncore PMUs | Date | Mon, 20 Nov 2023 14:19:32 -0800 |
| |
It doesn't support sampling in uncore PMU events. While it's technically possible to generate interrupts, let's treat it as if it has no interrupt in order to skip the freq adjust/unthrottling logic in the timer handler which is only meaningful to sampling events.
Also remove the sampling event check because it'd be done in the general code in the perf_event_open syscall.
Signed-off-by: Namhyung Kim <namhyung@kernel.org> --- arch/x86/events/intel/uncore.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/arch/x86/events/intel/uncore.c b/arch/x86/events/intel/uncore.c index 69043e02e8a7..f7e6228bd1b1 100644 --- a/arch/x86/events/intel/uncore.c +++ b/arch/x86/events/intel/uncore.c @@ -744,10 +744,6 @@ static int uncore_pmu_event_init(struct perf_event *event) if (pmu->func_id < 0) return -ENOENT; - /* Sampling not supported yet */ - if (hwc->sample_period) - return -EINVAL; - /* * Place all uncore events for a particular physical package * onto a single cpu @@ -919,7 +915,12 @@ static int uncore_pmu_register(struct intel_uncore_pmu *pmu) .stop = uncore_pmu_event_stop, .read = uncore_pmu_event_read, .module = THIS_MODULE, - .capabilities = PERF_PMU_CAP_NO_EXCLUDE, + /* + * It doesn't allow sampling for uncore events, let's + * treat the PMU has no interrupts to skip them in the + * perf_adjust_freq_unthr_context(). + */ + .capabilities = PERF_PMU_CAP_NO_EXCLUDE | PERF_PMU_CAP_NO_INTERRUPT, .attr_update = pmu->type->attr_update, }; } else { -- 2.43.0.rc1.413.gea7ed67945-goog
| |