Chinaunix首页 | 论坛 | 博客
  • 博客访问: 28722
  • 博文数量: 2
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 134
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-14 15:41
个人简介

喜欢研究linux内核源码

文章分类
文章存档

2014年(2)

我的朋友

发布时间:2014-04-08 22:23:56

linux将创建内核线程的工作交给了一个专门的内核线程kthreadd来完成,该线程会检查全局链表kthread_create_list,如果为NULL,就会调schedule()放弃cpu进入睡眠状态,否则就取下该链表中的一项创建对应的线程。本文就从khtreadd内核线程的创建开始来展示一下内核线程的创建过程。......【阅读全文】

阅读(5799) | 评论(0) | 转发(4)

发布时间:2014-04-08 21:54:37

根据 内核调用链提示的信息,走查代码,发现缺页异常时,获取mmap_sem信号量的时候,没有获取成功,然后主动调用schedule放弃cpu。也就是说app中的多数任务在缺页异常时,获取mmap_sem信号量失败,导致大多数任务都被阻塞在mmap_sem信号量上。从代码上看是请求mmap_sem信号量失败,但是什么情景下会出现这种现象,为什么会出现这种现象暂时不清楚。跟同事讨论,觉得应该是个信号量死锁问题。
如果是信号量死锁问题,那么当前系统必须满足三个条件:
1)高优先级任务抢占中优先级任务,并申请mmap_semp信号量
2)存在中优先级的死循环任务,将低优先级级任务压制,导致低优先级任务得不到调度
3)存在低优先级级任务占用mmap_semp信号量......【阅读全文】

阅读(5709) | 评论(2) | 转发(2)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册