From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: Re: [RFC PATCH] kvmtool: remove 8250 IRQ line reset on device_init Date: Mon, 12 Jan 2015 17:45:51 +0000 Message-ID: <54B4084F.7020900@arm.com> References: <1420819099-29690-1-git-send-email-andre.przywara@arm.com> <20150112174127.GL13360@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: "penberg@kernel.org" , "kvmarm@lists.cs.columbia.edu" , "kvm@vger.kernel.org" , Marc Zyngier To: Will Deacon Return-path: Received: from cam-admin0.cambridge.arm.com ([217.140.96.50]:52031 "EHLO cam-admin0.cambridge.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750782AbbALRp6 (ORCPT ); Mon, 12 Jan 2015 12:45:58 -0500 In-Reply-To: <20150112174127.GL13360@arm.com> Sender: kvm-owner@vger.kernel.org List-ID: On 12/01/15 17:41, Will Deacon wrote: > On Fri, Jan 09, 2015 at 03:58:19PM +0000, Andre Przywara wrote: >> Currently we reset the KVM interrupt line on initializing the 8250 >> serial device emulation. >> For ARM this creates a problem where we use the in-kernel IRQ chip >> before having fully initialized it. But with the new kernel interface >> we cannot finish the GIC initialization before we know the number of >> used IRQs, so we have to wait until all devices have been created and >> initialized. >> Since the in-kernel GIC emulation resets the IRQ line anyway and also >> QEMU gets away without resetting it, the easiest solution is to drop >> the IRQ line reset. >> >> Signed-off-by: Andre Przywara >> --- >> Hi Pekka, >> >> this patch is an easy fix for our problems with Marc's kvmtool tree >> and 3.19-rc (setting number of IRQs after the GIC has been used >> already). I see that this basically reverts: >> >>> commit 2ca9e37193ca5f5df5726e0061dc749829295435 >>> Author: Pekka Enberg >>> Date: Sun Jan 23 11:49:39 2011 +0200 >>> >>> kvm,8250: Fix device initial state >>> >>> This patch fixes 8250 device initial state for registers and IRQ based >>> on what Qemu does. >> >> Do you (or does anyone) know of the issue that this patch fixed? >> This is four years old and from what I see QEMU does no longer the >> mentioned IRQ reset(?). >> Reworking kvmtool to avoid this issue sound rather painful. > > I'm fine with this from an ARM point-of-view. > > Acked-by: Will Deacon > > Have you tested this on x86? Yes, that worked as well. Booting into an initrd, flooding the console with output: no issues. Cheers, Andre. > >> tools/kvm/hw/serial.c | 1 - >> 1 file changed, 1 deletion(-) >> >> diff --git a/tools/kvm/hw/serial.c b/tools/kvm/hw/serial.c >> index 270e6182..2f19ba8 100644 >> --- a/tools/kvm/hw/serial.c >> +++ b/tools/kvm/hw/serial.c >> @@ -406,7 +406,6 @@ static int serial8250__device_init(struct kvm *kvm, struct serial8250_device *de >> >> ioport__map_irq(&dev->irq); >> r = ioport__register(kvm, dev->iobase, &serial8250_ops, 8, dev); >> - kvm__irq_line(kvm, dev->irq, 0); >> >> return r; >> } >> -- >> 1.7.9.5 >> >