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

Re: [Xen-devel] PV-vNUMA issue: topology is misinterpreted by the guest

On 07/24/2015 12:48 PM, Juergen Gross wrote:
On 07/24/2015 06:40 PM, Boris Ostrovsky wrote:
On 07/24/2015 12:10 PM, Juergen Gross wrote:

If we can fiddle with the masks on boot, we could do it in a running
system, too. Another advantage with not relying on cpuid. :-)

I am trying to catch up with this thread so I may have missed it, but I
still don't understand why we don't want to rely on CPUID.

I think I saw Juergen said --- because it's HW-specific. But what's
wrong with that? Hypervisor is building virtualized x86 (in this case)
hardware and on such HW CPUID is the standard way of determining
thread/core topology. Plus various ACPI tables and such.

And having a solution that doesn't address userspace (when there *is* a
solution that can do it) doesn't seem like the best approach. Yes, it
still won't cover userspace for PV guests but neither will the kernel

As far as licensing is concerned --- are we sure this can't also be
addressed by CPUID? BTW, if I was asked about who is most concerned
about licensing my first answer would be --- databases. I.e. userspace.

The problem is to construct cpuids which will enable the linux
scheduler to work correct in spite of the hypervisor scheduler
moving vcpus between pcpus. The only way to do this is to emulate
single-threaded cores on the numa nodes without further grouping.
So either single-core sockets or one socket with many cores.


This might be problematic for licensing: the multi-socket solution
might require a higher license based on socket numbers. Or the
license is based on cores and will be more expensive as no hyperthreads
are detectable.

If we don't pin VCPUs approriately (which I think is the scenario that we are discussing) then CPUID can be used for find out package ID. And so any licensed SW will easily discover that it is running on different packages.

(Also, I don't know whether this is still true but in the past APICID
format was also used for topology discovery. Just to make things a bit
more interesting ;-))

Another +1 for the pv-solution. :-)

Not necessarily. ACPI/CPUID changes can take care of that outside kernel.

BTW, this can be useful (in case you don't already have it):

There is a similar document for AMD but I don't remember where it lives.

-boris "the CPUID bigot"

Xen-devel mailing list



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