mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 07:33:19 +02:00
rtla: Add function to report missed events
Add osnoise_report_missed_events to be used to report the number of missed events either during or after an osnoise or timerlat run. Also, display the percentage of missed events compared to the total number of received events. If an unknown number of missed events was reported during the run, the entire number of missed events is reported as unknown. Cc: John Kacur <jkacur@redhat.com> Cc: Luis Goncalves <lgoncalv@redhat.com> Cc: Gabriele Monaco <gmonaco@redhat.com> Link: https://lore.kernel.org/20250123142339.990300-4-tglozar@redhat.com Signed-off-by: Tomas Glozar <tglozar@redhat.com> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
parent
2aee44f721
commit
8ccd9d8bb9
|
|
@ -1095,6 +1095,26 @@ bool osnoise_trace_is_off(struct osnoise_tool *tool, struct osnoise_tool *record
|
|||
return record && !tracefs_trace_is_on(record->trace.inst);
|
||||
}
|
||||
|
||||
/*
|
||||
* osnoise_report_missed_events - report number of events dropped by trace
|
||||
* buffer
|
||||
*/
|
||||
void
|
||||
osnoise_report_missed_events(struct osnoise_tool *tool)
|
||||
{
|
||||
unsigned long long total_events;
|
||||
|
||||
if (tool->trace.missed_events == UINT64_MAX)
|
||||
printf("unknown number of events missed, results might not be accurate\n");
|
||||
else if (tool->trace.missed_events > 0) {
|
||||
total_events = tool->trace.processed_events + tool->trace.missed_events;
|
||||
|
||||
printf("%lld (%.2f%%) events missed, results might not be accurate\n",
|
||||
tool->trace.missed_events,
|
||||
(double) tool->trace.missed_events / total_events * 100.0);
|
||||
}
|
||||
}
|
||||
|
||||
static void osnoise_usage(int err)
|
||||
{
|
||||
int i;
|
||||
|
|
|
|||
|
|
@ -104,6 +104,7 @@ struct osnoise_tool {
|
|||
void osnoise_destroy_tool(struct osnoise_tool *top);
|
||||
struct osnoise_tool *osnoise_init_tool(char *tool_name);
|
||||
struct osnoise_tool *osnoise_init_trace_tool(char *tracer);
|
||||
void osnoise_report_missed_events(struct osnoise_tool *tool);
|
||||
bool osnoise_trace_is_off(struct osnoise_tool *tool, struct osnoise_tool *record);
|
||||
|
||||
int osnoise_hist_main(int argc, char *argv[]);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user