Process 哪个进程在Linux内核中调用系统调用?

Process 哪个进程在Linux内核中调用系统调用?,process,linux-kernel,trace,system-calls,Process,Linux Kernel,Trace,System Calls,这看起来很基本——跟踪系统调用到用户调用——但我找不到任何答案 我们正在运行一些Linux内核代码来测量频繁的系统调用。 当频率高于阈值时,我打印出内核回溯。 缺少的是与syscall的用户进程回溯跟踪的关联。 因此,基本上我需要的是一些从系统调用(在内核模式下)检查的方法,用户进程(和函数)正在调用它 下面是内核回溯: do_gettimeofday+0x43/0xc0 compat_sys_time+0x10/0x40 sysenter_do_call+0x1b/0x67 如何找到调用系统

这看起来很基本——跟踪系统调用到用户调用——但我找不到任何答案

我们正在运行一些Linux内核代码来测量频繁的系统调用。 当频率高于阈值时,我打印出内核回溯。 缺少的是与syscall的用户进程回溯跟踪的关联。 因此,基本上我需要的是一些从系统调用(在内核模式下)检查的方法,用户进程(和函数)正在调用它

下面是内核回溯:

do_gettimeofday+0x43/0xc0
compat_sys_time+0x10/0x40
sysenter_do_call+0x1b/0x67
如何找到调用系统调用的进程? 进程处于哪个状态? 我可以使用一些ptrace/strace机制来实现这一点吗? 这些信息在内核堆栈中可用吗


谢谢。

当前的
结构将为您提供当前正在执行的任务的信息。您可以跟踪当前结构指针或pid(
current->pid

任务结构的完整定义可在中找到

可以在中找到当前<代码>的通用声明