From mboxrd@z Thu Jan 1 00:00:00 1970 From: "rkrcmar@redhat.com" Subject: Re: [PATCH 0/6] KVM/x86: Add workaround to support ExtINT with AVIC Date: Thu, 4 Apr 2019 23:30:03 +0200 Message-ID: <20190404213001.GA21138@flask> References: <20190322115702.10166-1-suravee.suthikulpanit@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" , "joro@8bytes.org" , "pbonzini@redhat.com" To: "Suthikulpanit, Suravee" Return-path: Content-Disposition: inline In-Reply-To: <20190322115702.10166-1-suravee.suthikulpanit@amd.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org 2019-03-22 11:57+0000, Suthikulpanit, Suravee: > This series is one of the prerequisites for supporting AMD AVIC with > in-kernel irqchip (kernel_irqchip=on). > > Since AVIC does not support ExtINT interrupt, which is required during > the booting phase of Windows and FreeBSD VMs (e.g. PIT -> PIC -> ExtInt). > This results in VM hang in the boot loader with kernel_irqchip=on mode. > > This series provides workaround by temporary deactivate AVIC and fallback > to use legacy interrupt injection (w/ vINTR and interrupt window). > Then re-activate AVIC once the intrrupts are handled. The solution looks reasonable (although it seems dangerous to me) as we only enable the workaround if the interrupt cannot be immediately injected. The interesting part is that split irqchip works, yet it cannot inject ExtInt correctly either -- does the guest OS behave differently, or does split irqchip just ignore the ExtInt? Thanks.