问题标签 [ftrace]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ftrace - ftrace导致linux阻塞无响应
我正在研究 GPON ONT(Broadcom 68380(MIPS32),256MB 内存)Linux 内核 3.4.11rt,在输入 echo function > current_tracer 后,控制台没有响应。
我在 Ubuntu16.04 中运行上述命令一切正常。
这里有一个类似的问题(标题是“Ftrace on android freeze when turn on function trace, someone help me”),但我已经用 'rdpa*' 过滤了,即使有一个功能也缩小了过滤器,系统仍然被阻塞, Magic SysRequest Key 也没有响应。
我应该怎么做才能解决这个问题?请分享您的意见。
太感谢了。
linux - 如何启用或配置 ftrace 模块
我想使用 ftrace 的高级功能,但我不知道如何使用。debugfs 已安装,但 /sys/kernel/debug 中没有“跟踪”文件夹。我正在通过 yocto 运行 ARM-Target @ Angstrom 发行版,请参阅:
图片:uname -a & lsb_release -a 输出
zcat /proc/config.gz | grep TRACER|FTRACE 输出
如何配置内核?我必须设置哪些选项?
linux-kernel - ftrace 如何跟踪中断服务程序?
ftrace
用于内核的功能跟踪。现在它如何处理中断。它可以在中断模式下跟踪内核功能吗?如果是这样,你能解释一下它是如何工作的。我正在尝试编写一个跟踪函数调用的函数,它在主管模式下工作正常,但在中断模式下不起作用(进入循环)。我需要让它在IRQ模式下工作。
linux - 打印类似于 ftrace 的 CPU 编号
我想打印当前进程或函数正在执行的 CPU 编号,类似于 ftrace,如下所示:
我如何获得该值?我想它在某些功能中start_kernel
。我们可以打印它的值吗?我正在使用linux-4.1
内核。
linux - 如何使用 ftrace 跟踪 linux fair (scheduler) 进程
我正在做一个关于 CFS 的项目。使用 Ftrace 跟踪 Linux 中公平进程的整个路径。
根据文档 https://lwn.net/Articles/370423/。
我可以使用进程 pid 跟踪特定进程。但公平进程 pid 不是静态的(变化迅速),所以我无法跟踪它。
我是堆栈溢出和系统编程的新手。
c - 在一组嵌套函数中单行打印叶子函数
我有一组嵌套函数,如kernel
源代码。我需要打印带有打开和关闭花括号的父函数,以及带有分号的单行中的叶子函数,类似于 ftrace 图形跟踪器。我有当前函数的名称,但我无法提出逻辑来识别一组嵌套函数中的叶函数。我应该为每个函数的进入和退出使用一个计数器吗?然后我如何使用该counter
值?例子 :
linux-kernel - 使用早期时钟在 x86 中打印时间以及函数名称
我想打印 x86 中每个函数的时间戳。我可以在早期启动期间打印函数名称,但我想打印时间戳也类似于 ftrace:
TASK-PID CPU# TIMESTAMP FUNCTION
| | | | |
bash-16939 [000] 6075.461561: mutex_unlock <-tracing_set_tracer
<ide>-0 [001] 6075.461562: _spin_unlock_irqrestore <-hrtimer_get_next_event
由于 ftrace 可以在启动后使用,因此它们使用一些时钟源来获取时间戳。但我想在早期启动时打印时间戳,我听说我们可以early clock
在 x86 中使用寄存器概念来实现这一点。如何使用它来打印时间戳?我发现有时钟源,如tsc
,hpet
和acpi_pm
. 我可以在早期启动时使用这些吗?如果有怎么办?
debugging - 如何在启动期间跟踪linux内核中的所有函数调用
我是 Linux 内核调试的新手。
我遇到过 ftrace 和 gdb 等工具。我想查看内核在加载模块时进行的所有相关函数调用,例如图形驱动程序(drm、kms、缓冲区设置等)的函数调用和 GPU 的初始化。
我尝试通过添加来设置 grub
stacktrace trace_event=sched: ,timer: ,irq:* trace_buf_size=40M
我得到以下输出
这对我没有多大帮助。
我应该如何进行?任何帮助,将不胜感激。
谢谢
linux - Arch Linux 中的 Ftrace 前端是什么?
在Arch Linux
中,我想使用trace-cmd的前端Ftrace
。但不幸的是,它不存在:
我尝试在Arch Linux 软件包站点中查找,仍然没有结果。那么是否有任何开箱即用的前端提供Arch Linux
?
linux-kernel - 从 ftrace 处理程序返回到原始函数时恢复任务 pt_regs
使用内核模块 (LKM),Linux 内核ftrace
函数允许您设置FTRACE_OPS_FL_SAVE_REGS
和FTRACE_OPS_FL_IPMODIFY
标志,本质上允许您完全重定向任何可以找到符号地址的内核函数,如下所示:
new_addr
新函数的地址在哪里。该kpatch
工具使用它,尽管从未返回到原始功能。
如果在我指向的函数的末尾,new_addr
我试试这个:
一些函数可以正常运行,但大多数会导致调用进程出现段错误。
这些ftrace
函数具有内置代码,可pt_regs
在返回到原始函数时恢复当前任务,这就是为什么我能够转到自己的函数并毫无问题地拥有参数。但是,此时在代码中,ftrace
不再涉及。我如何告诉内核不要重置当前寄存器,以便函数可以在新的返回地址处使用它们?