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

Re: [Xen-devel] [PATCH v3] Hvmloader: Modify ACPI to only supply _EJ0 methods for PCIslots that support hotplug by runtime patching



Hi,

> -----Original Message-----
> From: Fabio Fantoni [mailto:fabio.fantoni@xxxxxxx]
> Sent: Thursday, May 08, 2014 4:17 PM
> To: Gonglei (Arei); qemu-devel@xxxxxxxxxx; xen-devel@xxxxxxxxxxxxx
> Cc: Ian.Campbell@xxxxxxxxxx; JBeulich@xxxxxxxx;
> stefano.stabellini@xxxxxxxxxxxxx; anthony.perard@xxxxxxxxxx; Huangweidong
> (C); Hanweidong (Randy); Gaowei (UVP); Michael S. Tsirkin
> Subject: Re: [PATCH v3] Hvmloader: Modify ACPI to only supply _EJ0 methods
> for PCIslots that support hotplug by runtime patching
> 
> Il 08/05/2014 06:12, Gonglei (Arei) ha scritto:
> > Hi,
> >
> >>>> In Xen platform, after using upstream qemu, the all of pci devices will
> show
> >>>> hotplug in the windows guest. In this situation, the windows guest may
> >> occur
> >>>> blue screen when VM' user click the icon of VGA card for trying unplug
> VGA
> >>>> card.
> >>>> However, we don't hope VM's user can do such dangerous operation, and
> >>>> showing
> >>>> all pci devices inside the guest OS is unfriendly.
> >>>>
> >>>> This is done by runtime patching:
> >>>>     - Rename _EJ0 methods for PCI slots in DSDT to EJ0_:note that this
> has
> >> the
> >>>>       same checksum, but is ignored by OSPM.
> >>>>     - At compile time, look for these methods in ASL source,find the
> >> matching
> >>>> AML,
> >>>>       and store the offsets of these methods in a table named
> >> aml_ej0_data.
> >>>>     - At run time, go over aml_ej0_data, check which slots not support
> >> hotplug
> >>>> and
> >>>>       patch the ACPI table, replacing _EJ0 with EJ0_.
> >>>>
> >>>> Signed-off-by: Gaowei <gao.gaowei@xxxxxxxxxx>
> >>>> Signed-off-by: Gonglei <arei.gonglei@xxxxxxxxxx>
> >> Tested-by: Fabio Fantoni <fabio.fantoni@xxxxxxx>
> >>
> >> Thanks for this very useful patch that avoid that unaware users or as
> >> mistake make windows domUs unusable.
> >>
> > Thanks.
> >
> >> I tried to quickly look at the patch to understand how to add some
> >> optional components, for example on my case the pv drivers, the audio
> >> card and the spice guest tools (see attachment) but I don't understand
> >> how to do it.
> >> Can someone give me some advices about it please?
> >>
> > Maybe you can hard code at libxl__build_device_model_args_new()
> > in tools/libxl/libxl_dm.c
> >
> >
> > Best regards,
> > -Gonglei
> >
> I believe I not understand what you mean.
> About adding these components I already do this:
> - gplpv: http://wiki.xen.org/wiki/Xen_Windows_GplPv
> http://www.ejbdigital.com.au/gplpv
> - spice:
> http://xenbits.xen.org/docs/unstable/man/xl.cfg.5.html#spice_graphics_suppo
> rt
> http://www.spice-space.org/download/binaries/spice-guest-tools/
> - audio: add soundhw="hda" in domU's xl cfg file
> 
> This patch disables hotplug capabilities from essential pci devices.
> 
No, if pci devices do not support hotplug, which class's no_hotplug property 
will be 
set to 1, then the pci device will not show in guest os, opposite will be 
shown, such
as your pv drivers and Intel hda card.

Please see intel_hda_class_init_common() and xen_platform_class_init() 
functions.
As a comparison, you can see vga devices' class init function 
cirrus_vga_class_init()
has below code:

k->no_hotplug = 1;

If I understand what you mean wrong, please forgive me.

> What I mean if there is a way to prevent some other components being
> part of the above list of hotplug devices.
> 
> Thanks for any reply and sorry for my bad english.

Best regards,
-Gonglei

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.