ftrace

何时(以及如何)在内核空间中做出文件权限/访问决策?
ftrace

何时(以及如何)在内核空间中做出文件权限/访问决策?

(我认为)我对 Linux 权限的工作原理有相对较好的理解 - 传统的 Unix DAC 权限及其表示方式、与进程相关的安全上下文(即 cred 结构、功能等)、LSM 的挂钩等.,以及它们与 (E)UID/E(GID) 等的链接。我不明白,并且很难在内核代码中找到,并且使用ftrace(通过trace-cmd),是这些检查实际完成的时间(大概)在内核空间中,并且在哪一点访问决策实际上已做出。 详细说明: 我有一个 root 拥有的目录/dirchmod-ed 到r-x------(500)。作为非特权用户,我运行/bin/ls /dir并收到权限被拒绝的错...

Admin

如何在 Linux 中使用 Ftrace 获取调度延迟?
ftrace

如何在 Linux 中使用 Ftrace 获取调度延迟?

我正在开发一个嵌入式 Linux (kernel-5.10.24) 系统,其中启用了 ftrace 但没有perf。 我检查了系统中的跟踪,并得到以下信息, # ls /sys/kernel/tracing/events/sched/ -l total 0 -rw-r--r-- 1 root root 0 Jan 1 1970 enable -rw-r--r-- 1 root root 0 Jan 1 1970 filter drwxr-x--- 2 root ...

Admin

ftrace 和 blktrace 跟踪点有什么区别?
ftrace

ftrace 和 blktrace 跟踪点有什么区别?

例如,我相信,我们有/sys/kernel/debug/tracing/events/block/block_bio_complete和 ,block_rq_complete这基本上是 的 IO 完成跟踪点。ftrace使用sudo blktrace -d /dev/sdb1 -o - | blkparse -i -我们可能会看到这样的一行: 8,33 1 3 0.001086286 0 C RA 1158137880 + 8 [0] ...

Admin

如何在自定义探针函数中获取跟踪事件的CPU编号?
ftrace

如何在自定义探针函数中获取跟踪事件的CPU编号?

我正在使用内核模块注册跟踪事件的探测函数。例如,跟踪事件 sched_kthread_stop 的探测函数将是: void handle_kthread_stop(void *data, struct task_struct *t) 并使用注册 tracepoint_probe_register() 现在跟踪缓冲区中的实际跟踪如下所示: bash-9002 [000] d..5 2145.303974: sched_wakeup: comm=kworker/u8:1 pid=46 prio=120 target_cpu=003 这里[0...

Admin

多个跟踪事件读取器
ftrace

多个跟踪事件读取器

问题 Linux 中用于跟踪事件的跟踪管道是否接受同时读取器? 语境 我试图RAS在运行一些基准测试时从子系统获取跟踪信息。该子系统使用跟踪事件报告硬件错误事件。 我用来获取事件的工具RAS守护进程工具。我知道该工具订阅tracing_pipe_raw每个 cpu 上的 FIFO。此外,基准测试订阅性能事件,我相信,也通过相同的管道进行广告。 tracing_pipe_raw类似的作品有trace_pipe以下描述: 输出与“trace”文件相同,但该文件旨在通过实时跟踪进行流式传输。从此文件中读取数据将被阻塞,直到检索到新数据为止。与“...

Admin

/proc/pid/stat 中的 Linux 任务状态与计划事件的 Ftrace 输出不同
ftrace

/proc/pid/stat 中的 Linux 任务状态与计划事件的 Ftrace 输出不同

我试图跟踪一段代码的流程,只是为了了解任务进入 D/S/R 状态(不可中断/可中断/运行)的点。我确实理解每个状态的含义,但是进行练习显示出令人困惑的结果,直到现在我才弄清楚原因。 我正在运行的代码片段: void foo() { pthread_setname_np(pthread_self(), "lock_func/1"); while(quit == false) { for(int64_t idx=0; idx<10000000;idx++) (void)idx; ...

Admin

debugfs中怎么写控制ftrace?
ftrace

debugfs中怎么写控制ftrace?

Ftrace 通过操作调试 fs 文件来控制。但这怎么可能呢?内核如何知道此文件中的写入并启动其所需的操作?例如,如果将1写入tracing_on,内核将打开跟踪。它是否与特殊文件结构或内核订阅 debugfs 的更改有关,或者我遗漏了一些明显的东西? ...

Admin

将系统调用事件跟踪输出的格式更改为 ftrace
ftrace

将系统调用事件跟踪输出的格式更改为 ftrace

我为 sys_enter_openat 系统调用启用了 ftrace 事件跟踪。 events/syscalls/sys_enter_openat/format 中给出的相应输出格式为 print fmt: "dfd: 0x%08lx, filename: 0x%08lx, flags: 0x%08lx, mode: 0x%08lx", ((unsigned long)(REC->dfd)), ((unsigned long)(REC->filename)), ((unsigned long)(REC->flags)), ((unsign...

Admin

ftrace 的trace_stat 文件夹中的functions 文件夹
ftrace

ftrace 的trace_stat 文件夹中的functions 文件夹

我正在学习 ftrace,我从以下链接中了解到我可以使用“function_profile_enabled”文件启用函数分析。 mount -t tracefs nodev /sys/kernel/tracing cd /sys/kernel/tracing echo 1 > function_profile_enabled echo "function" > current_tracer https://www.kernel.org/doc/html/v4.18/trace/ftrace.html 上面的链接告诉我们该信息存在于trac...

Admin

如何使用 ftrace 来 function_trace 内核模块中断?
ftrace

如何使用 ftrace 来 function_trace 内核模块中断?

我有一个带有 2 个内核 (1.2 GHz) 的 Banana Pi Arm 设备,运行 Debian 内核,并启用了 ftrace 内核调试选项。我想确定内核模块函数所花费的时间量。该函数的形式为 static irq_handler_t vtgpio_irq_handler(unsigned int irq, void *dev_id, struct pt_regs *regs); 加载模块后,在我的调试文件系统中,我看到名称作为过滤器公开。我正在跟踪所有功能。我尝试启用这些trace_printk语句,但看不到它打印在我的跟踪文件中。下面是该函数...

Admin

用于显示内核/用户空间执行跟踪的时间线视图的工具
ftrace

用于显示内核/用户空间执行跟踪的时间线视图的工具

我用过 ftrace 工具跟踪命令用于记录调度跟踪点和系统调用跟踪点。我可以使用目视检查它们内核鲨鱼图形用户界面程序。它显示每个核心时间线和每个任务时间线,如下面的屏幕截图所示。 我可以看到何时触发中断、何时调用调度程序、何时进行系统调用以及何时返回。但是当进行系统调用时,kernelshark 不区分用户空间中运行的任务和内核空间中运行的任务。 我想要一个工具,可以让我在执行中断处理程序时查看特定内核;当前在用户空间中跟踪的进程;或用户空间中的某些任务。类似于这张图片的东西: 有谁知道有一个工具可以将 ftrace 数据转换为这种格式,无论是...

Admin

PMU 和跟踪点
ftrace

PMU 和跟踪点

我正在寻找有关跟踪点创建机制的信息。从这个话题开始perf_events 列表中的内核 PMU 事件是什么?和这个博客布伦丹雷格我知道跟踪点是内核代码中的一些宏,在启用它们时会调用这些宏,但我有点困惑跟踪点如何与 PMU 连接(因为它在两个链接中都提到了)? ...

Admin

使用 ftrace 在多核平台上针对特定 PID 进行功能分析
ftrace

使用 ftrace 在多核平台上针对特定 PID 进行功能分析

我正在尝试使用 ftrace 进行基于 function_profile_enabled 的函数分析,如上所述这里。我想使用 set_ftrace_pid 仅捕获特定 PID 的函数调用,如同一链接中所述。但是,当我设置 PID 并执行 function_profile_enabled 时,它仍然捕获所有 CPU 上的函数调用。因此,考虑到上下文切换,从 /sys/kernel/debug/tracing/trace_stat/function* 中过滤掉不需要的 CPU 确实很困难。 function_graph 功能与 set_ftrace_pid 配合...

Admin