- 主题:[求助] 软中断中为什么不能休眠
软中断运行在内核线程中,既然是线程中,那么就应当可以被调度。
休眠了应当还是可以被调度回来。
各种书上写的都是软中断不可休眠,但是也没写为什么不能休眠。
请求大神给予指点和回答
--
FROM 101.229.205.*
之所以放在内核线程中, 就是为了允许它休眠吧
之前只有上半部, 下半部, 倒是不能休眠的
【 在 shhxu 的大作中提到: 】
: 软中断运行在内核线程中,既然是线程中,那么就应当可以被调度。
: 休眠了应当还是可以被调度回来。
: 各种书上写的都是软中断不可休眠,但是也没写为什么不能休眠。
: ...................
--
FROM 220.181.41.*
影响其它需要软中断处理事件的实时性
为了尽可能提高实时性,所以放在了中断的后,就没法休眠了
【 在 shhxu 的大作中提到: 】
:
: 软中断运行在内核线程中,既然是线程中,那么就应当可以被调度。
: 休眠了应当还是可以被调度回来。
: 各种书上写的都是软中断不可休眠,但是也没写为什么不能休眠。
: 请求大神给予指点和回答
#发自zSMTH@如有雷同 纯属巧合
--
FROM 114.254.9.*
书里强调的是只有软中断,没有硬件中断配合的情况下,不能休眠,否则休眠的进程会卡死所有进程。
所谓的被调度到其他进程,这个调度不是自然而然触发的,要么有时钟中断配合,这是个硬件中断,要么是设计成不依赖硬件中断,系统有一个大的循环在外边,负责调度干活的方法,这种就不能休眠,否则系统的调度代码都可能得不到机会运行
【 在 shhxu (shhxu) 的大作中提到: 】
: 发信人: shhxu (shhxu), 信区: KernelTech
: 标 题: [求助] 软中断中为什么不能休眠
: 发信站: 水木社区 (Mon Dec 11 23:32:27 2023), 转信
:
--
FROM 115.199.96.*
我理解此贴的软中断是指softIRQ, 一般用于网络栈,高精度定时器等重负载事务处理,这些与硬中断关系不大。
软中断可能被触发到内核线程调用,但大部分还是做为贴在硬中断处理后的延伸部分被内核做中断上下文调用,此上下文不能休眠。
【 在 StephenLee 的大作中提到: 】
:
: 书里强调的是只有软中断,没有硬件中断配合的情况下,不能休眠,否则休眠的进程会卡死所有进程。
: 所谓的被调度到其他进程,这个调度不是自然而然触发的,要么有时钟中断配合,这是个硬件中断,要么是设计成不依赖硬件中断,系统有一个大的循环在外边,负责调度干活的方法,这种就不能休眠,否则系统的调度代码都可能得不到机会运行
:
: 【 在 shhxu (shhxu) 的大作中提到: 】
#发自zSMTH@如有雷同 纯属巧合
--
FROM 123.122.163.*