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

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



>>> On 17.01.17 at 12:43, <roger.pau@xxxxxxxxxx> wrote:
> On Tue, Jan 17, 2017 at 02:12:59AM -0700, Jan Beulich wrote:
>> >>> On 16.01.17 at 18:44, <roger.pau@xxxxxxxxxx> 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:
>> >> > 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.
>> 
>> Is that really set in stone?
> 
> If the PVH domain has access to an APIC and wants to use it it must parse the
> info from the MADT, or else it cannot get the APIC address or the APIC ID (you
> could guess those, since their position is quite standard, but what's the
> point?)

There's always the option of obtaining needed information via hypercall.

>> > 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?
>> 
>> That would be an easy addition.
> 
> My proposition would be to notify the usage of PV vCPU hotplug, and not notify
> anything when using ACPI vCPU hotplug.

I think there should be two flags, each indicating availability of the
respective variant.

>> > 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.
>> 
>> I understand all those concerns, but we shouldn't replace one ugliness
>> by another. I.e. without a reasonably clean concept of how to use
>> ACPI here I can't help thinking that the PV model here is the cleaner one
>> despite the (little) extra code it requires in OSes.
> 
> Right. Do you agree to allow Boris DomU ACPI CPU hotplug to go in when ready,
> and the PVH Dom0 series to continue using the same approach? (MADT entries for
> vCPUs, unmodified processor objects in the DSDT, PV hotplug for vCPUs).

To be honest, until I see a clear picture of how everything is going to
fit together, I don't think I'm willing to give my okay for any of these
patches to go in. That's because without at least a clear road towards
full functionality we'd again end up with something half baked like PVHv1
was. Nor do I view having two vCPU hotplug models as a desirable goal.

> Is there anyway to get in touch with the ACPI guys in order to see whether 
> this
> can be solved in a nice way using ACPI? I know that's not something that's
> going to change in the near future, but maybe by bringing it up with them we
> can make our life easier in the future?

I have no idea who the folks are who update the ACPI spec. I don't,
however, see the point here: ACPI wants to provide an abstraction
between hardware and OS. I don't think it was ever meant to be
able to split things at some arbitrary boundary. Or to say it
differently, I could fully understand them responding back "What the
heck?" That's also why I wouldn't (currently) consider myself bringing
up anything like this with them, even if I knew who they were. Otoh
they've accepted STAO and XENV ...

Jan

_______________________________________________
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®.