From patchwork Tue May 28 11:49:19 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Stabellini X-Patchwork-Id: 246850 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 30E342C030C for ; Tue, 28 May 2013 21:52:05 +1000 (EST) Received: from localhost ([::1]:50899 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UhIRf-0004O0-8X for incoming@patchwork.ozlabs.org; Tue, 28 May 2013 07:52:03 -0400 Received: from eggs.gnu.org ([208.118.235.92]:46434) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UhIRJ-0004Ms-0x for qemu-devel@nongnu.org; Tue, 28 May 2013 07:51:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UhIRF-0002Cw-DL for qemu-devel@nongnu.org; Tue, 28 May 2013 07:51:40 -0400 Received: from smtp02.citrix.com ([66.165.176.63]:64469) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UhIRF-0002Cn-8b for qemu-devel@nongnu.org; Tue, 28 May 2013 07:51:37 -0400 X-IronPort-AV: E=Sophos;i="4.87,758,1363132800"; d="scan'208";a="26383090" Received: from accessns.citrite.net (HELO FTLPEX01CL03.citrite.net) ([10.9.154.239]) by FTLPIPO02.CITRIX.COM with ESMTP/TLS/AES128-SHA; 28 May 2013 11:51:35 +0000 Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com (10.13.107.80) with Microsoft SMTP Server id 14.2.342.3; Tue, 28 May 2013 07:51:35 -0400 Received: from kaball.uk.xensource.com ([10.80.2.59]) by ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from ) id 1UhIPH-0006zB-Ay; Tue, 28 May 2013 12:49:35 +0100 Date: Tue, 28 May 2013 12:49:19 +0100 From: Stefano Stabellini X-X-Sender: sstabellini@kaball.uk.xensource.com To: Igor Mammedov In-Reply-To: <20130527161227.2bd4c3a3@nial.usersys.redhat.com> Message-ID: References: <20130527161227.2bd4c3a3@nial.usersys.redhat.com> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 66.165.176.63 Cc: Paolo Bonzini , "xen-devel@lists.xen.org" , kraxel@redhat.com, jacek burghardt , qemu-devel@nongnu.org Subject: Re: [Qemu-devel] [Xen-devel] target-i386: Introduce ICC bus/device/bridge X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org On Mon, 27 May 2013, Igor Mammedov wrote: > On Fri, 24 May 2013 08:56:14 -0600 > jacek burghardt wrote: > > > I wonder if anyone has patch that allows to tlak to icc bus introduced in > > qemu upstream ? > > https://github.com/qemu/qemu/commit/f0513d2c0156799e0c75a108ab9a049eea4f9607 > > > > icc-bridge will serve as a parent for icc-bus and provide > > mmio mapping services to child icc-devices. > > * icc-device will replace SysBusDevice as a parent of APIC > > and IOAPIC devices. > > looking at xen_init_pv() it creates dummy CPU which appears > not to be used by PV guest. What was the purpose in creating it? > I think that the purpose used to be keeping the rest of QEMU happy, because it used to assume that a CPU was being emulated. As a matter of fact the Xen PV machine does not actually emulate anything, especially it doesn't emulate the CPU. Nowadays QEMU is capable of handling machines without cpus, so I suggest removing this code from xen_init_pv altogether. jacek, can you please confirm that the patch below solves your problem? --- xen_machine_pv: do not create a dummy CPU in machine->init QEMU can cope with machines without cpus. Signed-off-by: Stefano Stabellini diff --git a/hw/i386/xen_machine_pv.c b/hw/i386/xen_machine_pv.c index f829a52..b02ffac 100644 --- a/hw/i386/xen_machine_pv.c +++ b/hw/i386/xen_machine_pv.c @@ -31,27 +31,12 @@ static void xen_init_pv(QEMUMachineInitArgs *args) { - const char *cpu_model = args->cpu_model; const char *kernel_filename = args->kernel_filename; const char *kernel_cmdline = args->kernel_cmdline; const char *initrd_filename = args->initrd_filename; - X86CPU *cpu; - CPUState *cs; DriveInfo *dinfo; int i; - /* Initialize a dummy CPU */ - if (cpu_model == NULL) { -#ifdef TARGET_X86_64 - cpu_model = "qemu64"; -#else - cpu_model = "qemu32"; -#endif - } - cpu = cpu_x86_init(cpu_model); - cs = CPU(cpu); - cs->halted = 1; - /* Initialize backend core & drivers */ if (xen_be_init() != 0) { fprintf(stderr, "%s: xen backend core setup failed\n", __FUNCTION__);