All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Radim Krčmář" <rkrcmar@redhat.com>
To: "Moger, Babu" <Babu.Moger@amd.com>
Cc: "ehabkost@redhat.com" <ehabkost@redhat.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"mtosatti@redhat.com" <mtosatti@redhat.com>,
	"Hook, Gary" <Gary.Hook@amd.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>,
	"pixo@polepetko.eu" <pixo@polepetko.eu>,
	"rth@twiddle.net" <rth@twiddle.net>
Subject: Re: [PATCH v2 2/5] target/i386: Populate AMD Processor Cache Information
Date: Thu, 1 Mar 2018 20:56:16 +0100	[thread overview]
Message-ID: <20180301195616.GA29001@flask> (raw)
In-Reply-To: <CY4PR12MB17687EBCC5940ACFEB3E4D7C95C60@CY4PR12MB1768.namprd12.prod.outlook.com>

2018-03-01 15:55+0000, Moger, Babu:
> Radim, Thanks for your comments. I am working on the changes.
> But, I need few clarifications on your comments. Please see inline. 
> 
> > -----Original Message-----
> > From: Radim Krčmář [mailto:rkrcmar@redhat.com]
> > Sent: Wednesday, February 28, 2018 12:09 PM
> > To: Moger, Babu <Babu.Moger@amd.com>
> > Cc: pbonzini@redhat.com; rth@twiddle.net; ehabkost@redhat.com;
> > mtosatti@redhat.com; qemu-devel@nongnu.org; kvm@vger.kernel.org;
> > pixo@polepetko.eu; Hook, Gary <Gary.Hook@amd.com>
> > Subject: Re: [PATCH v2 2/5] target/i386: Populate AMD Processor Cache
> > Information
> > 
> > 2018-02-23 21:30-0500, Babu Moger:
> > > From: Stanislav Lanci <pixo@polepetko.eu>
> > >
> > > Adds information about cache size and topology from cpuid 0x8000001D
> > leaf
> > > for different cache types on AMD processors.
> > >
> > > Signed-off-by: Stanislav Lanci <pixo@polepetko.eu>
> > > Signed-off-by: Babu Moger <babu.moger@amd.com>
> > > ---
> > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> > > @@ -3590,6 +3594,78 @@ void cpu_x86_cpuid(CPUX86State *env,
> > > +                *ebx = (L1D_LINE_SIZE - 1) | \
> > > +                       ((L1D_PARTITIONS - 1) << 12) | \
> > > +                       ((L1D_ASSOCIATIVITY - 1) << 22);
> > > +                *ecx = L1D_SETS - 1;
> > 
> > These numbers seem to have the same meaning as CPUID 4, but have
> > conflicting values.
> 
> I am not sure about conflicting values. Looking at the specs(page 78 CPUID_Fn8000001D_EBX_x00)
>  https://support.amd.com/TechDocs/54945_PPR_Family_17h_Models_00h-0Fh.pdf
>  It looks correct to me.

I agree.  My comment is misplaced -- it should have been under the place
that uses *_AMD macros.

I wanted to point out that CPUID in QEMU is very Intel-focused and
always contains CPUID leaf 4, which has fields of the very same meaning,
but with different values.

> > I think we should not expose CPUID 4 with AMD CPUs or at least when they
> > have CPUID_EXT3_TOPOEXT (the latter is easier wrt. compatibility).
> 
> Can you please elaborate on these comments? 
> Did you mean we should remove the check CPUID_EXT3_TOPOEXT and remove all CPUID 4 references? 

CPUID 4 should have never been present when emulating AMD CPUs, but it's
worse now that the numbers are conflicting.

I meant to hide CPUID 4 for all AMD CPUs on future machine types, or at
least when CPUID_EXT3_TOPOEXT is enabled.

Keeping the current logic not a big problem as CPUID 4 should never be
used by operating systems on AMD nor trusted inside a VM.  Bringing the
emulation closer to real state would be nice, but this can definitely be
done later (aka never).

> > The numbers looks like real hardware,
> 
> Do you want me to change anything here?

No, I was just commending,

thanks.

WARNING: multiple messages have this Message-ID (diff)
From: "Radim Krčmář" <rkrcmar@redhat.com>
To: "Moger, Babu" <Babu.Moger@amd.com>
Cc: "pbonzini@redhat.com" <pbonzini@redhat.com>,
	"rth@twiddle.net" <rth@twiddle.net>,
	"ehabkost@redhat.com" <ehabkost@redhat.com>,
	"mtosatti@redhat.com" <mtosatti@redhat.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"pixo@polepetko.eu" <pixo@polepetko.eu>,
	"Hook, Gary" <Gary.Hook@amd.com>
Subject: Re: [Qemu-devel] [PATCH v2 2/5] target/i386: Populate AMD Processor Cache Information
Date: Thu, 1 Mar 2018 20:56:16 +0100	[thread overview]
Message-ID: <20180301195616.GA29001@flask> (raw)
In-Reply-To: <CY4PR12MB17687EBCC5940ACFEB3E4D7C95C60@CY4PR12MB1768.namprd12.prod.outlook.com>

2018-03-01 15:55+0000, Moger, Babu:
> Radim, Thanks for your comments. I am working on the changes.
> But, I need few clarifications on your comments. Please see inline. 
> 
> > -----Original Message-----
> > From: Radim Krčmář [mailto:rkrcmar@redhat.com]
> > Sent: Wednesday, February 28, 2018 12:09 PM
> > To: Moger, Babu <Babu.Moger@amd.com>
> > Cc: pbonzini@redhat.com; rth@twiddle.net; ehabkost@redhat.com;
> > mtosatti@redhat.com; qemu-devel@nongnu.org; kvm@vger.kernel.org;
> > pixo@polepetko.eu; Hook, Gary <Gary.Hook@amd.com>
> > Subject: Re: [PATCH v2 2/5] target/i386: Populate AMD Processor Cache
> > Information
> > 
> > 2018-02-23 21:30-0500, Babu Moger:
> > > From: Stanislav Lanci <pixo@polepetko.eu>
> > >
> > > Adds information about cache size and topology from cpuid 0x8000001D
> > leaf
> > > for different cache types on AMD processors.
> > >
> > > Signed-off-by: Stanislav Lanci <pixo@polepetko.eu>
> > > Signed-off-by: Babu Moger <babu.moger@amd.com>
> > > ---
> > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> > > @@ -3590,6 +3594,78 @@ void cpu_x86_cpuid(CPUX86State *env,
> > > +                *ebx = (L1D_LINE_SIZE - 1) | \
> > > +                       ((L1D_PARTITIONS - 1) << 12) | \
> > > +                       ((L1D_ASSOCIATIVITY - 1) << 22);
> > > +                *ecx = L1D_SETS - 1;
> > 
> > These numbers seem to have the same meaning as CPUID 4, but have
> > conflicting values.
> 
> I am not sure about conflicting values. Looking at the specs(page 78 CPUID_Fn8000001D_EBX_x00)
>  https://support.amd.com/TechDocs/54945_PPR_Family_17h_Models_00h-0Fh.pdf
>  It looks correct to me.

I agree.  My comment is misplaced -- it should have been under the place
that uses *_AMD macros.

I wanted to point out that CPUID in QEMU is very Intel-focused and
always contains CPUID leaf 4, which has fields of the very same meaning,
but with different values.

> > I think we should not expose CPUID 4 with AMD CPUs or at least when they
> > have CPUID_EXT3_TOPOEXT (the latter is easier wrt. compatibility).
> 
> Can you please elaborate on these comments? 
> Did you mean we should remove the check CPUID_EXT3_TOPOEXT and remove all CPUID 4 references? 

CPUID 4 should have never been present when emulating AMD CPUs, but it's
worse now that the numbers are conflicting.

I meant to hide CPUID 4 for all AMD CPUs on future machine types, or at
least when CPUID_EXT3_TOPOEXT is enabled.

Keeping the current logic not a big problem as CPUID 4 should never be
used by operating systems on AMD nor trusted inside a VM.  Bringing the
emulation closer to real state would be nice, but this can definitely be
done later (aka never).

> > The numbers looks like real hardware,
> 
> Do you want me to change anything here?

No, I was just commending,

thanks.

  reply	other threads:[~2018-03-01 19:56 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-24  2:30 [PATCH v2 0/5] Enable TOPOEXT to support hyperthreading on AMD CPU Babu Moger
2018-02-24  2:30 ` [Qemu-devel] " Babu Moger
2018-02-24  2:30 ` [PATCH v2 1/5] target/i386: Fix a minor typo found while reviwing Babu Moger
2018-02-24  2:30   ` [Qemu-devel] " Babu Moger
2018-02-28 17:38   ` Radim Krčmář
2018-02-28 17:38     ` [Qemu-devel] " Radim Krčmář
2018-02-28 18:49     ` Eric Blake
2018-02-28 18:49       ` [Qemu-devel] " Eric Blake
2018-02-28 21:20       ` Moger, Babu
2018-02-28 21:20         ` [Qemu-devel] " Moger, Babu
2018-02-28 21:12     ` Moger, Babu
2018-02-28 21:12       ` [Qemu-devel] " Moger, Babu
2018-02-24  2:30 ` [PATCH v2 2/5] target/i386: Populate AMD Processor Cache Information Babu Moger
2018-02-24  2:30   ` [Qemu-devel] " Babu Moger
2018-02-28 18:08   ` Radim Krčmář
2018-02-28 18:08     ` [Qemu-devel] " Radim Krčmář
2018-03-01 15:55     ` Moger, Babu
2018-03-01 15:55       ` [Qemu-devel] " Moger, Babu
2018-03-01 19:56       ` Radim Krčmář [this message]
2018-03-01 19:56         ` Radim Krčmář
2018-03-02 16:50         ` Moger, Babu
2018-03-02 16:50           ` [Qemu-devel] " Moger, Babu
2018-02-24  2:30 ` [PATCH v2 3/5] target/i386: Add support for CPUID_8000_001E for AMD Babu Moger
2018-02-24  2:30   ` [Qemu-devel] " Babu Moger
2018-02-28 18:24   ` Radim Krčmář
2018-02-28 18:24     ` [Qemu-devel] " Radim Krčmář
2018-02-28 22:18     ` Moger, Babu
2018-02-28 22:18       ` [Qemu-devel] " Moger, Babu
2018-03-01 19:57       ` Radim Krčmář
2018-03-01 19:57         ` [Qemu-devel] " Radim Krčmář
2018-03-02 16:50         ` Moger, Babu
2018-03-02 16:50           ` [Qemu-devel] " Moger, Babu
2018-02-24  2:30 ` [PATCH v2 4/5] target/i386: Enable TOPOEXT feature on AMD EPYC CPU Babu Moger
2018-02-24  2:30   ` [Qemu-devel] " Babu Moger
2018-02-24  2:30 ` [PATCH v2 5/5] target/i386: Remove generic SMT thread check Babu Moger
2018-02-24  2:30   ` [Qemu-devel] " Babu Moger

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=20180301195616.GA29001@flask \
    --to=rkrcmar@redhat.com \
    --cc=Babu.Moger@amd.com \
    --cc=Gary.Hook@amd.com \
    --cc=ehabkost@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=pixo@polepetko.eu \
    --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 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.