x86 PIC,QEMU在所有CPU上引发中断是否正确?

我最近不得不解决x86 PIC的专有操作系统问题,其中操作系统预期定时器仅在CPU0上中断.我启用了IO-APIC以解决这个问题并进行了CPU转向,因此中断仅发送到CPU0.问题解决了.

我被告知我们的硬件坏了做这样的事情.即,当仅使用PIC时,在所有CPU上引发定时器中断.有问题的“硬件”是QEMU / KVM.

QEMU / KVM有问题吗?操作系统是否无效假设?

我怀疑QEMU / KVM在这方面是完全正确的,操作系统应该能够处理CPU上的定时器中断!= 0 …

最佳答案 我认为这是真的,PIC通常只向CPU 0提供中断,包括定时器中断.大多数操作系统不会尝试使用PIC的SMP,因为CPU1-无法获得或接收任何中断(包括某种用于进程调度的定时器中断);例如,具有“noapic”的
Linux禁用除CPU0之外的所有内容.我认为这个操作系统在qemu遇到了一个奇怪的角落.

点赞