From: Andre Przywara <andre.przywara@amd.com>
To: "Dong, Eddie" <eddie.dong@intel.com>
Cc: "Egger, Christoph" <Christoph.Egger@amd.com>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
Tim Deegan <Tim.Deegan@citrix.com>
Subject: Re: RE: [PATCH 01/13] Nested Virtualization: tools
Date: Tue, 7 Sep 2010 11:44:36 +0200 [thread overview]
Message-ID: <4C860984.2040702@amd.com> (raw)
In-Reply-To: <1A42CE6F5F474C41B63392A5F80372B22A7C2772@shsmsx501.ccr.corp.intel.com>
Dong, Eddie wrote:
> Andre Przywara wrote:
>> Dong, Eddie wrote:
>>> Dong, Eddie wrote:
>>>> # HG changeset patch
>>>> # User cegger
>>>> # Date 1283345869 -7200
>>>> tools: Add nestedhvm guest config option
>>>>
>>>> diff -r 80ef08613ec2 -r ecec3d163efa tools/libxc/xc_cpuid_x86.c
>>>> --- a/tools/libxc/xc_cpuid_x86.c
>>>> +++ b/tools/libxc/xc_cpuid_x86.c
>>>> @@ -30,7 +30,7 @@
>>>> #define set_bit(idx, dst) ((dst) |= (1u << ((idx) & 31)))
>>>>
>>>> #define DEF_MAX_BASE 0x0000000du
>>>> -#define DEF_MAX_EXT 0x80000008u
>>>> +#define DEF_MAX_EXT 0x8000000au
>>> How can this make Intel CPU happy?
>>> You may refer to my previous comments in V2.
>> Correct me if I am wrong, but this is only a max boundary:
>> tools/libxc/xc_cpuid_x86.c:234
>> case 0x80000000:
>> if ( regs[0] > DEF_MAX_EXT )
>> regs[0] = DEF_MAX_EXT;
>> break;
>> So if an Intel CPU returns 0x80000008 here, this will be in the
>> regs[0] field and thus any higher value in DEF_MAX_EXT does not
>> affect the guest's CPUID response.
>> So as long as Intel CPUs don't return higher values which don't match
>> the AMD assignment (which is extremely unlikely), extending
>> DEF_MAX_EXT is fine.
>>
> But it is called as MAX_EXT and will cause some unreasonable setup of leaves.
Where? If DEF_MAX_EXT would be 0x8FFFFFFF, CPUID would still return
0x80000008 on Intel CPUs. I don't see any leaves setup because of a
changed DEF_MAX_EXT value. CPUID will just return the smaller value of
(DEF_MAX_EXT,native CPUID), any leafs beyond the value will not be
populated in xc_cpuid_apply_policy() and thus will not appear in the
HV's struct domain->arch.cpuids array used for delivering CPUID results
to guests.
> May you split the MACRO to _AMD & _INTEL, or a dynamic variable depending on CPU brand like Keir suggested?
I guess that is not needed. The leaf is properly handled in the
{amd,intel}_xc_cpuid_policy() filters, which will only be called on the
respective CPUs.
Regards,
Andre.
--
Andre Przywara
AMD-Operating System Research Center (OSRC), Dresden, Germany
Tel: +49 351 448-3567-12
next prev parent reply other threads:[~2010-09-07 9:44 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-01 14:54 [PATCH 01/13] Nested Virtualization: tools Christoph Egger
2010-09-03 7:54 ` Dong, Eddie
2010-09-03 8:11 ` Keir Fraser
2010-09-03 8:13 ` Dong, Eddie
2010-09-03 9:14 ` Andre Przywara
2010-09-07 0:54 ` Dong, Eddie
2010-09-07 9:44 ` Andre Przywara [this message]
2010-09-07 12:39 ` Dong, Eddie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C860984.2040702@amd.com \
--to=andre.przywara@amd.com \
--cc=Christoph.Egger@amd.com \
--cc=Tim.Deegan@citrix.com \
--cc=eddie.dong@intel.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.