Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Apr 2007 15:57:02 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Alex Povolotsky <tarkhil@webmail.sub.ru>
Cc:        FreeBSD Stable <freebsd-stable@freebsd.org>, freebsd-smp@freebsd.org, freebsd-hardware@freebsd.org
Subject:   Re: 6.2-RELEASE does not use second CPU on pentium D
Message-ID:  <200704251557.02688.jhb@freebsd.org>
In-Reply-To: <462FA9E5.5010300@webmail.sub.ru>
References:  <462F15B4.4010201@webmail.sub.ru> <200704251208.34248.jhb@freebsd.org> <462FA9E5.5010300@webmail.sub.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 25 April 2007 03:20:05 pm Alex Povolotsky wrote:
> John Baldwin wrote:
> > On Wednesday 25 April 2007 04:47:48 am Alex Povolotsky wrote:
> >   
> >> Hello!
> >>
> >> I have a Pentium D box, running 6.2-RELEASE. In dmesg, I see CPU#1 
> >> launched, but I never see any process running on it, and mptable shows
> >>
> >> cluster-one# mptable -verbose
> >>
> >>
> >>     
> > 
===============================================================================
> >   
> >> MPTable
> >>
> >>  looking for EBDA pointer @ 0x040e, found, searching EBDA @ 0x0009e800
> >>  searching CMOS 'top of mem' @ 0x0009e400 (633K)
> >>  searching default 'top of mem' @ 0x0009fc00 (639K)
> >>  searching BIOS @ 0x000f0000
> >>
> >>  MP FPS found in BIOS @ physical addr: 0x000fe200
> >>
> 
>> -------------------------------------------------------------------------------
> >>
> >> MP Floating Pointer Structure:
> >>
> >>   location:                     BIOS
> >>   physical address:             0x000fe200
> >>   signature:                    '_MP_'
> >>   length:                       16 bytes
> >>   version:                      1.4
> >>   checksum:                     0x9f
> >>   mode:                         Virtual Wire
> >>
> 
>> -------------------------------------------------------------------------------
> >>
> >> MP Config Table Header:
> >>
> >>   physical address:             0x000fe210
> >>   signature:                    'PCMP'
> >>   base table length:            64
> >>   version:                      1.4
> >>   checksum:                     0x7f
> >>   OEM ID:                       ''
> >>   Product ID:                   ''
> >>   OEM table pointer:            0x00000000
> >>   OEM table size:               0
> >>   entry count:                  1
> >>   local APIC address:           0xfee00000
> >>   extended table length:        0
> >>   extended table checksum:      0
> >>
> 
>> -------------------------------------------------------------------------------
> >>
> >> MP Config Base Table Entries:
> >>
> >> --
> >> Processors:     APIC ID Version State           Family  Model   Step    
> >> Flags
> >>                  0       0x14    BSP, usable     15      6       4       
> >> 0xbfebfbff
> >>
> >>
> >>     
> > 
===============================================================================
> >   
> >> while in dmesg
> >>
> >> Copyright (c) 1992-2007 The FreeBSD Project.
> >> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
> >>         The Regents of the University of California. All rights reserved.
> >> FreeBSD is a registered trademark of The FreeBSD Foundation.
> >> FreeBSD 6.2-RELEASE-p3 #2: Thu Apr 19 00:19:54 MSD 2007
> >>     tarkhil@cluster-one.zinester.com:/usr/obj/usr/src/sys/P4D
> >> WARNING: debug.mpsafenet forced to 0 as ipsec requires Giant
> >> WARNING: MPSAFE network stack disabled, expect reduced performance.
> >> Timecounter "i8254" frequency 1193182 Hz quality 0
> >> CPU: Intel(R) Pentium(R) D CPU 2.80GHz (2808.41-MHz 686-class CPU)
> >>   Origin = "GenuineIntel"  Id = 0xf64  Stepping = 4
> >>   
> >>
> >>     
> > 
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH
> >   
> >> ,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
> >>   Features2=0xe49d<SSE3,RSVD2,MON,DS_CPL,EST,CNTX-ID,CX16,<b14>,<b15>>
> >>   AMD Features=0x20100000<NX,LM>
> >>   AMD Features2=0x1<LAHF>
> >> real memory  = 1046757376 (998 MB)
> >> avail memory = 1015095296 (968 MB)
> >> ACPI APIC Table: <INTEL  DG965SS >
> >> FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
> >>  cpu0 (BSP): APIC ID:  0
> >>  cpu1 (AP): APIC ID:  1
> >> ioapic0: Changing APIC ID to 2
> >> ioapic0 <Version 2.0> irqs 0-23 on motherboard
> >>
> >> [...]
> >> SMP: AP CPU #1 Launched!
> >>
> >> The kernel is, of course, SMP.
> >>
> >> What can I do, where can I search for solution?
> >>
> >> Second core IS enabled in BIOS
> >> cluster-one# sysctl hw | grep cpu
> >> hw.ncpu: 2
> >> hw.acpi.cpu.cx_supported: C1/0
> >> hw.acpi.cpu.cx_lowest: C1
> >> hw.acpi.cpu.cx_usage: 100.00%
> >> cluster-one# sysctl machdep | grep cpu
> >> machdep.cpu_idle_hlt: 1
> >> machdep.hlt_cpus: 2
> >> machdep.hlt_logical_cpus: 0
> >> machdep.logical_cpus_mask: 2
> >>
> >> so second CPU is halted, attempt to start it with sysctl does not help
> >> Alex.
> >>     
> >
> > It's seeing it as an HTT thread.  Try 
> > changing 'machdep.hyperthreading_allowed'.
> >
> >   
> 
> Well, it is a Pentium D. It is supposed to have two cores, not just 
> hyperthreading! How can it be at all?

Because multicores actually show up as HTT and you have to do extra work to 
figure out if they are really cores or threads, and apparently 6.2 gets it 
wrong on your machine.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200704251557.02688.jhb>