本文转载自微信公众号「人人都是极客」,作者布道师Peter。转载本文请联系人人都是极客公众号。
中断处理流程
arm64的异常向量表vectors中设置了各种异常的入口,目前有效的异常入口有两个同步异常el0_sync,el1_sync和两个异步异常el0_irq,el1_irq,其他异常入口暂时都invalid。中断属于异步异常,所以本文重点关注el0_irq和el1_irq。
通过上图,我们可以看出中断的处理分为三个部分,保护现场,中断处理,恢复现场。其中el0_irq和el1_irq的具体实现略有不同,但处理流程大致是相同的。接下来我们以el0_irq为例对上面三个步骤进行梳理。
保护现场
将CPU寄存器按照pt_regs结构体的定义将第一现场保存到栈上。
中断处理
如上图,大概主要有如下三个动作:
在处理之前我们先看下什么叫做中断栈。
中断栈
中断栈用来保存中断的上下文。
中断栈的创建:内核启动时中会去为每个cpu创建一个per cpu的中断栈:start_kernel->init_IRQ->init_irq_stacks
中断栈的使用:中断发生和退出的时候调用irq_stack_entry和irq_stack_exit来进入和退出中断栈。
恢复现场
主要分三步:
明天就要返岗上班了,电脑作为我们日常工作和生活娱乐不可或缺的工具,总要隔个...
2020年 7月16日,北京 今日,后疫情时代的未来办公新变局云端对话正式举行。此次...
文转载自微信公众号「菜鸟飞呀飞」,作者刘进坤 。转载本文请联系菜鸟飞呀飞公众...
LG gram系列笔记本在笔记本圈子里面一直都是一个独特的存在,挑战更轻的重量更长...
随着618购物狂欢进入最后的倒计时阶段,各大商家纷纷开启年中大促序幕。作为一家...
6月8日,视源股份旗下品牌MAXHUB发布V5智能会议平板系列新品,作为会议平板行业...
斑马技术新一代创新型产品助力零售商将生产力和顾客服务提升至新的水平 作为致力...
图片来自 Pexels 安全部长迅速召集大家商讨应对之策。 诸位,突发情况,CPU 占用...
随着电竞行业的爆发式增长,电脑硬件迎来了非常高的热度,这也增加了硬件更换的...
这个假期还真是短暂啊,一不留神就又到了开工的日子,不过经过了几天假期的休息...