trace/osnoise: Add a header with PREEMPT_RT additional fields
Some extra flags are printed to the trace header when using the PREEMPT_RT config. The extra flags are: need-resched-lazy, preempt-lazy-depth, and migrate-disable. Without printing these fields, the osnoise specific fields are shifted by three positions, for example: # tracer: osnoise # # _-----=> irqs-off # / _----=> need-resched # | / _---=> hardirq/softirq # || / _--=> preempt-depth MAX # || / SINGLE Interference counters: # |||| RUNTIME NOISE %% OF CPU NOISE +-----------------------------+ # TASK-PID CPU# |||| TIMESTAMP IN US IN US AVAILABLE IN US HW NMI IRQ SIRQ THREAD # | | | |||| | | | | | | | | | | <...>-741 [000] ....... 1105.690909: 1000000 234 99.97660 36 21 0 1001 22 3 <...>-742 [001] ....... 1105.691923: 1000000 281 99.97190 197 7 0 1012 35 14 <...>-743 [002] ....... 1105.691958: 1000000 1324 99.86760 118 11 0 1016 155 143 <...>-744 [003] ....... 1105.691998: 1000000 109 99.98910 21 4 0 1004 33 7 <...>-745 [004] ....... 1105.692015: 1000000 2023 99.79770 97 37 0 1023 52 18 Add a new header for osnoise with the missing fields, to be used when the PREEMPT_RT is enabled. Link: https://lkml.kernel.org/r/1f03289d2a51fde5a58c2e7def063dc630820ad1.1626598844.git.bristot@kernel.org Cc: Tom Zanussi <zanussi@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
Родитель
7b40066c97
Коммит
d03721a6e7
|
@ -253,10 +253,40 @@ static struct osnoise_data {
|
|||
*/
|
||||
static bool osnoise_busy;
|
||||
|
||||
#ifdef CONFIG_PREEMPT_RT
|
||||
/*
|
||||
* Print the osnoise header info.
|
||||
*/
|
||||
static void print_osnoise_headers(struct seq_file *s)
|
||||
{
|
||||
if (osnoise_data.tainted)
|
||||
seq_puts(s, "# osnoise is tainted!\n");
|
||||
|
||||
seq_puts(s, "# _-------=> irqs-off\n");
|
||||
seq_puts(s, "# / _------=> need-resched\n");
|
||||
seq_puts(s, "# | / _-----=> need-resched-lazy\n");
|
||||
seq_puts(s, "# || / _----=> hardirq/softirq\n");
|
||||
seq_puts(s, "# ||| / _---=> preempt-depth\n");
|
||||
seq_puts(s, "# |||| / _--=> preempt-lazy-depth\n");
|
||||
seq_puts(s, "# ||||| / _-=> migrate-disable\n");
|
||||
|
||||
seq_puts(s, "# |||||| / ");
|
||||
seq_puts(s, " MAX\n");
|
||||
|
||||
seq_puts(s, "# ||||| / ");
|
||||
seq_puts(s, " SINGLE Interference counters:\n");
|
||||
|
||||
seq_puts(s, "# ||||||| RUNTIME ");
|
||||
seq_puts(s, " NOISE %% OF CPU NOISE +-----------------------------+\n");
|
||||
|
||||
seq_puts(s, "# TASK-PID CPU# ||||||| TIMESTAMP IN US ");
|
||||
seq_puts(s, " IN US AVAILABLE IN US HW NMI IRQ SIRQ THREAD\n");
|
||||
|
||||
seq_puts(s, "# | | | ||||||| | | ");
|
||||
seq_puts(s, " | | | | | | | |\n");
|
||||
}
|
||||
#else /* CONFIG_PREEMPT_RT */
|
||||
static void print_osnoise_headers(struct seq_file *s)
|
||||
{
|
||||
if (osnoise_data.tainted)
|
||||
seq_puts(s, "# osnoise is tainted!\n");
|
||||
|
@ -279,6 +309,7 @@ static void print_osnoise_headers(struct seq_file *s)
|
|||
seq_puts(s, "# | | | |||| | | ");
|
||||
seq_puts(s, " | | | | | | | |\n");
|
||||
}
|
||||
#endif /* CONFIG_PREEMPT_RT */
|
||||
|
||||
/*
|
||||
* osnoise_taint - report an osnoise error.
|
||||
|
|
Загрузка…
Ссылка в новой задаче