进程调度API之task_cpu
2017-12-22 09:32
1166 查看
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_TASK return p->cpu; #else return 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_TASK CONFIG_THREAD_INFO_IN_TASK=y
相关文章推荐
- 进程调度API之task_nice
- 进程与线程之间的关系和区别 及 CPU调度
- CPU调度(进程调度)策略
- 进程管理API之get_pid_task
- CPU Scheduling进程调度算法
- 进程调度API之autoremove_wake_function
- Linux进程的管理与调度(一)--- Linux进程描述符task_struct结构体详解
- cpu进程调度---RT Throttling【转】
- 进程调度算法与task_struct结构体
- 进程调度API之__wake_up_sync
- 进程调度API之add_wait_queue_exclusive
- 进程调度API之prepare_to_wait/prepare_to_wait_exclusive
- 进程调度API之complete
- 进程调度API之init_waitqueue_entry
- 进程调度API之yield
- Linux下0号进程的前世(init_task进程)今生(idle进程)----Linux进程的管理与调度(五)
- Linux进程的管理与调度(五) -- Linux下0号进程的前世(init_task进程)今生(idle进程)
- 进程管理API之task_active_pid_ns
- 进程调度API之complete_all
- 进程调度API之completion_done