From 06c9c08c48fba58379c7c5c99faaab0888ed371b Mon Sep 17 00:00:00 2001 From: Michael Cheng Date: Fri, 10 Apr 2026 21:59:00 -0700 Subject: [PATCH] intel/ds: report when OA metrics are unavailable Promote DBG() failure paths in enumerate_sysfs_metrics() to mesa_logw() so users see why OA metrics are unavailable without needing INTEL_DEBUG. Also log in PPS when no OA queries are available after initialization. Signed-off-by: Michael Cheng Reviewed-by: Lionel Landwerlin Part-of: --- src/intel/ds/intel_pps_driver.cc | 10 +++++++++- src/intel/ds/intel_pps_perf.cc | 3 +++ src/intel/perf/intel_perf.c | 5 +++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/intel/ds/intel_pps_driver.cc b/src/intel/ds/intel_pps_driver.cc index ed4c9b36577..b13377d161b 100644 --- a/src/intel/ds/intel_pps_driver.cc +++ b/src/intel/ds/intel_pps_driver.cc @@ -80,13 +80,21 @@ bool IntelDriver::init_perfcnt() if (perf->cfg->features_supported & INTEL_PERF_FEATURE_OA_BLOCKED_BY_POLICY) { PPS_LOG_ERROR("OA metrics access blocked by system policy " - "(gpu=%d, driver=%s). " + "(gpu=%d, driver=%s): " "Check kernel paranoid settings or run as root.", drm_device.gpu_num, drm_device.name.c_str()); return false; } + if (perf->cfg->n_queries == 0) { + PPS_LOG_ERROR("No OA queries available for this device " + "(gpu=%d, driver=%s)", + drm_device.gpu_num, + drm_device.name.c_str()); + return false; + } + const char *metric_set_name = os_get_option("INTEL_PERFETTO_METRIC_SET"); struct intel_perf_query_info *default_query = nullptr; diff --git a/src/intel/ds/intel_pps_perf.cc b/src/intel/ds/intel_pps_perf.cc index 014debbd325..f91d5319b86 100644 --- a/src/intel/ds/intel_pps_perf.cc +++ b/src/intel/ds/intel_pps_perf.cc @@ -8,7 +8,10 @@ #include "intel_pps_perf.h" #include +#include #include +#include +#include #include #include diff --git a/src/intel/perf/intel_perf.c b/src/intel/perf/intel_perf.c index 947002a2cec..1bb57d17e89 100644 --- a/src/intel/perf/intel_perf.c +++ b/src/intel/perf/intel_perf.c @@ -45,6 +45,7 @@ #include "dev/intel_debug.h" #include "dev/intel_device_info.h" +#include "util/log.h" #include "dev/virtio/intel_virtio.h" #include "perf/i915/intel_perf.h" @@ -201,13 +202,13 @@ enumerate_sysfs_metrics(struct intel_perf_config *perf, len = snprintf(buf, sizeof(buf), "%s/metrics", perf->sysfs_dev_dir); if (len < 0 || len >= sizeof(buf)) { - DBG("Failed to concatenate path to sysfs metrics/ directory\n"); + mesa_logw("intel_perf: failed to concatenate path to sysfs metrics/ directory\n"); return; } metricsdir = opendir(buf); if (!metricsdir) { - DBG("Failed to open %s: %m\n", buf); + mesa_logw("intel_perf: failed to open OA metrics directory %s: %m\n", buf); return; }