junnyg 发表于 2013-04-21 20:50

本帖最后由 junnyg 于 2013-04-21 21:03 编辑

回复 1# mordorwww
内核抢占开关三个选项:
1. PREEMPT_NONE---------CONFIG_PREEMPT和CONFIG_PREEMPT_VOLUNTARY都不会设置,表示在内核态既不会被抢占,调might_resched()函数也不会主动切换
2. Low latency desktop----只配置CONFIG_PREEMPT_VOLUNTARY,might_resched()函数生效,内核态依然不会被抢占
3. PREEMPT------------------CONFIG_PREEMPT和CONFIG_PREEMPT_VOLUNTARY同时生效,在中断返回内核态时会检查TIF_NEEDRESCHED标志,如果需要调度,则会调schedule,内核态被抢占

mordorwww 发表于 2013-04-22 07:30

junnyg 发表于 2013-04-21 20:50 static/image/common/back.gif
回复 1# mordorwww
内核抢占开关三个选项:
1. PREEMPT_NONE---------CONFIG_PREEMPT和CONFIG_PREEMPT_V ...




和我想的挺像

只是might_resched是干嘛的,内核中已经有con_schedule了

xia45399 发表于 2016-03-17 12:35

mordorwww 发表于 2013-03-29 14:28 static/image/common/back.gif
照你这个说法,CONFIG_PREEMPT_VOLUNTARY 仅仅只是 内核代码主动调用schedule切出去,不会有内核代码执 ...

我不能给你发消息,只能从这回复你了,我想测一下内核的抢占时间,在preempt_schedule()函数里加了变量,确实想你说的一直没被执行,有什么办法测试吗
页: 1 [2]
查看完整版本: CONFIG_PREEMPT和CONFIG_PREEMPT_VOLUNTARY有什么区别