2

我正在编写一个内核模块,它试图获取给定 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 上获取当前任务的方法是什么?谢谢你。

4

1 回答 1

0

你可以这样做:

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

这可以得到“per_cpu##current_task”,它代表指定cpu中的cur_task。这可能会满足您的要求。

于 2017-10-12T09:37:24.550 回答