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

Re: [Xen-devel] PVH CPU hotplug design document



On Mon, 16 Jan 2017, Roger Pau Monné wrote:
> On Mon, Jan 16, 2017 at 09:50:53AM -0700, Jan Beulich wrote:
> > >>> On 16.01.17 at 17:31, <roger.pau@xxxxxxxxxx> wrote:
> > > On Mon, Jan 16, 2017 at 09:09:55AM -0700, Jan Beulich wrote:
> > >> >>> On 16.01.17 at 16:14, <roger.pau@xxxxxxxxxx> wrote:
> > >> > On Fri, Jan 13, 2017 at 08:51:57AM -0700, Jan Beulich wrote:
> > >> >> >>> On 12.01.17 at 13:13, <roger.pau@xxxxxxxxxx> wrote:
> > >> >> > # Introduction
> > >> >> > 
> > >> >> > One of the design goals of PVH is to be able to remove as much Xen 
> > >> >> > PV specific
> > >> >> > code as possible, thus limiting the number of Xen PV interfaces 
> > >> >> > used by guests,
> > >> >> > and tending to use native interfaces (as used by bare metal) as 
> > >> >> > much as
> > >> >> > possible. This is in line with the efforts also done by Xen on ARM 
> > >> >> > and helps
> > >> >> > reduce the burden of maintaining huge amounts of Xen PV code inside 
> > >> >> > of guests
> > >> >> > kernels.
> > >> >> > 
> > >> >> > This however presents some challenges due to the model used by the 
> > >> >> > Xen
> > >> >> > Hypervisor, where some devices are handled by Xen while others are 
> > >> >> > left for the
> > >> >> > hardware domain to manage. The fact that Xen lacks and AML parser 
> > >> >> > also makes it
> > >> >> > harder, since it cannot get the full hardware description from 
> > >> >> > dynamic ACPI
> > >> >> > tables (DSDT, SSDT) without the hardware domain collaboration.
> > >> >> 
> > >> >> Considering all the difficulties with the proposed model plus the 
> > >> >> little
> > >> >> code the PV vCPU hotplug logic requires in the kernel (assuming a
> > >> >> xenbus driver to be there anyway), I'm rather unconvinced that
> > >> >> going this route instead of sticking to the PV model is actually
> > >> >> desirable. And clearly, for consistency within the kernel, in such a
> > >> >> case I'd then also favor sticking to this model for DomU.
> > >> > 
> > >> > We would at least have to pass the APIC ID in order to perform vCPU 
> > >> > hotplug for
> > >> > PVH, and the ACPI spec mandates that when using x2APIC structures in 
> > >> > the MADT,
> > >> > there must be a matching processor object in the DSDT (5.2.12.12).
> > >> > 
> > >> > Declaring processor objects in the DSDT won't be possible for Xen, but 
> > >> > we can
> > >> > at least declare them in a SSDT, which seems better than not doing it 
> > >> > at all.
> > >> > Maybe we can get ACPI to loosen the spec and don't mandate DSDT 
> > >> > anymore.
> > >> 
> > >> I don't understand this reply of yours: How do any ACPI requirements
> > >> come into play when using the PV hotplug mechanism for vCPU-s?
> > > 
> > > This clearly isn't a requirement when doing PV vCPU hotplug, but it's a
> > > violation of the spec (proving x2APIC entries without matching processor
> > > objects), so I wouldn't be surprised if ACPICA or any other ACPI 
> > > implementation
> > > refuses to boot on systems with x2APIC entries but no processor objects.
> > 
> > Good point, but what do you suggest short of declaring PVH v2 Dom0
> > impossible to properly implement? I think that the idea of multiplexing
> > ACPI for different purposes is simply going too far. For PV there's no
> > such problem, as the Dom0 OS is expected to be aware that processor
> > information coming from ACPI is not applicable to the view on CPUs it
> > has (read: vCPU-s). And therefore, unless clean multiplexing is possible,
> > I think PVH will need to retain this requirement (at which point there's
> > no spec violation anymore).
> 
> But we definitely want to use ACPI to pass the boot vCPU information, using 
> the
> MADT for both DomU and Dom0.
> 
> Then for PVH DomU using ACPI vCPU hotplug makes perfect sense, it requires 
> less
> Xen specific code in the OS and it's fairly easy to implement inside of
> Xen/toolstack. But I understand that using different methods for DomU vs Dom0
> is very awkward. I still think that ACPI vCPU hotplug for Dom0 this is not so
> far-fetched, and that it could be doable.
> 
> Could we introduce a new CPUID flag to notify the guest of whether it should
> expect ACPI vCPU hotplug or PV vCPU hotplug?

This is a good idea.


> I don't really like having Xen-specific checks inside of OSes, like "it's PVH
> guest" then short circuiting a bunch of native logic. For example the ACPICA
> ACPI shutdown hooks for Xen Dom0 never made it upstream, and it's very hard 
> for
> me to argue with the FreeBSD ACPICA maintainer about why those are needed,
> and why he has to maintain a patch on top of upstream ACPICA only for Xen.

Nobody likes those. However, I don't think that PV cpu hotplug requires
any of those.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

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