打印 CPU 类似于 ftrace 的数字
Printing CPU number similar to 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
内核。
要在内核中打印当前cpu,可以使用task_struct
的cpu字段。请注意,应启用内核配置 CONFIG_THREAD_INFO_IN_TASK
。这适用于 4.9 内核。
printk("My current cpu is %d\n", current->cpu);
如果 cpu 字段不可用,也可以使用 smp_processor_id()
。
我想打印 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
内核。
要在内核中打印当前cpu,可以使用task_struct
的cpu字段。请注意,应启用内核配置 CONFIG_THREAD_INFO_IN_TASK
。这适用于 4.9 内核。
printk("My current cpu is %d\n", current->cpu);
如果 cpu 字段不可用,也可以使用 smp_processor_id()
。