获取Linux内核中另一个进程的每进程CPU时间时钟

Posted

技术标签:

【中文标题】获取Linux内核中另一个进程的每进程CPU时间时钟【英文标题】:Obtaining the per-process CPU-time clock of another process in Linux kernel 【发布时间】:2013-08-28 06:30:11 【问题描述】:

如何查看linux内核是否支持获取另一个进程的per-process CPU-time clock?

详细说明:

clock_getcpuclockid() 如果调用者无权访问pid指定的进程的CPU时间时钟,则返回EPERM错误。 (在 POSIX.1-2001 中指定为可选错误;在 Linux 上不会发生,除非内核不支持获取另一个进程的每进程 CPU 时间时钟。)

那么,我的问题是如何检查linux内核是否支持获取另一个进程的每进程CPU时间时钟?换句话说,我怎样才能让clock_getcpuclockid() 失败并返回值EPERM?

【问题讨论】:

【参考方案1】:

如果clock_getcpuclockid() 成功,Linux 内核将支持这一点。

【讨论】:

是的,我知道,但如果我想禁用支持,我该怎么做。换句话说,我怎样才能让clock_getcpuclockid() 失败并返回值EPERM? 这不是你在问题中问的;不改变内核是不可能的。

以上是关于获取Linux内核中另一个进程的每进程CPU时间时钟的主要内容,如果未能解决你的问题,请参考以下文章

linux --> 获取进程执行时间

性能工具:特定进程CPU

性能工具:特定进程CPU

Linux 内核进程管理 ( 进程状态 | 进程创建 | 进程终止 | 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 )

linux进程为啥有用户栈和内核栈,

linux为啥需要内核栈,系统调用时直接使用用户栈不行吗