All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.