假设有一个端口映射的I/O设备,它在IRQ线路上任意生成中断。设备的挂起中断可以通过对特定寄存器的单个outb调用来清除。
此外,假设下面的中断处理程序通过request_irq分配给相关的IRQ行
irqreturn_t handler(int irq, void *data)
{
/* clear pending IRQ on device */
outb(0, CLEAR_IRQ_REGISTER_ADDR);
/* device may generate another IRQ at this point,
* but
我想知道在Linux中,x86_64可以使用哪些不同类型的IPI。特别是,我想找出IPI中断的不同中断处理程序。
在理解Linux (丹尼尔·P·博维的第三版)中,Marco 列出了三种IPI:
CALL_FUNCTION_VECTOR
RESCHEDULE_VECTOR
INVALIDATE_TLB_VECTOR
但是,在最新的内核中,我在arch/x86/include/asm/entry_arch.h中找到了以下评论。
* This file is designed to contain the BUILD_INTERRUPT specifications for
* all of
我想了解当处理器产生内核代码的机会并执行维护和调节工作时的中断机制。我所知道的是,计时器中断为操作系统提供了这个功能。
1)我想知道什么是相关的中断号,以及在Linux情况下调用的第一个OS例程是什么。如果我知道这个.的文件和函数名,那就太好了。
对于Linux,scheduler_tick是用来调度新任务的内核函数,但是未知的是谁调用了scheduler_tick及其父函数?
2)在Linux中还有其他的中断调用scheduler_tick吗?如果有的话,他们是哪一个?
/*
This function gets called by the timer code, with HZ f