qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Brijesh Singh <brijesh.singh@amd.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: brijesh.singh@amd.com, qemu-devel@nongnu.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <rth@twiddle.net>,
	Tom Lendacky <Thomas.Lendacky@amd.com>
Subject: Re: [Qemu-devel] [PATCH] target-i386/cpu: Add new EYPC CPU model
Date: Tue, 15 Aug 2017 11:09:59 -0500	[thread overview]
Message-ID: <f87838dc-a1e6-f51c-70d9-1f2ff571f72c@amd.com> (raw)
In-Reply-To: <20170815113531.GR3108@localhost.localdomain>

Hi Eduardo,


On 08/15/2017 06:35 AM, Eduardo Habkost wrote:
> Hi,
> 
> Thanks for the patch.
> 
> On Mon, Aug 14, 2017 at 10:52:17AM -0500, Brijesh Singh wrote:
>> Add a new base CPU model called 'EPYC' to model processors from AMD EPYC
>> family (which includes EPYC 76xx,75xx,74xx,73xx and 72xx).
> 
> I suggest enumerating in the commit message which features were
> added to the CPU model in comparison to Opteron_G5.
> 

Will do.

[snip]

>> +        /* Missing: XSAVES (not supported by some Linux versions,
>> +         * including v4.1 to v4.12).
>> +         * KVM doesn't yet expose any XSAVES state save component.
>> +         */
> 
> Do you know which supervisor state components are available in
> EPYC CPUs?  Do you have a pointer to public AMD documentation
> about XSAVES?
> 

The available state components that may be saved by XSAVES are solely
determined by XCR0, and are therefore the same set of components that
can be used in XSAVE.

AMD APM vol4 [1] provides some information about XSAVES

[1] http://support.amd.com/TechDocs/26568.pdf#search=XSAVES

Note:
Looking at the document, I see that it says state elements saved are
determined by logical OR of XCRO with the IA32_XSS MSR. But the IA32_XSS MSR
definition is missing from the document and I have flagged it, it should be
updated with correct definition. But in the meantime, CPU team has confirmed
that the EPYC does not support any bits in IA32_XSS MSR.

> 
>> +        .features[FEAT_XSAVE] =
>> +            CPUID_XSAVE_XSAVEOPT | CPUID_XSAVE_XSAVEC |
>> +            CPUID_XSAVE_XGETBV1,
>> +        .features[FEAT_6_EAX] =
>> +            CPUID_6_EAX_ARAT,
>> +        .xlevel = 0x8000001F,
> 
> All CPUID leaves from 0x8000000B to 0x8000001F return all-zeroes
> today.  If we set xlevel to 0x8000001F before we actually
> implement those CPUID leaves, we will be forced to add extra
> machine-type compat code when we finally implement them.
> 
> I suggest setting it to 0x8000000A, and increasing it only after
> we actually implement the new CPUID leaves.
> 
> 

Sure, I will limit xlevel to 0x8000_000A.

-Brijesh

      reply	other threads:[~2017-08-15 16:10 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-14 15:52 [Qemu-devel] [PATCH] target-i386/cpu: Add new EYPC CPU model Brijesh Singh
2017-08-15 11:35 ` Eduardo Habkost
2017-08-15 16:09   ` Brijesh Singh [this message]

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=f87838dc-a1e6-f51c-70d9-1f2ff571f72c@amd.com \
    --to=brijesh.singh@amd.com \
    --cc=Thomas.Lendacky@amd.com \
    --cc=ehabkost@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).