-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
x86/mm: Add tracepoints for TLB flushes
We don't have any good way to figure out what kinds of flushes are being attempted. Right now, we can try to use the vm counters, but those only tell us what we actually did with the hardware (one-by-one vs full) and don't tell us what was actually _requested_. This allows us to select out "interesting" TLB flushes that we might want to optimize (like the ranged ones) and ignore the ones that we have very little control over (the ones at context switch). Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> Link: http://lkml.kernel.org/r/20140731154059.4C96CBA5@viggo.jf.intel.com Acked-by: Rik van Riel <riel@redhat.com> Cc: Mel Gorman <mgorman@suse.de> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
- Loading branch information
Dave Hansen
authored and
H. Peter Anvin
committed
Jul 31, 2014
1 parent
a23421f
commit d17d8f9
Showing
5 changed files
with
70 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
#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 \ | ||
{ TLB_FLUSH_ON_TASK_SWITCH, "flush on task switch" }, \ | ||
{ TLB_REMOTE_SHOOTDOWN, "remote shootdown" }, \ | ||
{ TLB_LOCAL_SHOOTDOWN, "local shootdown" }, \ | ||
{ TLB_LOCAL_MM_SHOOTDOWN, "local mm shootdown" } | ||
|
||
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> |