如何使Linux内核导出/proc/[pid]/io?

4

我在我的板子上运行Linux,需要读取/proc/[pid]/io中的信息。但是找不到该文件。

例如:

$ dd if=/dev/zero of=/tmp/aa &
[1] 926
$ cat /proc/926/io
cat: /proc/926/io: No such file or directory

我需要启用哪些内核导出?非常感谢您的帮助!

/proc 存在吗?/proc/926 存在吗? - rrauenza
是的,它们确实存在。 - dvn0zzz
什么内核版本? (uname -a) - rrauenza
我的内核版本是:Linux 4.1.17 - dvn0zzz
根据这个,你需要启用CONFIG_TASKSTATS。请问在/boot/config*中它的值是多少? - rrauenza
显示剩余2条评论
2个回答

3
我发现还需要另外一件事情。我刚刚重新编译了一个4.4内核(针对嵌入式系统),启用CONFIG_TASKSTATS并不足够。我必须启用
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y

为了让/proc/<pid>/io出现。

2
根据this,您需要在内核中启用CONFIG_TASKSTATS
您可以根据发行版的不同以各种方式检查当前内核的配置,但在Redhat系列中查看/boot/config-$(uname -r)即可。
如果您没有配置该选项,则需要重新编译内核或调查为什么您的发行版未启用它。

1
嗯,还有其他必要的东西吗?我刚刚重新编译了一个4.4内核(用于嵌入式系统),并且我有# zcat /proc/config.gz |grep TASKSTATSCONFIG_TASKSTATS=y但是我仍然没有任何/proc/<pid>/io。(我有很多其他东西,例如/proc<pid>/stat,但没有io。) - Popup

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接