On 11/15/19 11:17 AM, Andreas Kinzler wrote:
> On 15.11.2019 11:57, George Dunlap wrote:
>> Changeset ca2eee92df44 ("x86, hvm: Expose host core/HT topology to HVM
>> guests") attempted to "fake up" a topology which would induce guest
>> operating systems to not treat vcpus as sibling hyperthreads.  This
>> involved (among other things) actually reporting hyperthreading as
>> available, but giving vcpus every other APICID.  The resulting cpu
>> featureset is invalid, but most operating systems on most hardware
>> managed to cope with it.
>>
>> Unfortunately, Windows running on modern AMD hardware -- including
>> Ryzen 3xxx series processors, and reportedly EPYC "Rome" cpus -- gets
>> confused by the resulting contradictory feature bits and crashes
>> during installation.  (Linux guests have so far continued to cope.)
> 
> I do not understand a central point: No matter why and/or how a fake
> topology is presented by Xen, why did the older generation Ryzen 2xxx
> work and Ryzen 3xxx doesn't? What is the change in AMD(!) not Xen that
> causes the one to work and the other to fail?

The CPU features that the guest sees are a mix of the real underlying
features and changes made by Xen.  Xen and/or the hardware will behave
exactly the same in both cases; the only difference is what the guest
operating system does.  The guest operating system code which is trying
to determine the topology sees an impossible franken-monster mix of bits
which its authors never anticipated, and so did not test; and it goes
off the rails somewhere and crashes. Without seeing the code I cannot
tell you how or exactly why it fails on Ryzen 3xxx but not on Ryzen
2xxx.  It could be something as simple as a missed case in a switch
statement somewhere which never happens on real hardware.

Ideally of course such code should never crash, and should probably be
designed such that it muddles on somehow no matter what it gets.  But I
doubt we're going to get a huge amount of sympathy from MS if we request
a patch to allow it to deal with incoherent topology; and in any case
there are already lots of images out there already with the old code.

(Caveat: This is all from my understanding of Andy's description, not
from personal experience.)

 -George

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to