如何在SMP linux中获取给定cpu的当前任务?

时间:2012-07-24 16:25:06

标签: linux linux-kernel smp

我正在编写一个内核模块,它试图获取给定cpu的当前任务,例如,

for_each_possible_cpu(cpu)
{
     p = curr_task(cpu);
     printk("current task on cpu %d is %d\n", cpu, p->pid);
}

在我们的内核模块中,我们只能使用导出的函数符号,或者我们可以从模块中的系统映射硬编码内核函数地址然后使用它。

现在我只找到了IA64的curr_task函数,在X86_32的给定cpu上获取当前任务的方法是什么?谢谢。

1 个答案:

答案 0 :(得分:0)

You can do like:

struct task_struct *task;
task=per_cpu(current_task, cpu_id);

This one could get the “per_cpu##current_task” which represent the cur_task in specified cpu. This may fulfill your requirement.