linux – 在ISR安排后,tasklet运行的时间是什么时候?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 在ISR安排后,tasklet运行的时间是什么时候?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1263字,纯文字阅读大概需要2分钟。
内容图文
![linux – 在ISR安排后,tasklet运行的时间是什么时候?](/upload/InfoBanner/zyjiaocheng/967/8debff4dd2e84fd08f07b0d6d489ae2c.jpg)
我写了我的ISR,我的tasklet立即运行.但是,我看到人们说tasklet只有在得到CPU注意时才会运行.这是一个非常通用的术语CPU注意,所以我背诵那些响应者.我的意思是cpu关注到tasklet执行的那个时刻以及CPU的状态会发生什么?
其次,如果假设我继续获得硬中断,那么tasklet何时会有机会运行? Tasklet可能无法运行吗?内核如何处理这些事情?
解决方法:
TL; DR:Tasklet由调度程序处理的ksoftirq线程运行.
Tasklet只是softirq的一种形式(它由TASKLET_SOFTIRQ优先级处理),因此运行tasklet时的规则适用于它们.根据Robert Love的书“Linux Kernel”,他们在这里
发展“:
- In the return from hardware interrupt code path
- In the ksoftirq kernel thread
- In any code that explicitly checks for and executes pending softirqs, such as the networking subsystem
如果threadirqs = true(内核引导参数)是默认值,则case(1)似乎不起作用.
UPD:关于与调度程序的ksoftirq关系的一些注释.
这似乎发生了:
>在hardirq处理程序中,您唤醒ksoftirq(由于tasklet_schedule())
>因此wake_up_process()检查ksoftirq是否可以抢占当前线程
>如果(2)为真,则设置TIF_NEED_RESCHED标志
>从hardirq返回(ret_from_intr – 在x86中),检查TIF_NEED_RESCHED标志
>如果(4)为真,则调用schedule()尝试选择要执行的下一个线程.
ksoftirq很有可能被认为是(2-3)中的抢先候选人,它将在(5)中被选中,但如果有竞争对手,ksoftirq必须等到下一个计划()周期 – 当前线程投降(即睡觉),时钟滴答发生,系统调用或新中断.
内容总结
以上是互联网集市为您收集整理的linux – 在ISR安排后,tasklet运行的时间是什么时候?全部内容,希望文章能够帮你解决linux – 在ISR安排后,tasklet运行的时间是什么时候?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。