从一个问题看isolate出来的cpu的rt_rq的root_domain

现象描述:

    在一个8核环境中,内核在启动时传入内核启动参数isolcpus=4,5,6,7  即将cpu4 cpu5 cpu6 cpu7置为isolated核。系统启动后cpu4 cpu5 cpu6 cpu7通过cpu亲和性各自运行了一个死循环的实时任务,从top看出4,5,6,7这四个核的cpu利用率只能够跑到95%;

    然而将内核启动参数改为isolcpus=3,4,5,6,7,内核启动后也在cpu4 cpu5 cpu6 cpu7通过cpu亲和性各自运行了一个死循环的实时任务,但是这一次从top看到4 5 6 7四个核看到的cpu利用率却是100%。

 

问题原因:

  1) 内核默认的实时带宽为95%。可通过/proc/sys/kernel/sched_rt_runtime_us和/proc/sys/kernel/sched_rt_period_us看到他们的值分别为950000和1000000。

   2) 另一方面,虽然cpu4 cpu5 cpu6 cpu7这些核是isolate出来的,但是这几个cpu对应的rt_rq->rd,即root_domain->span是0xF0,也就是cpu4,cpu5,cpu6,cpu7的掩码。

    这也就说明了为何isolate为5个核、跑4个死循环实时任务时能够达到100%了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值