【发布时间】:2018-08-23 00:59:48
【问题描述】:
我对 Linux 操作系统编程世界还很陌生。我正在开发一个控制英特尔 CPU 的项目(涡轮增压、超线程、最小和最大缩放频率以解决其他用户的问题)。在调查 /proc/stat 的 CPU 利用率时,我偶然发现了这一点:
$ ll /proc/thread-self
lrwxrwxrwx 1 root root 0 Aug 22 04:26 /proc/thread-self -> 9389/task/9389/
$ ll /proc/self
lrwxrwxrwx 1 root root 0 Aug 22 04:26 /proc/self -> 29420/
$ ll /proc/self
lrwxrwxrwx 1 root root 0 Aug 22 04:26 /proc/self -> 29636/
$ ll /proc/thread-self
lrwxrwxrwx 1 root root 0 Aug 22 04:26 /proc/thread-self -> 30021/task/30021/
每次您使用ll 列出符号链接时,thread-self 和self 都会不断变化。但日期和时间仍为上次启动时间。
我稍微挖掘了一下,发现了这个email chain in 2014:
这个补丁集实现了
/proc/thread-self一个神奇的符号链接,可以解决 几个问题。
.... 进一步在电子邮件中说:
proc: Have net show up under /proc/<tgid>/task/<tid> proc: Implement /proc/thread-self to point at the directory of the current thread proc: Point /proc/net at /proc/thread-self/net instead of /proc/self/net proc: Point /proc/mounts at /proc/thread-self/mounts instead of /proc/self/mounts
dp 符号链接如何工作?或者我们如何使用它们来有意义地分析/显示 Linux 正在做什么?还是它们只是毫无意义而被视为“绒毛”而被忽略?
【问题讨论】:
标签: linux multithreading linux-kernel proc