linux – 如何获得无内核的工作? nohz_full,rcu_nocbs,isolcpus还有什么?
发布时间:2020-05-23 06:15:26 所属栏目:Linux 来源:互联网
导读:我刚安装了新的3.11内核的Ubuntu 13.10.而在3.10中,它具有无休止的功能,我可以运行一个进程而不被本地定时器中断,而不是像以前一样.我跟着这个链接 http://www.breakage.org/2013/11/nohz_fullgodmode/ 我计划在cpu 3上运行我的应用程序,所以我在grub中设置以
|
我刚安装了新的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确实比其他cpus少得多. 我也跑了: # for i in `pgrep rcu` ; do taskset -pc 0 $i ; done 但是当我开始运行我的应用程序时,本地定时器中断的计数跳了. int main() {
while (true) {
}
}
那我还缺少什么?为什么当我运行某些东西时,时间中断返回? 以下是当我没有运行应用程序时/ 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
---------------------------------------------------------------------------------------- ------------------
解决方法好的,我发现我需要构建自己的内核来打开配置.(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
