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.
I am not sure IRQF_ONESHOT works with CONFIG_IPIPE, anyway: #ifdef CONFIG_IPIPE /* XXX: IRQCHIP_EOI_IF_HANDLED is ignored. */ if (desc->irq_data.chip->irq_release) desc->irq_data.chip->irq_release(&desc->irq_data); out_eoi: #else /* !CONFIG_IPIPE */ if (desc->istate & IRQS_ONESHOT) cond_unmask_irq(desc); out_eoi: desc->irq_data.chip->irq_eoi(&desc->irq_data); #endif /* !CONFIG_IPIPE */ > > Jan > -- Gilles. _______________________________________________ Xenomai mailing list Xenomai@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai