Re: Race condition in interrupt handling

Haohui Mai <[email protected]> Wed, 14 Apr 2010 11:41:53 -0500
Newsgroups gmane.comp.micro-kernel.l4.l4ka.general
Message-ID <[email protected]>
Then it seems that IRQ migration is always turned on when SMP is enabled.

Then the assertion in api/v4/interrupt.cc seems problematic:

     // we should only receive irqs if the thread is halted
     ASSERT(irq_tcb->get_state().is_halted());

It seems it's not always the case when the machine have multiple CPUs.

Haohui


On 04/14/2010 04:15 AM, Jan Stoess wrote:
> On Tue, Apr 13, 2010 at 09:03:30AM -0500, Mai, Haohui wrote:
>    
>> But I do agree with you that the spinlock might lead to a deadlock
>> under such the situation I described before.
>>
>> However, I'm unable to observe it during the debugging.
>>
>> Just to make sure, interrupt migration is disabled by default unless
>> I turn on "poll other cpu's queue on idle", right?
>>
>>      
> No, idle polling does not have anything to do with IRQ migration. Latter is always avaisable and triggered implicitly when migrating IRQ threads.
>
> -Jan
>
>