On 11/25/19 12:49 PM, Jan Beulich wrote:
> On 25.11.2019 13:39, 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 actually reporting hyperthreading as available, but giving
>> vcpus every other ApicId; which in turn led to doubling the ApicIds
>> per core by bumping the ApicIdCoreSize by one.  In particular, Ryzen
>> 3xxx series processors, and reportedly EPYC "Rome" cpus -- have an
>> ApicIdCoreSize of 7; the "fake" topology increases this to 8.
>>
>> Unfortunately, Windows running on modern AMD hardware -- including
>> Ryzen 3xxx series processors, and reportedly EPYC "Rome" cpus --
>> doesn't seem to cope with this value being higher than 7.  (Linux
>> guests have so far continued to cope.)
>>
>> A "proper" fix is complicated and it's too late to fix it either for
>> 4.13, or to backport to supported branches.  As a short-term fix,
>> limit this value to 7.
>>
>> This does mean that a Linux guest, booted on such a system without
>> this change, and then migrating to a system with this change, with
>> more than 64 vcpus, would see an apparent topology change.  This is a
>> low enough risk in practice that enabling this limit unilaterally, to
>> allow other guests to boot without manual intervention, is worth it.
>>
>> Reported-by: Steven Haigh <net...@crc.id.au>
>> Reported-by: Andreas Kinzler <h...@posteo.de>
>> Signed-off-by: George Dunlap <george.dun...@citrix.com>
> 
> Acked-by: Jan Beulich <jbeul...@suse.com>
> with ...
> 
>> --- a/tools/libxc/xc_cpuid_x86.c
>> +++ b/tools/libxc/xc_cpuid_x86.c
>> @@ -616,10 +616,15 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t 
>> domid,
>>               * - going out of sync with leaf 1 EBX[23:16],
>>               * - incrementing ApicIdCoreSize when it's zero (which changes 
>> the
>>               *   meaning of bits 7:0).
>> +             *
>> +             * UPDATE: I addition to avoiding overflow, some
> 
> ... this becoming "UPDATE: In ...".

Gah... Sorry, meant to apply this change on check-in, but screwed it up
(accidentally edited the wrong buffer).  Let me know if you want a
follow-up patch to fix it.

 -George

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

Reply via email to