【发布时间】:2015-06-12 17:44:04
【问题描述】:
我正在开发一个内核模块,我需要获取某个进程消耗的 CPU 时间的近似值(迭代进程不是问题)。具体来说,我希望 libc clock 或 times 系统调用提供相同的行为。我尝试调用do_sys_times,但似乎没有导出(编译时未定义符号)。
有没有办法在内核模块中调用times?还有其他选择吗?
【问题讨论】:
-
不是重复的。我想要经过的每个进程的 CPU 时钟滴答声(见 man 2 次)。您链接到的帖子要求以秒为单位的挂钟时间。
-
啊,我想我现在明白了。也许您可以尝试从 /proc 中的某个位置读取此信息作为快速破解(假设您可以从内核模块内部访问文件)。
-
内核模块通常不关心进程。为什么不能从用户空间调用
times()?您要解决的实际问题是什么? -
我无法控制流程。该模块需要监控任意进程在离开调度程序时消耗的滴答声。
标签: linux-kernel posix kernel-module system-calls