cvs commit: src/sys/amd64/amd64 identcpu.c src/sys/i386/i386 identcpu.c

David O'Brien obrien at FreeBSD.org
Mon Oct 17 12:45:25 PDT 2005


On Mon, Oct 17, 2005 at 03:14:37PM -0400, Jung-uk Kim wrote:
> On Monday 17 October 2005 02:50 pm, David O'Brien wrote:
> > This is also given by:
> >     FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
> >
> > so what additional information is being given to the user?
> 
> Because users want to know whether they are using two dual-core CPUs 
> or four CPUs.  It is NOT redundant information.

What part of this don't they get from:
"CPU: Dual Core AMD Opteron(tm) Processor 280 (2392.92-MHz K8-class CPU)"
The Athlon64 X2 version is: "AMD Athlon(tm) 64 X2 Dual Core Processor 4800+"

> > A 1P/2C Athlon64 X2 system is identical to a 2P/1C Athlon-MP
> > system.  It is purely SMP and there is no preference to scheduling
> > on either core. And one gets full performance by scheduling on both
> > cores at the same time.
> 
> Sigh...  No, they are NOT the same.  

Yes they are - Athlon-MP is a northbridge-based system and thus both
cores share the same memory controller and have the same memory latency.

> 2P/1C can be configured as 
> ccNUMA.  1P/2C cannot, i.e., they share the memory controller.

So what??

What you are no doubt referring to is the "memory node interleave" BIOS
setting.  Note that K8 errata 101 has an affect that pretty much
nullifies the BIOS "memory node interleave" if you have ECC DRAM
scrubbing enabled.  I think most want ECC scrubbing enabled for
reliability.  K8 errata 101 doesn't affect all Opterons, but all BIOS's
I've seen are stupid and apply the errata 101 work around to all
Opteron's not just those revisions affected.

> > Please explain what you are trying to achive.  AMD sets CPUID.HTT
> > solely for the benfit of licensing issues of Microsoft products and
> > Red Hat. The FreeBSD license does not restrict the number of CPU's
> > one can use. The FreeBSD kernel should pretend CPUID.HTT isn't set.
> 
> What I am trying to achive is simple: I want to know how many physical 
> and/or logical cores I have in one CPU package.  It has nothing to do 
> with Hyper-Threading in fact.

If the words "Dual Core" above aren't clear enough, then for AMD print
out "N processors with X cores per processor".
BTW, what we mean by "CPU" is vague.  In AMD speak, one uses "processor"
or "socket", and "cores".

> >  In fact some Opteron BIOS's cause CPUID.HTT to not be set when
> > using dual-core CPU's.
> 
> That's broken BIOS by the spec.

Where is there a BIOS spec?  We truly need one in the x86 world, but we
don't have one today.  BTW, some revisions of the AMD BKDG implied it was
fine to have a knob in the BIOS controlling CPUID.HTT.  I've seen BIOS's
from Tyan and Iwill that had this knob.  The explanation for the nob was
to handling MS-Windows licensing.  

> AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and 
> System Instructions:
> http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24594.pdf

I am well aware of this document, what it says, and its purpose.
 
-- 
-- David  (obrien at FreeBSD.org)


More information about the cvs-src mailing list