问题标签 [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.
linux-kernel - LTTng/Perf:用于退出 (sched_process_exit) 和释放 (sched_process_free) 进程的事件之间的区别
目前,我正在讨论使用 LTTng 和 Perf 进行内核跟踪的主题。我对追踪一个进程所处的不同状态特别感兴趣。
我偶然发现了这个事件sched_process_free
,然后sched_process_exit
。我想知道我目前的理解是否正确:
如果退出进程,则将其sched_process_exit
写入跟踪。但是,进程描述符可能仍在内存中,这会导致僵尸进程。当连接到进程的整个内存被释放时,sched_process_free
被调用。这意味着,如果我真的想确保进程完全“终止”并从内存中删除,我必须听sched_process_free
而不是sched_process_exit
跟踪。这个对吗?
tcp - 如何使用 ftrace 进行 tcp 探测?
我正在尝试做一个作业(来自另一个大学的课程页面),它在启动代码(带有 mininet 的 Python)中有一行
os.system("rmmod tcp_probe; modprobe tcp_probe full=1")
Popen("cat /proc/net/tcpprobe > %s" % (outfile), shell=True)
这给出了一个错误,说tcp_probe
已被禁用。
我通过谷歌搜索发现在 linux 内核中tcp_probe
已被弃用。然而,它只是要求我“使用 ftrace 做同样的事情”。我曾尝试在线搜索,但无法找到如何使用 ftrace 来实现相同的目标。
任何帮助表示赞赏。
c - (linux内核)在available_filter_functions中添加新函数
硬件 - Raspberry pi 4 Model B 8GB OS - Raspberry pi OS Buster(10)(2020-05-27-raspios-buster-full-armhf.img)(linux kerenl 4.19.y)
我在 proc.c 中添加了 rpi_get_interrupt_info() 并修改了 show_interrupts()
rpi_get_interrupt_info() 和 show_interrupts() 的完整代码
我更改的代码
当我尝试时echo rpi_get_interrupt_info > /sys/kernel/debug/tracing/set_ftrace_filter
,它说echo: write error: Invalid argument
所以我看了/sys/kernel/debug/tracing/available_filter_functions,没有rpi_get_interrupt_info
我试过noinline void rpi_get_interrupt_info(struct irqaction *action_p)
了,但它不起作用。
android - 当我使用 adb 显示 /sys/kernel/debug/tracing/available_filter_functions 时没有这样的设备
伙计们。
我正在尝试研究 Nexus 6P(旧 Android 智能手机)上的虚拟内存管理
因为AOSP中的默认内核没有开启CONFIG_FUNCITON_TRACER,所以我无法使用function tracer来研究内存管理相关的功能。
所以我下载了android内核源代码,打开config_function_tracer和其他配置依赖,重建内核。然后我把重建后的内核镜像文件放入aosp,重建启动镜像,并将构建输出的镜像刷入手机。
手机可以正常启动,一切正常,但我不能正常'cat /sys/kernel/debug/tracing/available_filter_functions',它提示“没有这样的设备”。
我检查了selinux标签,我通过命令'setenforce permissive'关闭了selinux,它无济于事。
谁能帮我解决这个问题?
ftrace - 可视化 trace-cmd 的调用图输出
我有兴趣了解 KVM。我开始trace-cmd
如下:
我使用 Kernelshark 分析了输出文件。这是我第一次使用它,所以我可能不知道如何正确使用它。无论如何,我发现很难找到函数调用的开始和结束。
我感兴趣的是将函数视为火焰图,但我对时间完全不感兴趣,我只对层次结构感兴趣。或者以类似于 IDE 的方式查看它,我可以在其中折叠那些我不感兴趣的功能块。
有没有办法从 trace-cmd 输出中生成火焰图,或者有一种工具可以帮助可视化生成的调用图?
linux - 有选择地为特定参数记录内核 Ftrace 点
我想使用 Ftrace 测量一些内核函数的性能,但我想针对特定的参数值选择性地测量它。这是因为调用相同函数(但参数不同)的相同/其他程序污染了我的 Ftrace 输出日志。另外,我不想设置 PID 过滤器,因为它不能解决我的问题(我正在运行多个并行内核线程,并且同一个程序也可以使用不同的参数调用该函数)在不影响的情况下最好的方法是什么测量?我是否缺少任何 Ftrace 功能(或可能自定义跟踪点)?
linux - Ftrace 开销比较:Linux 中的 trace_printk v/s 自定义跟踪点
trace_printk
消息和Ftrace tracepoint
在Linux内核中添加自定义的开销比较是什么?
由于跟踪日志文件中的trace_printk
自定义日志和自定义tracepoint
日志,我猜在性能测量时开销会相同吗?
我想打印某些 Linux 内核函数所花费的时间(使用 ktime_get() 及其差异),并使用 trace_printk 调用记录它们。
linux - 在 Linux-5.11.4 中跟踪 softirq_raise 的跟踪点失败
我正在编写一个内核模块来挂钩到 softirq_raise 的跟踪点。我发现它可以显示在
我的处理程序如下,
我得到的是如下,
令我惊讶的是,它只显示 vec_nr = 0,没有其他软中断被引发。
但是 /proc/softirqs 确实在 CPU5 上显示了许多不同的软中断。
我的处理程序有什么问题吗?
android - android ftrace:current_tracer 无法写入,但我有可用的跟踪器
我试图让 ftrace 在 Android 上工作,但 current_tracer 不能被写入。这是一些信息。
然后,我尝试从 android 中提取 current_tracer 并回写。我懂了:
任何人都可以帮助我吗?
linux - linux ftrace 没有为加载的模块提供任何跟踪
我编写了一个名为的测试内核模块hello.ko
,它产生一个具有以下功能的内核线程:
现在我想通过 ftrace 跟踪这个函数。因此,我可以看到加载模块后该符号可用。
我将此函数设置为过滤并打开跟踪,但我在跟踪上看不到任何内容,即使我从我的 dmesg 日志中获取thread_fn
表明该函数正在被调用。
我没有得到任何跟踪,但下面是dmesg
我从我试图跟踪的同一函数中反复获得的日志:
我的内核版本是5.8.0
,我正在运行它qemu-aarch64 version 2.11.1(Debian 1:2.11+dfsg-1ubuntu7.37~cloud0)
我在这里做了什么愚蠢的事吗?还是我遇到了一些已知问题?
编辑
我使用 Buildroot 作为我的 rootfs。我trace-cmd
这次用的是而不是直接与 ftrace 交互。我加载了我的模块,可以dmesg
从thread_fn
.
但我又没有得到任何东西。
编辑 在从@IanAbbott 评论中意识到错误之后,我稍微修改了我的代码,以便至少在跟踪处于活动状态时调用正在跟踪的函数(而不是之前没有进入/退出但只有几行的情况)在跟踪处于活动状态时循环执行)。
现在我期待从hello_log
函数中获取跟踪,但我再次在跟踪中没有得到任何东西。现在怎么了?