gpt4 book ai didi

linux - 如何让 tickless 内核工作? nohz_full、rcu_nocbs、isolcpus 还有什么?

转载 作者:IT王子 更新时间:2023-10-28 23:55:34 26 4
gpt4 key购买 nike

我刚刚安装了带有新 3.11 内核的 Ubuntu 13.10。在 3.10 中,它具有无滴答功能,我可以在不被本地计时器中断的情况下运行进程,不像以前那样频繁。我点击了这个链接 http://www.breakage.org/2013/11/nohz_fullgodmode/

我计划在 cpu 3 上运行我的应用程序,所以我在我的 grub 中设置了以下内容:

isolcpus=3 nohz_full=3 rcu_nocbs=3

重启后,cpu 3的本地定时器中断似乎确实比其他cpu少了很多。

我也跑了:

# for i in `pgrep rcu` ; do taskset -pc 0 $i ; done

但是当我开始运行我的应用程序时,本地定时器中断的计数跳了起来。我的应用程序除了无限循环外什么都不做。

int main() {
while (true) {
}
}

那我错过了什么?为什么当我运行某些东西时,时间中断又回来了?我认为 nohz_full 意味着当只有一个进程在运行时,它将停止中断。

以下是/proc/sched_debug 的输出,当我没有运行应用程序并且显然该 cpu 上没有其他进程时。那我错过了什么?

cpu#3, 2492.071 MHz
.nr_running : 0
.load : 0
.nr_switches : 45818
.nr_load_updates : 11165
.nr_uninterruptible : -1
.next_balance : 4295.674289
.curr->pid : 0
.clock : 3127610.519188
.cpu_load[0] : 0
.cpu_load[1] : 0
.cpu_load[2] : 0
.cpu_load[3] : 0
.cpu_load[4] : 0
.yld_count : 0
.sched_count : 47377
.sched_goidle : 3956
.avg_idle : 1000000
.ttwu_count : 29329
.ttwu_local : 26078

cfs_rq[3]:/
.exec_clock : 15750.800052
.MIN_vruntime : 0.000001
.min_vruntime : 15699.782432
.max_vruntime : 0.000001
.spread : 0.000000
.spread0 : -247950.011716
.nr_spread_over : 0
.nr_running : 0
.load : 0
.runnable_load_avg : 0
.blocked_load_avg : 0
.tg_load_contrib : 0
.tg_runnable_contrib : 0
.tg_load_avg : 602
.tg->runnable_avg : 592
.avg->runnable_avg_sum : 0
.avg->runnable_avg_period : 47077

rt_rq[3]:/
.rt_nr_running : 0
.rt_throttled : 0
.rt_time : 0.000000
.rt_runtime : 950.000000

runnable tasks:
task PID tree-key switches prio exec-runtime sum- exec sum-sleep
---------------------------------------------------------------------------------------- ------------------

最佳答案

好的,我发现我需要构建自己的内核才能打开配置。

关于linux - 如何让 tickless 内核工作? nohz_full、rcu_nocbs、isolcpus 还有什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20133523/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com