[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH gnumach] interrupt: Mask, eoi, unmask
From: |
Damien Zammit |
Subject: |
Re: [PATCH gnumach] interrupt: Mask, eoi, unmask |
Date: |
Mon, 02 Oct 2023 00:38:30 +0000 |
On 2/10/23 10:56, Samuel Thibault wrote:
> So in the end, I'd tend to think that it's up to queue_intr to do the
> unmasking, like it does now, while spl is still high and thus we don't
> risk nesting. That way it's the in-kernel intr handler that knows
> whether to mask/unmask or not. I.e. it'd be like this:
>
> - interrupt.S raises spl (thus IF cleared)
> - interrupt.S EOI
> - interrupt.S calls the handler
> - for pure in-kernel handlers, they do whatever they want with IF
> cleared.
> - when a userland handler is registers, queue_intr masks the irq.
> - interrupt.S lowers spl with splx_cli, thus IF still cleared
> - iret, that clears the IF
>
> - later on, userland acks the IRQ, that unmasks the irq
>
> Is that not already very close to what we have currently?
Yes this is very close to what we have now.
I think we just need to remove the if >=16 part to do it for
all interrupts and remove the EOI call in irq_acknowledge.
Damien
- [PATCH gnumach] interrupt: Mask, eoi, unmask, Damien Zammit, 2023/10/01
- Re: [PATCH gnumach] interrupt: Mask, eoi, unmask, Samuel Thibault, 2023/10/01
- Re: [PATCH gnumach] interrupt: Mask, eoi, unmask, Damien Zammit, 2023/10/01
- Re: [PATCH gnumach] interrupt: Mask, eoi, unmask, Samuel Thibault, 2023/10/01
- Re: [PATCH gnumach] interrupt: Mask, eoi, unmask, Samuel Thibault, 2023/10/01
- Re: [PATCH gnumach] interrupt: Mask, eoi, unmask, Samuel Thibault, 2023/10/01
- Re: [PATCH gnumach] interrupt: Mask, eoi, unmask, Samuel Thibault, 2023/10/01
- Re: [PATCH gnumach] interrupt: Mask, eoi, unmask,
Damien Zammit <=
- Re: [PATCH gnumach] interrupt: Mask, eoi, unmask, Samuel Thibault, 2023/10/01