[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH gnumach] interrupt: Mask, eoi, unmask

From: Samuel Thibault
Subject: Re: [PATCH gnumach] interrupt: Mask, eoi, unmask
Date: Mon, 2 Oct 2023 01:50:14 +0200
User-agent: NeoMutt/20170609 (1.8.3)

Samuel Thibault, le lun. 02 oct. 2023 01:43:48 +0200, a ecrit:
> Damien Zammit, le dim. 01 oct. 2023 23:26:02 +0000, a ecrit:
> > I think the logic for this should be:
> > 
> > When we get irq N, first we mask irq N, then EOI irq N.
> > Then call the handler. If there is a user handler for irq N, let the irq_ack
> > unmask irq N, otherwise we need to unmask irq N now.
> > But don't EOI in the user handlers anymore.
> > 
> > What do you think?
> That can be a plan, yes, but what about the legacy irqs, and their
> in-kernel handlers?  We need to fix them too. One keypoint there is that
> we want to unmask with IF cleared, so that we don't get interrupted
> again on unmask, but on iret (so we don't nest).

For the legacy irqs and their in-kernel handlers, we don't really need
to mask actually, we can just keep IF cleared, i.e. the spl level raise
should be enough. But we want to keep IF cleared when lowering it again,
IIRC that's already handled so.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]