首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SCHED_SOFTIRQ在linux中的功能是什么?

SCHED_SOFTIRQ在linux中的功能是什么?
EN

Unix & Linux用户
提问于 2015-01-28 13:38:13
回答 1查看 2.6K关注 0票数 3

是谁提出了这个软性?每次滴答(基于计时器中断)时,是否都会引发这种情况?

这会使内核释放出一个可运行的进程吗?如果是,低优先级软run (HR_TIMER,RCU_SOFTIRQ)的处理程序如何运行,因为执行现在是进程上下文(在schedule ()之后)?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2015-01-28 13:45:01

根据内核文档:

软件中断上下文:每当系统调用即将返回用户空间或硬件中断处理程序退出时,都会运行任何被标记为挂起(通常是硬件中断)的“软件中断”(内核/softirq.c)。很多真正的中断处理工作都是在这里完成的。在过渡到SMP的早期,只有“底部半部”(BHs),它没有利用多个CPU。在我们从由火柴棒和鼻涕制成的卷接电脑转换后不久,我们就放弃了这个限制,转而使用“软电脑”。H列出了不同的软件。一个非常重要的softirq是timer softirq (include/linux/timer.h):您可以注册它,让它在给定的时间内为您调用函数。Softirqs通常是一个棘手的问题,因为相同的softirq将在多个CPU上同时运行。因此,更常使用的是tasklet (include/linux/intert.h):它们是动态注册的(意味着您可以拥有任意数量的线程),并且它们还保证任何线程在任何时候都只能在一个CPU上运行,尽管不同的线程可以同时运行。警告说,“tasklet”这个名字具有误导性:它们与“任务”无关,更可能与当时的一些坏伏特加有关-- Alexey。您可以使用in_softirq()宏(包括/linux/interintert.h)来判断您所在的是一个软线程(或tasklet)。提醒注意,如果持有bh锁(见下文),这将返回一个假阳性。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/181569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档