Page 1 of 1

APIC Trouble with SMP

Posted: Sat Jul 05, 2014 7:42 am
by MollenOS
Hey,

So I have been dealing with this issue the last couple of days, and despite searching old threads of information I can't seem to get it working

In bochs, I can get "equally" amount of interrupts on all cores using low priority, however in QEmu and VirtualBox none of the AP's get ANY interrupts at all.

The apic setup is:

Destination Format: 0xF0000000
Logical Destination: 0xFF000000
Interrupts are configured as: 0xFF000000000009VV

Initial Task Priority for all cores are 0 (varying the initial priority didn't change anything)

Interrupts are the Local Apic Timer which has the priority of 0xF0, and the RTC with priority of 0xEC
As stated, in QEmu and VirtualBox only the BSP gets interrupts, while in Bochs cores share them, have I set anything wrong here?

The Task Priority varies between 0 - 0x3E depending on the thread priority

Re: APIC Trouble with SMP

Posted: Sat Jul 05, 2014 11:06 am
by Brendan
Hi,
MollenOS wrote:Interrupts are the Local Apic Timer which has the priority of 0xF0, and the RTC with priority of 0xEC
As stated, in QEmu and VirtualBox only the BSP gets interrupts, while in Bochs cores share them, have I set anything wrong here?
For the local APIC timer, using "lower priority delivery" (where the interrupt is sent to whichever CPU happens to be running at the lowest priority at the time) makes no sense at all because the each CPU's local APIC can only send interrupts to its CPU.

For the other problems; make sure you've enabled each CPU's local APIC in each CPU's "spurious interrupt vector register".


Cheers,

Brendan

Re: APIC Trouble with SMP

Posted: Sat Jul 05, 2014 12:22 pm
by MollenOS
Brendan, thanks, that explains a lot :-)