Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/tracing/rtla/src/timerlat.h
29524 views
1
// SPDX-License-Identifier: GPL-2.0
2
#include "osnoise.h"
3
4
/*
5
* Define timerlat tracing mode.
6
*
7
* There are three tracing modes:
8
* - tracefs-only, used when BPF is unavailable.
9
* - BPF-only, used when BPF is available and neither trace saving nor
10
* auto-analysis are enabled.
11
* - mixed mode, used when BPF is available and either trace saving or
12
* auto-analysis is enabled (which rely on sample collection through
13
* tracefs).
14
*/
15
enum timerlat_tracing_mode {
16
TRACING_MODE_BPF,
17
TRACING_MODE_TRACEFS,
18
TRACING_MODE_MIXED,
19
};
20
21
struct timerlat_params {
22
struct common_params common;
23
long long timerlat_period_us;
24
long long print_stack;
25
int dma_latency;
26
int no_aa;
27
int dump_tasks;
28
int deepest_idle_state;
29
enum timerlat_tracing_mode mode;
30
};
31
32
#define to_timerlat_params(ptr) container_of(ptr, struct timerlat_params, common)
33
34
int timerlat_apply_config(struct osnoise_tool *tool, struct timerlat_params *params);
35
int timerlat_main(int argc, char *argv[]);
36
int timerlat_enable(struct osnoise_tool *tool);
37
void timerlat_analyze(struct osnoise_tool *tool, bool stopped);
38
void timerlat_free(struct osnoise_tool *tool);
39
40
41