On 2012-09-17 20:12, 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.

Well, it may work (if mask/unmask callbacks work as native) but the
benefit is gone: masking at IO-APIC level will be done again. Given that
threaded IRQs become increasingly popular, it will also be hard to avoid
them in common setups.

Jan

-- 
Siemens AG, Corporate Technology, CT RTC ITP SDP-DE
Corporate Competence Center Embedded Linux

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to