注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

widebright的个人空间

// 编程和生活

 
 
 

日志

 
 

CPU hotplug Support in Linux(tm) Kernel  

2009-06-03 22:32:33|  分类: linux相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

详见内核文档 LXR linux/Documentation/cpu-hotplug.txt

http://lxr.linux.no/linux+v2.6.29/Documentation/cpu-hotplug.txt

可以在多核cpu上,停掉某个cpu(__cpu_disable()   、__cpu_die()   、__cpu_up()   ),注册cpu的online 、frozen 通知(register_cpu_notifier),让指定的函数运行在特定的cpu上面(set_cpus_allowed(),get_cpu()、put_cpu();),遍历所有cpu (

100        #include <linux/cpumask.h>
101
102        for_each_possible_cpu     - Iterate over cpu_possible_map
103        for_each_online_cpu       - Iterate over cpu_online_map
104        for_each_present_cpu      - Iterate over cpu_present_map
105        for_each_cpu_mask(x,mask) - Iterate over some random collection of cpu mask.
106
107        #include <linux/cpu.h>
108        get_online_cpus() and put_online_cpus():

禁止内核抢占用 preempt_disable() 和 preempt_enable()函数。调用preempt_disable后,可以避免cpu被其他内核进程强占,也就是确保自己的代码不会被挂起一直运行下去。禁止抢占之后不能调用任何会导致自己这个进程sleep 或者 schedule 的操作。 preempt_disable()会一直起作用直到stop_machine_run() 关闭这个cpu为止

等等。

停掉某个cpu #echo 0 > /sys/devices/system/cpu/cpuX/online
让后可以 #cat /proc/interrupts 查看是不是中断都不分配在那个cpu上了。

#cat /sys/devices/system/cpu/cpuX/online 可以看到当前的状态

  评论这张
 
阅读(652)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017