1 Linux中断处理的三级跳
异常处理Handler执行完毕kernel_enter完成中断处理的外围工作,进入到硬中断处理程序。
首先我们从前面提到过的网卡接收到数据帧的一个call stack开始对中断处理有个感性的认识。
[ 68.876836] Call trace:
[ 68.879277] dump_backtrace+0x0/0x120
[ 68.882926] show_stack+0x14/0x20
[ 68.886230] dump_stack+0xb4/0xf4
[ 68.889534] mtk_handle_irq_rx+0x38/0x88
[ 68.893445] __handle_irq_event_percpu+0x54/0x150 ->@kernel/irq/handle.c
[ 68.898134] handle_irq_event_percpu+0x1c/0x68
[ 68.902563] handle_irq_event+0x40/0xb0@kernel/irq/handle.c
[ 68.906387] handle_fasteoi_irq+0xdc/0x190
[ 68.910470] generic_handle_irq+0x24/0x38
[ 68.914465] __handle_domain_irq+0x60/0xb8
[ 68.918548] gic_handle_irq+0xc0/0x158
[ 68.922284] el1_irq+0xb8/0x140