On 09/17/2012 08:12 PM, Jan Kiszka wrote:

> On 2012-09-17 20:08, Gilles Chanteperdrix wrote:
>> On 09/17/2012 08:05 PM, Jan Kiszka wrote:
>>
>>> On 2012-09-17 19:46, Gilles Chanteperdrix wrote:
>>>> ipipe_end is a nop when called from primary domain, yes, but this is not
>>>> very different from edge irqs. Also, fasteoi become a bit like MSI: in
>>>> the same way as we can not mask MSI from primary domain, we should not
>>>> mask IO-APIC fasteoi irqs, because the cost is too prohibitive. If we
>>>> can live with MSI without masking them in primary mode, I guess we can
>>>> do the same with fasteoi irqs.
>>>
>>> MSIs are edge triggered, fasteois are still level-based. They require
>>> masking at the point you defer them - what we do and what Linux may even
>>> extend beyond that. If you mask them by raising the task priority, you
>>> have to keep it raised until Linux finally handled the IRQ.
>>
>>
>> Yes.
>>
>>> Or you
>>> decide to mask it at IO-APIC level again.
>>
>>
>> We do not want that.
>>
>>> If you keep the TPR raised,
>>> you will block more than what Linux wants to block.
>>
>>
>> The point is that if the TPR keeps raised, it means that primary domain
>> has preempted Linux, so, we want it to keep that way. Otherwise the TPR
>> gets lowered when Linux has handled the interrupt.
>>
>> A week-end of testing made me sure of one thing: it works. I assure you.
> 
> Probably, in the absence of IRQF_ONESHOT Linux interrupts. No longer if
> you face threaded IRQs - I assure you.


As I said, I have not covered all the cases. Just made it work with my
setup, but I do not see why we could not get it working for IRQF_ONESHOT.


-- 
                                                                Gilles.

_______________________________________________
Xenomai mailing list
Xenomai@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to