qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Xen-devel] target-i386: Introduce ICC bus/device/bridg


From: Stefano Stabellini
Subject: Re: [Qemu-devel] [Xen-devel] target-i386: Introduce ICC bus/device/bridge
Date: Tue, 28 May 2013 12:49:19 +0100
User-agent: Alpine 2.02 (DEB 1266 2009-07-14)

On Mon, 27 May 2013, Igor Mammedov wrote:
> On Fri, 24 May 2013 08:56:14 -0600
> jacek burghardt <address@hidden> 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 <address@hidden>

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__);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]