免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1833 | 回复: 6
打印 上一主题 下一主题

在smp内核中,如何使某个进程在中断前后运行于同一个cpu上 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-17 17:33 |只看该作者 |倒序浏览
需要写一个驱动程序,保证一个进程在中断前后运行于同一个cpu上,不知道如何实现?

论坛徽章:
0
2 [报告]
发表于 2006-10-17 18:41 |只看该作者
进程在哪个CPU上运行有分别吗?

论坛徽章:
0
3 [报告]
发表于 2006-10-18 10:39 |只看该作者
task_struct内有个bitmap,叫cpu_allowed,设置一下它应该就可以了吧?

论坛徽章:
0
4 [报告]
发表于 2006-10-18 11:09 |只看该作者
一个进程比如正在CPU0运行,一个中断来了,分配给了CPU0处理,中断返回后进程是不是还在CPU0运行?

论坛徽章:
0
5 [报告]
发表于 2006-10-18 11:15 |只看该作者

回复 4楼 思一克 的帖子

说不定中断返回时不再执行这个进程, 反倒schedule()了一把, 然后这个进程被migrate到其他cpu上了

我写了一段程序, 就怕有错:


  1. struct task_struct * p = NULL;
  2. cpumask_t my_mask;

  3. p = find_task_by_pid(pid);
  4. if ( p != NULL ) {
  5.         __u32 cpu = task_thread_info(p)->cpu;
  6.         __cpus_setall( &my_mask, NR_CPUS );
  7.         cpu_set( cpu, &my_mask );
  8.         p->cpu_allowed = my_mask;
  9. }
复制代码

论坛徽章:
0
6 [报告]
发表于 2006-10-19 09:49 |只看该作者
TO ALBCAMUS,

《深入理解LINUX内核》的书,我看过一个原版的,有中文译本吗?

论坛徽章:
0
7 [报告]
发表于 2006-10-19 10:08 |只看该作者

回复 6楼 思一克 的帖子

2nd有中译本, 3rd暂时还没有,据说正在翻译。  2nd翻译质量还是不错的,误译之处基本都是因译者是学术界的,工程上比较欠缺,没有因态度导致的误译。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP