4

我想打印当前进程或函数正在执行的 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内核。

4

1 回答 1

4

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

printk("My current cpu is %d\n", current->cpu);

smp_processor_id()如果 cpu 字段不可用,也可以使用。

于 2017-01-26T10:09:42.817 回答