task_rq(p)

task_rq(p)  获取进程p所在的runqueue的首地址
--------------------------------------------
#define task_rq(p)      cpu_rq(task_cpu(p))
#define cpu_rq(cpu)     (&per_cpu(runqueues, (cpu)))


task_cpu(p) 获取进程p所在CPU的编号
-------------------------------------------
static inline unsigned int task_cpu(const struct task_struct *p)
{
    return p->thread_info->cpu;
}

cpu_rq(cpu) 获取编号为cpu的处理器的runqueue的首地址
--------------------------------------------
#define per_cpu(var, cpu) (*RELOC_HIDE(&per_cpu__##var, __per_cpu_offset[cpu]))
#define RELOC_HIDE(ptr, off)                    /
  ({ unsigned long __ptr;                   /
    __asm__ ("" : "=g"(__ptr) : "0"(ptr));      /
    (typeof(ptr)) (__ptr + (off)); })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值