进程调度API之task_cpu

来源:互联网 发布:政府网站改版优化文案 编辑:程序博客网 时间:2024/06/08 17:41
static inline unsigned int task_cpu(const struct task_struct *p)用于得到当前task 运行在哪个cpu上其使用的例程如下:static int find_later_rq(struct task_struct *task){struct sched_domain *sd;struct cpumask *later_mask = this_cpu_cpumask_var_ptr(local_cpu_mask_dl);int this_cpu = smp_processor_id();int best_cpu, cpu = task_cpu(task);}其源码如下:static inline unsigned int task_cpu(const struct task_struct *p){#ifdef CONFIG_THREAD_INFO_IN_TASKreturn p->cpu;#elsereturn task_thread_info(p)->cpu;#endif}可以如果定义CONFIG_THREAD_INFO_IN_TASK 的话,在task_struct 这个结构体中就保存了当前task 运行在哪个cpu上目前我测试kernel是定义了CONFIG_THREAD_INFO_IN_TASK的linux-7gzn:~ # zcat /proc/config.gz | grep CONFIG_THREAD_INFO_IN_TASKCONFIG_THREAD_INFO_IN_TASK=y