From: Fabio Fantoni <fabio.fantoni@m2r.biz>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: xen-devel <xen-devel@lists.xensource.com>,
Ian Campbell <Ian.Campbell@citrix.com>,
Ian Jackson <Ian.Jackson@eu.citrix.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
Paul Durrant <paul.durrant@citrix.com>,
Anthony PERARD <Anthony.Perard@citrix.com>,
Tiejun Chen <tiejun.chen@intel.com>
Subject: Re: [Xen-devel] [PATCH] libxl: change default QEMU machine to pc-i440fx-1.6
Date: Thu, 29 May 2014 10:08:20 +0200 [thread overview]
Message-ID: <5386EAF4.8030704@m2r.biz> (raw)
In-Reply-To: <CABMPFzhh91KqZb_ELX79A_Efq2+NnPdpMcGyZbvM_Hy9Dhrr=A@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 8866 bytes --]
Il 28/05/2014 18:53, Fabio Fantoni ha scritto:
> 2014-05-28 18:41 GMT+02:00 Stefano Stabellini
> <stefano.stabellini@eu.citrix.com
> <mailto:stefano.stabellini@eu.citrix.com>>:
>
> On Wed, 28 May 2014, Stefano Stabellini wrote:
> > On Wed, 28 May 2014, Fabio Fantoni wrote:
> > > Il 26/05/2014 10:00, Fabio Fantoni ha scritto:
> > > > Il 25/05/2014 16:14, Stefano Stabellini ha scritto:
> > > > > On Fri, 23 May 2014, Fabio Fantoni wrote:
> > > > > > Il 23/05/2014 18:07, Stefano Stabellini ha scritto:
> > > > > > > Choose pc-i440fx-1.6 instead of pc for HVM guests, so
> that we know for
> > > > > > > sure what is the machine that we are emulating.
> > > > > > >
> > > > > > > Use pc-i440fx-1.6 regardless of the xen_platform_pci
> option. Add the
> > > > > > > xen-platform device if requested. Choose slot 2 for
> the xen-platform
> > > > > > > device for compatibility with current installations.
> In case of Intel
> > > > > > > graphic passthrough, slot 2 might be needed by the
> grafic card.
> > > > > > > However
> > > > > > > now that we can specify the slot explicitly, it is
> easy to change the
> > > > > > > position of the xen-platform device on the PCI bus if
> graphic
> > > > > > > passthrough is enabled.
> > > > > > >
> > > > > > > Move the machine options earlier, before any other
> emulated devices
> > > > > > > options. Otherwise the selected PCI slot for the
> xen-platform device
> > > > > > > is
> > > > > > > not available in QEMU.
> > > > > > >
> > > > > > > Specify
> PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off, because
> > > > > > > differently from xenfv, the other QEMU machines do not
> have that
> > > > > > > option
> > > > > > > off by default.
> > > > > > >
> > > > > > > This patch does not change the emulated environment in
> the guest.
> > > > > > >
> > > > > > > Refer to this thread:
> > > > > > > http://marc.info/?l=xen-devel&m=140023775929625&w=2
> > > > > > >
> > > > > > > Signed-off-by: Stefano Stabellini
> <stefano.stabellini@eu.citrix.com
> <mailto:stefano.stabellini@eu.citrix.com>>
> > > > > > >
> > > > > > > diff --git a/tools/libxl/libxl_dm.c
> b/tools/libxl/libxl_dm.c
> > > > > > > index 8abed7b..fef684f 100644
> > > > > > > --- a/tools/libxl/libxl_dm.c
> > > > > > > +++ b/tools/libxl/libxl_dm.c
> > > > > > > @@ -476,6 +476,29 @@ static char **
> > > > > > > libxl__build_device_model_args_new(libxl__gc *gc,
> > > > > > > flexarray_vappend(dm_args, "-k", keymap, NULL);
> > > > > > > }
> > > > > > > + flexarray_append(dm_args, "-machine");
> > > > > > > + switch (b_info->type) {
> > > > > > > + case LIBXL_DOMAIN_TYPE_PV:
> > > > > > > + flexarray_append(dm_args, "xenpv");
> > > > > > > + for (i = 0; b_info->extra_pv &&
> b_info->extra_pv[i] != NULL;
> > > > > > > i++)
> > > > > > > + flexarray_append(dm_args, b_info->extra_pv[i]);
> > > > > > > + break;
> > > > > > > + case LIBXL_DOMAIN_TYPE_HVM:
> > > > > > > + flexarray_append(dm_args, "pc-i440fx-1.6,accel=xen");
> > > >
> > > > I think that a note in README should be added: qemu >=1.6.1
> is required for
> > > > hvm domUs.
> > > >
> > > > About the other xl parameter to be added I think that should be:
> > > > qemu_machine_type="i440fx"|"q35" (when also q35 will be
> supported on xen)
> > > > qemu_machine_version="x.y" to specify the machine version,
> useful for
> > > > debug/testing and other some cases.
> > > >
> > > > > > > + flexarray_append(dm_args, "-global");
> > > > > > > + flexarray_append(dm_args,
> > > > > > > "PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off");
> > > > > > I think is good add a comment for remember to remove
> this workaround
> > > > > > when pc
> > > > > > > =2.1 will be the default since qemu 2.1 will fix it.
> > > > > >
> https://lists.gnu.org/archive/html/qemu-devel/2014-05/msg04789.html
> > > > > The workaround is not actually harmful, it doesn't need to
> be removed
> > > > > when pc >= 2.1 in QEMU.
> > > > >
> > > > >
> > > > > > > + if
> (libxl_defbool_val(b_info->u.hvm.xen_platform_pci)) {
> > > > > > > + flexarray_append(dm_args, "-device");
> > > > > > > + flexarray_append(dm_args, "xen-platform,addr=0x2");
> > > > > > The fixed pci address to 0x2 probably is a problem with
> intel gpu
> > > > > > passthrough:
> > > > > >
> http://lists.gnu.org/archive/html/qemu-devel/2014-05/msg03726.html
> > > > > Right, however we cannot really change the default
> position of the
> > > > > xen-platform device on the PCI bus, otherwise we'll end up
> changing the
> > > > > emulated environment for all the VMs out there.
> > > > >
> > > > > I'll leave it to Tiejun to move xen-platform to another
> slot when
> > > > > graphic passthrough is enabled.
> > > >
> > >
> > > I found another case of problem with xen-platform's fixed pci
> slot.
> > > I tested this patch and I saw that qemu not start also in
> other cases, for
> > > example the domU of my test:
> > > > qemu-system-i386: -device xen-platform,addr=0x2: PCI: slot 2
> function 0 not
> > > > available for xen-platform, in use by intel-hda
> > > > qemu-system-i386: -device xen-platform,addr=0x2: Device
> initialization
> > > > failed.
> > > > qemu-system-i386: -device xen-platform,addr=0x2: Device
> 'xen-platform' could
> > > > not be initialized
> > >
> > > The domU's xl cfg:
> > > > name='W7'
> > > > builder="hvm"
> > > > #device_model_override="/usr/lib/xen/bin/qemu-gdb"
> > > > #device_model_override="/usr/bin/qemu-system-x86_64"
> > > > #bios="ovmf"
> > > > memory=2048
> > > > vcpus=2
> > > > #nestedhvm=1
> > > > #vif=['model=e1000,bridge=xenbr0']
> > > > vif=['bridge=xenbr0,mac=00:16:3e:42:ae:8f']
> > > >
> disk=['/mnt/vm/disks/W7.disk1.xm,raw,hda,rw',',raw,hdb,ro,cdrom']
> > > > boot='dc'
> > > > device_model_version="qemu-xen"
> > > > viridian=1
> > > > vnc=0
> > > > keymap="it"
> > > > on_crash="destroy"
> > > > vga="qxl"
> > > > #videoram=64
> > > > spice=1
> > > > spicehost='0.0.0.0'
> > > > spiceport=6002
> > > > spicedisable_ticketing=1
> > > > spicevdagent=1
> > > > spice_clipboard_sharing=0
> > > > spice_image_compression="off"
> > > > spice_streaming_video="filter"
> > > > spiceusbredirection=4
> > > > soundhw="hda"
> >
> > >From the error message, it looks like soundhw is the option that
> > conflicts with xen-platform,addr=0x2.
> >
> >
> > > > localtime=1
> > > > usbversion=2
> > >
> > > Probably there are also other cases that can create a problem with
> > > xen-platform fixed address, FWIK now new usb controller (with
> usbversion) is
> > > the only other with fixed pci address in libxl, all other
> emulated qemu
> > > components not.
> > > And call it before in qemu binary starts notaffect the pci
> slot order because
> > > the xen-platform is already before audio.
> >
> > Actually it looks like that by passing -device xen-platform
> before the
> > other options, it already tries to assign slot 2 if possible. I
> don't
> > need to specify addr=0x2. That seems to be the best course of
> action.
>
> However it would still place xen-platform at slot 3 instead of
> slot 2 if
> soundhw is specified. It seems to me that there is not a perfect
> solution to this problem. We can either:
>
> - Switch to -machine pc-i440fx-1.6 by default and use consistently the
> same -machine option no matter the value of xen_platform_pci.
> Nice, but
> we break compatibility with existing guests if soundhw is specified.
>
> - Switch to -machine pc-i440fx-1.6 only when xen_platform_pci=0 is
> specified and keep xenfv if xen_platform_pci=1. We still break
> compatibility when soundhw is specified together with
> xen_platform_pci=0.
>
>
> FWIK removing the xen-platform's fixed pci slot will keep
> compatibility in any cases, assigning slots as it did before.
> I'll try tomorrow.
> Otherwise I think there would be problems in other cases, not only
> audio case.
> Perhaps even with save/restore/migrate.
>
Removing xen-platform's fixed pci slot works, I not found any case with
problem for now.
The only problem probably will be only intel graphic passthrough (not
tested), same with fixed pci slot of starting patch.
[-- Attachment #2: Type: text/html, Size: 16618 bytes --]
next prev parent reply other threads:[~2014-05-29 8:08 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-23 16:07 [Qemu-devel] [PATCH] libxl: change default QEMU machine to pc-i440fx-1.6 Stefano Stabellini
2014-05-23 16:07 ` Stefano Stabellini
2014-05-23 17:08 ` [Qemu-devel] [Xen-devel] " Fabio Fantoni
2014-05-23 17:08 ` Fabio Fantoni
2014-05-25 14:14 ` [Qemu-devel] " Stefano Stabellini
2014-05-25 14:14 ` Stefano Stabellini
2014-05-26 8:00 ` [Qemu-devel] " Fabio Fantoni
2014-05-26 8:00 ` Fabio Fantoni
2014-05-28 14:45 ` Fabio Fantoni
2014-05-28 16:18 ` Stefano Stabellini
2014-05-28 16:41 ` Stefano Stabellini
2014-05-28 16:50 ` Paolo Bonzini
2014-05-28 16:59 ` Fabio Fantoni
2014-06-03 13:38 ` [Qemu-devel] " Stefano Stabellini
2014-06-03 13:38 ` Stefano Stabellini
2014-06-03 13:43 ` [Qemu-devel] " Paolo Bonzini
2014-06-03 13:43 ` Paolo Bonzini
2014-06-03 13:47 ` [Qemu-devel] " Ian Campbell
2014-06-03 13:47 ` Ian Campbell
2014-06-03 14:03 ` [Qemu-devel] " Fabio Fantoni
2014-06-03 14:03 ` Fabio Fantoni
2014-05-28 16:53 ` [Xen-devel] " Fabio Fantoni
2014-05-29 8:08 ` Fabio Fantoni [this message]
2014-06-10 11:14 ` [Qemu-devel] " Ian Campbell
2014-06-10 11:14 ` Ian Campbell
2014-06-11 10:35 ` [Qemu-devel] " Stefano Stabellini
2014-06-11 10:35 ` Stefano Stabellini
2014-06-11 10:44 ` [Qemu-devel] " Ian Campbell
2014-06-11 10:44 ` Ian Campbell
2014-06-11 18:05 ` [Qemu-devel] [Xen-devel] " Fabio Fantoni
2014-06-11 18:05 ` Fabio Fantoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5386EAF4.8030704@m2r.biz \
--to=fabio.fantoni@m2r.biz \
--cc=Anthony.Perard@citrix.com \
--cc=Ian.Campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=paul.durrant@citrix.com \
--cc=qemu-devel@nongnu.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tiejun.chen@intel.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.