Re: [PATCH]: gnumach - simplify interrupt handling

2019-11-12 Thread Samuel Thibault
Hello, Just an update: I have fixed other issues with netdde crashing, the latest fixes are available in 2:1.8+git20191029-7, to be built & uploaded soon. One thing that remains, however, is this: if netdde crashes while an irq is pending, it will not make the hardware drop the irq. The interrupt

Re: [PATCH]: gnumach - simplify interrupt handling

2019-11-11 Thread Samuel Thibault
Samuel Thibault, le lun. 11 nov. 2019 19:06:21 +0100, a ecrit: > Justus Winter, le lun. 11 nov. 2019 19:03:46 +0100, a ecrit: > > I remember thinking about using a send-once right that when deallocated > > enables the interrupt again. This should be a) well optimized, and b) > > robust in the face

Re: [PATCH]: gnumach - simplify interrupt handling

2019-11-11 Thread Samuel Thibault
Justus Winter, le lun. 11 nov. 2019 19:03:46 +0100, a ecrit: > I remember thinking about using a send-once right that when deallocated > enables the interrupt again. This should be a) well optimized, and b) > robust in the face of misbehaving userland. I was thinking about something like that to

Re: [PATCH]: gnumach - simplify interrupt handling

2019-11-11 Thread Justus Winter
Samuel Thibault writes: > A simpler way for now would be to make deliver_intr and > device_intr_enable count how many "disables" we have for each irq. > Both device_intr_register and deliver_intr would increase it (and thus > disable the irq), and userland would have to call device_intr_enable >

Re: [PATCH]: gnumach - simplify interrupt handling

2019-11-11 Thread Samuel Thibault
Samuel Thibault, le lun. 11 nov. 2019 17:52:36 +0100, a ecrit: > That being said, now netdde with e1000 works only because linux_intr > calls disable_irq before queue_intr. If that is not done, we keep > getting interrupts. This really looks like an edge-vs-level trigger > issue which we need to cl

Re: [PATCH]: gnumach - simplify interrupt handling

2019-11-11 Thread Samuel Thibault
Damien Zammit, le lun. 11 nov. 2019 21:23:15 +1100, a ecrit: > On 11/11/19 3:08 am, Samuel Thibault wrote: > > Samuel Thibault, le dim. 10 nov. 2019 16:25:22 +0100, a ecrit: > >> Samuel Thibault, le dim. 10 nov. 2019 16:22:04 +0100, a ecrit: > >>> Ok, I have restored some of the mask/unmask_irq, so

Re: [PATCH]: gnumach - simplify interrupt handling

2019-11-11 Thread Damien Zammit
On 11/11/19 3:08 am, Samuel Thibault wrote: > Samuel Thibault, le dim. 10 nov. 2019 16:25:22 +0100, a ecrit: >> Samuel Thibault, le dim. 10 nov. 2019 16:22:04 +0100, a ecrit: >>> Ok, I have restored some of the mask/unmask_irq, so that curr_pic_mask >>> will still exist, but without the notion of s

Re: [PATCH]: gnumach - simplify interrupt handling

2019-11-10 Thread Samuel Thibault
BTW, this cleanup may help with kvm-in-kvm emulation such as used on jenkins.debian.net: IIRC that was getting performance issues because of interrupt simulation misperformance. Using cli/sti most of the time will probably help here. Samuel

Re: [PATCH]: gnumach - simplify interrupt handling

2019-11-10 Thread Samuel Thibault
Samuel Thibault, le dim. 10 nov. 2019 16:25:22 +0100, a ecrit: > Samuel Thibault, le dim. 10 nov. 2019 16:22:04 +0100, a ecrit: > > Ok, I have restored some of the mask/unmask_irq, so that curr_pic_mask > > will still exist, but without the notion of spl: it will just store > > which IRQs have been

Re: [PATCH]: gnumach - simplify interrupt handling

2019-11-10 Thread Samuel Thibault
Samuel Thibault, le dim. 10 nov. 2019 16:22:04 +0100, a ecrit: > Ok, I have restored some of the mask/unmask_irq, so that curr_pic_mask > will still exist, but without the notion of spl: it will just store > which IRQs have been effectively disabled. That'll already be good for a > first step :) A

Re: [PATCH]: gnumach - simplify interrupt handling

2019-11-10 Thread Samuel Thibault
Ok, I have restored some of the mask/unmask_irq, so that curr_pic_mask will still exist, but without the notion of spl: it will just store which IRQs have been effectively disabled. That'll already be good for a first step :) Samuel

Re: [PATCH]: gnumach - simplify interrupt handling

2019-11-10 Thread Samuel Thibault
Damien Zammit, le sam. 09 nov. 2019 15:46:33 +1100, a ecrit: > diff --git a/i386/i386/pic.h b/i386/i386/pic.h > index 80bf65d..abf0993 100644 > --- a/i386/i386/pic.h > +++ b/i386/i386/pic.h > @@ -176,11 +176,18 @@ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. > #define READ_IR_ONRD 0x00 >

Re: [PATCH]: gnumach - simplify interrupt handling

2019-11-10 Thread Samuel Thibault
Hello, Damien Zammit, le sam. 09 nov. 2019 15:46:33 +1100, a ecrit: > The first patch combines all spls 1-7 into a single spl that disables all > interrupts. > It boots with just this patch. I have applied this one, thanks! > The second patch removes all concept of a cached PIC mask, and allows

[PATCH]: gnumach - simplify interrupt handling

2019-11-08 Thread Damien Zammit
Hi there, Please find attached 2x patches for gnumach (apply cleanly on debian gnumach). The first patch combines all spls 1-7 into a single spl that disables all interrupts. It boots with just this patch. The second patch removes all concept of a cached PIC mask, and allows the PIC to remain