]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
trace: platform/x86/intel/ifs: Add SBAF trace support
authorJithu Joseph <jithu.joseph@intel.com>
Thu, 1 Aug 2024 05:18:14 +0000 (05:18 +0000)
committerHans de Goede <hdegoede@redhat.com>
Mon, 12 Aug 2024 14:36:11 +0000 (16:36 +0200)
Add tracing support for the SBAF IFS tests, which may be useful for
debugging systems that fail these tests. Log details like test content
batch number, SBAF bundle ID, program index and the exact errors or
warnings encountered by each HT thread during the test.

Reviewed-by: Ashok Raj <ashok.raj@intel.com>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Jithu Joseph <jithu.joseph@intel.com>
Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Link: https://lore.kernel.org/r/20240801051814.1935149-5-sathyanarayanan.kuppuswamy@linux.intel.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/intel/ifs/runtest.c
include/trace/events/intel_ifs.h

index 2a37f009d0b3c2d55efa9f30405be5d54490208a..7670fc89153dc81f8d451082440426feee6c8c90 100644 (file)
@@ -528,6 +528,7 @@ static int dosbaf(void *data)
         */
        wrmsrl(MSR_ACTIVATE_SBAF, run_params->activate->data);
        rdmsrl(MSR_SBAF_STATUS, status.data);
+       trace_ifs_sbaf(ifsd->cur_batch, *run_params->activate, status);
 
        /* Pass back the result of the test */
        if (cpu == first)
index 0d88ebf2c98017a7f48adbb576de4e55a5fc26cd..70323acde1de2cb174b2e31ac1ff811df1ee2e83 100644 (file)
@@ -35,6 +35,33 @@ TRACE_EVENT(ifs_status,
                __entry->status)
 );
 
+TRACE_EVENT(ifs_sbaf,
+
+       TP_PROTO(int batch, union ifs_sbaf activate, union ifs_sbaf_status status),
+
+       TP_ARGS(batch, activate, status),
+
+       TP_STRUCT__entry(
+               __field(        u64,    status  )
+               __field(        int,    batch   )
+               __field(        u16,    bundle  )
+               __field(        u16,    pgm     )
+       ),
+
+       TP_fast_assign(
+               __entry->status = status.data;
+               __entry->batch  = batch;
+               __entry->bundle = activate.bundle_idx;
+               __entry->pgm    = activate.pgm_idx;
+       ),
+
+       TP_printk("batch: 0x%.2x, bundle_idx: 0x%.4x, pgm_idx: 0x%.4x, status: 0x%.16llx",
+               __entry->batch,
+               __entry->bundle,
+               __entry->pgm,
+               __entry->status)
+);
+
 #endif /* _TRACE_IFS_H */
 
 /* This part must be outside protection */