2.4 EL0_IRQ 中断改造之返回
2.4.1 返回用户空间概述
当el0_irq发生时,被中断的用户态任务有三种类型:
| 任务类型 | 说明 | |
|---|---|---|
| 1 | tsk_linux_root | Linux进程,运行在root域。 |
| 2 | tsk_xenomai_root | Xenomai进程,已经迁移到root域即作为Linux进程进行调度 |
| 3 | tsk_xenomai_head | Xenomai进程,在head域运行。 |
综合中断发生的场景和任务类型,可能出现的组合如下表。
| 场景/任务类型 | irq_handler返回值 | tsk_linux_root | tsk_xenomai_root | tsk_xenomai_head |
|---|---|---|---|---|
| 场景1:位于root域, 虚拟中断打开 | 1 | 可能 | 可能 | 不可能 |
| 场景2:位于root域, 虚拟中断屏蔽 | 0 | 可能 | 可能 | 不可能 |
| 场景3:位于head域 | 0 | 不可能 | 不可能 | 可能 |
接下来按照场景进行分析。
2.4.2 场景1:位于root域且虚拟中断打开
因为位于root域,此时用户态任务只可能是tsk_linux_root和tsk_xenomai_root两种类型。

最低0.47元/天 解锁文章
1418

被折叠的 条评论
为什么被折叠?



