Re: [Qemu-devel] [PATCH v2] ioapic: allow buggy guests mishandling level-triggered interrupts to make progress

2019-04-02 Thread Liran Alon
> On 2 Apr 2019, at 13:20, Paolo Bonzini wrote: > > On 02/04/19 11:08, Liran Alon wrote: >>> - >>> -if (((entry >> IOAPIC_LVT_TRIGGER_MODE_SHIFT) & 1) != >>> -IOAPIC_TRIGGER_LEVEL) { >>> +if (!(entry & IOAPIC_LVT_REMOTE_IRR)) { >>>

Re: [Qemu-devel] [PATCH v2] ioapic: allow buggy guests mishandling level-triggered interrupts to make progress

2019-04-02 Thread Paolo Bonzini
On 02/04/19 11:08, Liran Alon wrote: >> - >> -if (((entry >> IOAPIC_LVT_TRIGGER_MODE_SHIFT) & 1) != >> -IOAPIC_TRIGGER_LEVEL) { >> +if (!(entry & IOAPIC_LVT_REMOTE_IRR)) { >> continue; >> } > I think above “if” of checking

Re: [Qemu-devel] [PATCH v2] ioapic: allow buggy guests mishandling level-triggered interrupts to make progress

2019-04-02 Thread Liran Alon
> On 2 Apr 2019, at 12:06, Paolo Bonzini wrote: > > On 02/04/19 10:23, Liran Alon wrote: >>> +#define SUCCESSIVE_IRQ_MAX_COUNT 1 >>> + >>> +static void ioapic_timer(void *opaque) >> I suggest rename method to something such as >> “delayed_ioapic_service_timer_handler()”. >> > > I

Re: [Qemu-devel] [PATCH v2] ioapic: allow buggy guests mishandling level-triggered interrupts to make progress

2019-04-02 Thread Paolo Bonzini
On 02/04/19 10:23, Liran Alon wrote: >> +#define SUCCESSIVE_IRQ_MAX_COUNT 1 >> + >> +static void ioapic_timer(void *opaque) > I suggest rename method to something such as > “delayed_ioapic_service_timer_handler()”. > I renamed them to delayed_ioapic_service_{timer,cb} and queued the patch.

Re: [Qemu-devel] [PATCH v2] ioapic: allow buggy guests mishandling level-triggered interrupts to make progress

2019-04-02 Thread Liran Alon
> On 2 Apr 2019, at 11:02, Vitaly Kuznetsov wrote: > > It was found that Hyper-V 2016 on KVM in some configurations (q35 machine + > piix4-usb-uhci) hangs on boot. Root-cause was that one of Hyper-V > level-triggered interrupt handler performs EOI before fixing the cause of > the interrupt.

[Qemu-devel] [PATCH v2] ioapic: allow buggy guests mishandling level-triggered interrupts to make progress

2019-04-02 Thread Vitaly Kuznetsov
It was found that Hyper-V 2016 on KVM in some configurations (q35 machine + piix4-usb-uhci) hangs on boot. Root-cause was that one of Hyper-V level-triggered interrupt handler performs EOI before fixing the cause of the interrupt. This results in IOAPIC keep re-raising the level-triggered