mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.4 KiB
62 lines
1.4 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#undef TRACE_SYSTEM |
|
#define TRACE_SYSTEM tlb |
|
|
|
#if !defined(_TRACE_TLB_H) || defined(TRACE_HEADER_MULTI_READ) |
|
#define _TRACE_TLB_H |
|
|
|
#include <linux/mm_types.h> |
|
#include <linux/tracepoint.h> |
|
|
|
#define TLB_FLUSH_REASON \ |
|
EM( TLB_FLUSH_ON_TASK_SWITCH, "flush on task switch" ) \ |
|
EM( TLB_REMOTE_SHOOTDOWN, "remote shootdown" ) \ |
|
EM( TLB_LOCAL_SHOOTDOWN, "local shootdown" ) \ |
|
EM( TLB_LOCAL_MM_SHOOTDOWN, "local mm shootdown" ) \ |
|
EMe( TLB_REMOTE_SEND_IPI, "remote ipi send" ) |
|
|
|
/* |
|
* First define the enums in TLB_FLUSH_REASON to be exported to userspace |
|
* via TRACE_DEFINE_ENUM(). |
|
*/ |
|
#undef EM |
|
#undef EMe |
|
#define EM(a,b) TRACE_DEFINE_ENUM(a); |
|
#define EMe(a,b) TRACE_DEFINE_ENUM(a); |
|
|
|
TLB_FLUSH_REASON |
|
|
|
/* |
|
* Now redefine the EM() and EMe() macros to map the enums to the strings |
|
* that will be printed in the output. |
|
*/ |
|
#undef EM |
|
#undef EMe |
|
#define EM(a,b) { a, b }, |
|
#define EMe(a,b) { a, b } |
|
|
|
TRACE_EVENT(tlb_flush, |
|
|
|
TP_PROTO(int reason, unsigned long pages), |
|
TP_ARGS(reason, pages), |
|
|
|
TP_STRUCT__entry( |
|
__field( int, reason) |
|
__field(unsigned long, pages) |
|
), |
|
|
|
TP_fast_assign( |
|
__entry->reason = reason; |
|
__entry->pages = pages; |
|
), |
|
|
|
TP_printk("pages:%ld reason:%s (%d)", |
|
__entry->pages, |
|
__print_symbolic(__entry->reason, TLB_FLUSH_REASON), |
|
__entry->reason) |
|
); |
|
|
|
#endif /* _TRACE_TLB_H */ |
|
|
|
/* This part must be outside protection */ |
|
#include <trace/define_trace.h>
|
|
|