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

David O'Brien obrien at FreeBSD.org
Mon Oct 17 11:50:26 PDT 2005


On Mon, Oct 17, 2005 at 02:30:40PM -0400, Jung-uk Kim wrote:
> On Monday 17 October 2005 01:28 pm, David O'Brien wrote:
> > On Mon, Oct 17, 2005 at 12:00:47PM -0400, Jung-uk Kim wrote:
> > > On Sunday 16 October 2005 04:58 am, David E. O'Brien wrote:
> > > > obrien      2005-10-16 08:58:27 UTC
> > > >
> > > >   FreeBSD src repository
> > > >
> > > >   Modified files:
> > > >     sys/amd64/amd64      identcpu.c
> > > >     sys/i386/i386        identcpu.c
> > > >   Log:
> > > >   For AMD processors, nullify CPUID.HTT.  FreeBSD has no need
> > > > for the information it conveys, and it is only confusing
> > > > people. This fixes incorrect output in the previous commit.
> > > >
> > > >   Revision  Changes    Path
> > > >   1.138     +9 -0      src/sys/amd64/amd64/identcpu.c
> > > >   1.147     +9 -0      src/sys/i386/i386/identcpu.c
> > >
> > > Have you verified you are not breaking `logical_cpus' in
> > > mp_machdep.c by doing this?
> 
> You still owe us this information.
> 
> > > Show me the 'incorrect' output or please back it out.
> >
> >     CPU: Dual Core AMD Opteron(tm) Processor 280 (2392.35-MHz
> > K8-class CPU) ..
> >     Physical/Logical cores: 2/2
> 
> Just for the people who still don't understand:
> 
>   Physical/Logical cores: 1/2	-> single core with HTT
>   Physical/Logical cores: 2/2	-> dual core without HTT
>   Physical/Logical cores: 2/4	-> dual core with HTT
> 
> BTW, I just committed the following because this commit broke it:
> http://docs.freebsd.org/cgi/mid.cgi?200510171551.j9HFpSRY074364
> 
> Now the per-CPU information is like this:
> 
>   Logical cores: 2	-> single core with HTT
>   Physical cores: 2	-> dual core without HTT

This is the AMD case - this is what I [tried to] fixed.
The correct output for my system is "Physical cores: 4".  This is also
given by:
    FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs

so what additional information is being given to the user?
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.

>   Physical cores: 2	-> dual core with HTT (two lines)
>   Logical cores: 4

This is the Intel case - my commit does not touch this.

> >     FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
> >      cpu0 (BSP): APIC ID:  0
> >      cpu1 (AP): APIC ID:  1
> >      cpu2 (AP): APIC ID:  2
> >      cpu3 (AP): APIC ID:  3
> 
> This is NOT per-CPU info.

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.  In fact some
Opteron BIOS's cause CPUID.HTT to not be set when using dual-core CPU's.
 
-- 
-- David  (obrien at FreeBSD.org)


More information about the cvs-src mailing list