原帖由 drizztzou 于 2006-3-13 16:58 发表
我正在看LKD2,里面有这么一句:works queues are the only bottom-half mechanisms that run in process context,但是如果softirq在ksoftirqd中运行的话,不是也是在进程上下文中吗?
请高手指点一下
原帖由 drizztzou 于 2006-3-13 17:16 发表
那也就是说interrupt context还分为两种上下文状态:软中断和硬中断
我理解的对吗?
原帖由 richardhesidu 于 2006-3-13 17:56 发表
ksoftirqd是内核线程,不属于进程上下文的范畴。
原帖由 albcamus 于 2006-3-14 10:01 发表
ksoftirqd也算是process context, 可以睡眠。 可是除非softirq重复触发, 否则在interrupt conetxt中就处理完了, 不用唤起ksoftirqd来处理。
所以尽管softirq有可能在process context执行, 我们还是要保证 ...
原帖由 albcamus 于 2006-3-14 10:01 发表
ksoftirqd也算是process context, 可以睡眠。 可是除非softirq重复触发, 否则在interrupt conetxt中就处理完了, 不用唤起ksoftirqd来处理。
所以尽管softirq有可能在process context执行, 我们还是要保证 ...
原帖由 albcamus 于 2006-3-14 10:01 发表
ksoftirqd也算是process context, 可以睡眠。 可是除非softirq重复触发, 否则在interrupt conetxt中就处理完了, 不用唤起ksoftirqd来处理。
所以尽管softirq有可能在process context执行, 我们还是要保证 ...
原帖由 xiaozhaoz 于 2006-3-14 10:32 发表
在一些CPU中, softirq和 interrrupt 用的不是一个context. 更确切的说,当内核配置使用4K kernel stack的时候, softirq和interrupt不能使用同一个context. 这里的context指的是 thread_info和stack. task_s ...
原帖由 xiaozhaoz 于 2006-3-14 10:32 发表
在一些CPU中, softirq和 interrrupt 用的不是一个context. 更确切的说,当内核配置使用4K kernel stack的时候, softirq和interrupt不能使用同一个context. 这里的context指的是 thread_info和stack. task_s ...
原帖由 drizztzou 于 2006-3-14 10:50 发表
使用4k stack的时候,是不是说interrupt handler被分配了一个属于自己的4k stack,而softirq使用抢占的进程的stack?
原帖由 albcamus 于 2006-3-14 10:41 发表
>当内核配置使用4K kernel stack的时候, softirq和interrupt不能使用同一个context
这个我看过,呵呵。 当打开这个选项, irq和softirq都有了自己的独立的栈。
>所以ksoftirqd执行这些函数的时候,会在当 ...
原帖由 xiaozhaoz 于 2006-3-14 11:14 发表
我觉得, 引入Ksoftirqd不是让softirq可以sleep, 而是让softirq不要占用太多CPU, 用ksoftirqd后, 处理softirq内容的部分工作由ksoftirqd完成,ksoftirqd是一个prority = 120的普通任务, 在某些点可以被用户空间 ...
原帖由 albcamus 于 2006-3-14 10:01 发表
ksoftirqd也算是process context, 可以睡眠。 可是除非softirq重复触发, 否则在interrupt conetxt中就处理完了, 不用唤起ksoftirqd来处理。
所以尽管softirq有可能在process context执行, 我们还是要保证 ...
原帖由 richardhesidu 于 2006-3-14 18:58 发表
我觉得这是一个概念的问题吧。我的理解是这样的:上下文是相对于进程和内核线程的概念。严格地说,某个进程或是内核线程都不是属于context的。context特指进程和内核线程以外的内核代码。比如system call的那 ...
原帖由 drizztzou 于 2006-3-15 09:04 发表
和我的理解很不一样,上下文应该是进程或者内核线程的一个运行环境,包括hardware context、thread info、stack等,所谓进程在某种context中运行,应该是对这个进程运行环境的一种描述
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |