qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] xen: make xen-platform a default device


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH] xen: make xen-platform a default device
Date: Thu, 22 May 2014 15:35:09 +0300

On Thu, May 22, 2014 at 01:11:28PM +0100, Stefano Stabellini wrote:
> On Thu, 22 May 2014, Gerd Hoffmann wrote:
> > Patch hooks up the xen platform device to the default device code we
> > have in qemu.  Two effects:
> > 
> >   (1) The device will not be created in case -nodefaults is specified
> >       on the command line.
> >   (2) Autocreating the device is also turned off in case xen-platform
> >       is added manually via -device.
> > 
> > With the patch applied you can move the xen-platform device to some
> > other place with a simple 'qemu -device xen-platform,addr=$slot'.
> > 
> > Tested-by: Tiejun Chen <address@hidden>
> > Signed-off-by: Gerd Hoffmann <address@hidden>
> 
> Given that libxl always passes -nodefaults to QEMU, this patch is going
> to effectively disable xen_platform_pci for all Xen users. It is not a
> good idea. With the patch applied a Xen user would have no way to enable
> xen_platform_pci except for passing some magic command line runes via
> device_model_args_hvm.
> 

Yes, it's an unfortunate use of the interface.
How about a new machine type for xenfv - that's the only one
that's affected, right?
It's time xen started versioning qemu hardware anyway.

> >  hw/i386/pc_piix.c    | 2 +-
> >  include/hw/xen/xen.h | 1 +
> >  vl.c                 | 3 +++
> >  3 files changed, 5 insertions(+), 1 deletion(-)
> > 
> > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> > index eaf3e61..f987d03 100644
> > --- a/hw/i386/pc_piix.c
> > +++ b/hw/i386/pc_piix.c
> > @@ -385,7 +385,7 @@ static void pc_xen_hvm_init(QEMUMachineInitArgs *args)
> >      pc_init_pci(args);
> >  
> >      bus = pci_find_primary_bus();
> > -    if (bus != NULL) {
> > +    if (bus != NULL && default_xenplatform) {
> >          pci_create_simple(bus, -1, "xen-platform");
> >      }
> >  }
> > diff --git a/include/hw/xen/xen.h b/include/hw/xen/xen.h
> > index 85fda3d..b350413 100644
> > --- a/include/hw/xen/xen.h
> > +++ b/include/hw/xen/xen.h
> > @@ -20,6 +20,7 @@ enum xen_mode {
> >  
> >  extern uint32_t xen_domid;
> >  extern enum xen_mode xen_mode;
> > +extern int default_xenplatform;
> >  
> >  extern bool xen_allowed;
> >  
> > diff --git a/vl.c b/vl.c
> > index 709d8cd..673148e 100644
> > --- a/vl.c
> > +++ b/vl.c
> > @@ -226,6 +226,7 @@ static int default_floppy = 1;
> >  static int default_cdrom = 1;
> >  static int default_sdcard = 1;
> >  static int default_vga = 1;
> > +int default_xenplatform = 1;
> >  
> >  static struct {
> >      const char *driver;
> > @@ -247,6 +248,7 @@ static struct {
> >      { .driver = "isa-cirrus-vga",       .flag = &default_vga       },
> >      { .driver = "vmware-svga",          .flag = &default_vga       },
> >      { .driver = "qxl-vga",              .flag = &default_vga       },
> > +    { .driver = "xen-platform",         .flag = &default_xenplatform },
> >  };
> >  
> >  static QemuOptsList qemu_rtc_opts = {
> > @@ -4101,6 +4103,7 @@ int main(int argc, char **argv, char **envp)
> >          default_monitor = 0;
> >          default_net = 0;
> >          default_vga = 0;
> > +        default_xenplatform = 0;
> >      }
> >  
> >      if (is_daemonized()) {
> > -- 
> > 1.8.3.1
> > 
> > 



reply via email to

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