44 lines · 1.3 KB · C
RawDownload
// SPDX-License-Identifier: GPL-2.0#pragma once #include "osnoise.h" /* * Define timerlat tracing mode. * * There are three tracing modes: * - tracefs-only, used when BPF is unavailable. * - BPF-only, used when BPF is available and neither trace saving nor * auto-analysis are enabled. * - mixed mode, used when BPF is available and either trace saving or * auto-analysis is enabled (which rely on sample collection through * tracefs). */enum timerlat_tracing_mode {	TRACING_MODE_BPF,	TRACING_MODE_TRACEFS,	TRACING_MODE_MIXED,}; struct timerlat_params {	struct common_params	common;	long long		timerlat_period_us;	long long		print_stack;	int			dma_latency;	bool			no_aa;	bool			dump_tasks;	int			deepest_idle_state;	enum timerlat_tracing_mode mode;	const char		*bpf_action_program;	enum stack_format	stack_format;	bool			timerlat_align;	unsigned long long	timerlat_align_us;}; #define to_timerlat_params(ptr) container_of(ptr, struct timerlat_params, common) int timerlat_apply_config(struct osnoise_tool *tool, struct timerlat_params *params);int timerlat_main(int argc, char *argv[]);int timerlat_enable(struct osnoise_tool *tool);void timerlat_analyze(struct osnoise_tool *tool, bool stopped);void timerlat_free(struct osnoise_tool *tool);