当前位置:首页>Linux>Linux 中断为什么必须“上半部快进快出”:

Linux 中断为什么必须“上半部快进快出”:

  • 2026-09-02 15:48:17
Linux 中断为什么必须“上半部快进快出”:

Linux 中断为什么必须“上半部快进快出”:

Linux 中断处理的核心就一条:上半部必须快进快出。

硬中断一进来,CPU 就得停下手里的活。它干得越久,系统就越卡。所以硬件状态得立刻确认,剩下的活赶紧丢给下半部。

硬中断只干最急的:查查是不是自己设备的事,清掉中断防轰炸,把数据搬出来。这地方绝对不能睡觉,拿锁也得小心,千万别碰可能阻塞的操作。

需要睡觉的活交给线程:比如去 I2C 上读数据、用互斥锁同步。这种活适合用线程化中断,能睡也能慢慢干。要是纯为了高吞吐,还得靠软中断批量处理。

实在耗时的活丢给工作队列:比如设备恢复、重新初始化。这些活不着急,交给工作队列慢慢做就行。

干活前先想好怎么加锁:硬中断和进程共享数据时,加锁得防死锁。而且别光用一个布尔变量当标志,多个中断挤一块容易丢消息。

最后提醒一句:卸载驱动或休眠前,一定要等所有底半部彻底停稳。不然内存都释放了,底半部还在跑,系统直接崩给你看。

湖南,3小时前,

最新文章

随机文章