From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:47939) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UhIXN-0006ge-QQ for qemu-devel@nongnu.org; Tue, 28 May 2013 07:58:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UhIXE-0004Hi-AI for qemu-devel@nongnu.org; Tue, 28 May 2013 07:57:57 -0400 Received: from cantor2.suse.de ([195.135.220.15]:37591 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UhIXE-0004GJ-17 for qemu-devel@nongnu.org; Tue, 28 May 2013 07:57:48 -0400 Message-ID: <51A49BB9.4020302@suse.de> Date: Tue, 28 May 2013 13:57:45 +0200 From: =?ISO-8859-1?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <20130527161227.2bd4c3a3@nial.usersys.redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [Xen-devel] target-i386: Introduce ICC bus/device/bridge List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefano Stabellini Cc: qemu-devel@nongnu.org, "xen-devel@lists.xen.org" , kraxel@redhat.com, Paolo Bonzini , Igor Mammedov , jacek burghardt Am 28.05.2013 13:49, schrieb Stefano Stabellini: > 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 introduce= d in >>> qemu upstream ? >>> https://github.com/qemu/qemu/commit/f0513d2c0156799e0c75a108ab9a049ee= a4f9607 >>> >>> 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? >> >=20 > 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 sugges= t > removing this code from xen_init_pv altogether. >=20 > jacek, can you please confirm that the patch below solves your problem? That's based on top of your other patches though, right? Accessing first_cpu with no CPU created is doomed to fail. qtest does create CPUs, it just doesn't execute them. Not arguing against this, just cautioning that additional NULL checks may be needed elsewhere. Cheers, Andreas > --- >=20 >=20 > xen_machine_pv: do not create a dummy CPU in machine->init >=20 > QEMU can cope with machines without cpus. >=20 > Signed-off-by: Stefano Stabellini >=20 > 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 @@ > =20 > static void xen_init_pv(QEMUMachineInitArgs *args) > { > - const char *cpu_model =3D args->cpu_model; > const char *kernel_filename =3D args->kernel_filename; > const char *kernel_cmdline =3D args->kernel_cmdline; > const char *initrd_filename =3D args->initrd_filename; > - X86CPU *cpu; > - CPUState *cs; > DriveInfo *dinfo; > int i; > =20 > - /* Initialize a dummy CPU */ > - if (cpu_model =3D=3D NULL) { > -#ifdef TARGET_X86_64 > - cpu_model =3D "qemu64"; > -#else > - cpu_model =3D "qemu32"; > -#endif > - } > - cpu =3D cpu_x86_init(cpu_model); > - cs =3D CPU(cpu); > - cs->halted =3D 1; > - > /* Initialize backend core & drivers */ > if (xen_be_init() !=3D 0) { > fprintf(stderr, "%s: xen backend core setup failed\n", __FUNCT= ION__); >=20 --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg