打印CPU编号类似于ftrace

时间:2017-01-26 09:33:17

标签: linux linux-kernel linux-device-driver ftrace

我想打印当前进程或函数正在执行的CPU编号类似于ftrace,如下所示:

 TASK-PID   CPU#      TIMESTAMP  FUNCTION
    | |       |          |         |
<idle>-0     [002]  23636.756054: ttwu_do_activate.constprop.89 <-try_to_wake_up
<idle>-0     [002]  23636.756054: activate_task <-ttwu_do_activate.constprop.89
<idle>-0     [002]  23636.756055: enqueue_task <-activate_task

我如何获得这个价值?我认为它有start_kernel函数的某些功能。我们可以打印它的价值吗?我正在使用linux-4.1内核。

1 个答案:

答案 0 :(得分:3)

要在内核中打印当前cpu,可以使用task_struct的{​​{3}}字段。请注意,应启用内核配置CONFIG_THREAD_INFO_IN_TASK。这适用于4.9内核。

printk("My current cpu is %d\n", current->cpu);
如果cpu字段不可用,也可以使用

smp_processor_id()