Skip to content

Commit

Permalink
trace: platform/x86/intel/ifs: Add trace point to track Intel IFS ope…
Browse files Browse the repository at this point in the history
…rations

Add tracing support which may be useful for debugging systems that fail to complete
In Field Scan tests.

Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20220506225410.1652287-11-tony.luck@intel.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  • Loading branch information
aegl authored and jwrdegoede committed May 12, 2022
1 parent 6f33a92 commit 51af802
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 0 deletions.
1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -9865,6 +9865,7 @@ R: Ashok Raj <ashok.raj@intel.com>
R: Tony Luck <tony.luck@intel.com>
S: Maintained
F: drivers/platform/x86/intel/ifs
F: include/trace/events/intel_ifs.h

INTEL INTEGRATED SENSOR HUB DRIVER
M: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Expand Down
5 changes: 5 additions & 0 deletions drivers/platform/x86/intel/ifs/runtest.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
* core will update results of the test.
*/

#define CREATE_TRACE_POINTS
#include <trace/events/intel_ifs.h>

/* Max retries on the same chunk */
#define MAX_IFS_RETRIES 5

Expand Down Expand Up @@ -191,6 +194,8 @@ static void ifs_test_core(int cpu, struct device *dev)

status.data = msrvals[1];

trace_ifs_status(cpu, activate, status);

/* Some cases can be retried, give up for others */
if (!can_restart(status))
break;
Expand Down
41 changes: 41 additions & 0 deletions include/trace/events/intel_ifs.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/* SPDX-License-Identifier: GPL-2.0 */
#undef TRACE_SYSTEM
#define TRACE_SYSTEM intel_ifs

#if !defined(_TRACE_IFS_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_IFS_H

#include <linux/ktime.h>
#include <linux/tracepoint.h>

TRACE_EVENT(ifs_status,

TP_PROTO(int cpu, union ifs_scan activate, union ifs_status status),

TP_ARGS(cpu, activate, status),

TP_STRUCT__entry(
__field( u64, status )
__field( int, cpu )
__field( u8, start )
__field( u8, stop )
),

TP_fast_assign(
__entry->cpu = cpu;
__entry->start = activate.start;
__entry->stop = activate.stop;
__entry->status = status.data;
),

TP_printk("cpu: %d, start: %.2x, stop: %.2x, status: %llx",
__entry->cpu,
__entry->start,
__entry->stop,
__entry->status)
);

#endif /* _TRACE_IFS_H */

/* This part must be outside protection */
#include <trace/define_trace.h>

0 comments on commit 51af802

Please sign in to comment.