Re: cannot compile sched_ule without options SMP

From: pluknet <pluknet_at_gmail.com>
Date: Sat, 2 May 2009 11:50:52 +0400
2009/5/2 Jung-uk Kim <jkim_at_freebsd.org>:
> On Thursday 30 April 2009 11:04 pm, pluknet wrote:
>> 2009/5/1 pluknet <pluknet_at_gmail.com>:
>> > 2009/5/1 Jeff Roberson <jroberson_at_jroberson.net>:
>> >> On Thu, 30 Apr 2009, pluknet wrote:
>> >>> 2009/4/30 Jeff Roberson <jroberson_at_jroberson.net>:
>> >>>> On SMP machines you should now see output like this:
>> >>>> FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
>> >>>> FreeBSD/SMP: 1 package(s) x 4 core(s) x 2 SMT threads
>> >>>>
>> >>>> If you detect any irregularities with kern.sched.topology_spec
>> >>>> or this dmesg
>> >>>> line please report them.
>> >>>
>> >>> Hi, Jeff.
>> >>>
>> >>> I have such mismatch. This is an Intel E7200.
>> >>>
>> >>> FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
>> >>> FreeBSD/SMP: 1 package(s) x 1 core(s) x 2 HTT threads
>> >>> cpu0 (BSP): APIC ID:  0
>> >>> cpu1 (AP/HT): APIC ID:  1
>> >>>
>> >>> So it should be instead: 1 package(s) x 2 core(s)
>> >>> cpu0 (BSP): APIC ID:  0
>> >>> cpu1 (AP): APIC ID:  1
>> >>
>> >> Can you please repeat the following steps as I have done here:
>> >
>> > (kgdb) p/x cpu_high
>> > $1 = 0x2
>> > (kgdb) p/x cpu_cores
>> > $2 = 0x1
>> > (kgdb) p/x cpu_logical
>> > $3 = 0x2
>> > (kgdb) p/x cpu_feature
>> > $4 = 0xbfebfbff
>> > (kgdb) p/x logical_cpus
>> > $5 = 0x2
>> > (kgdb) p/x hyperthreading_cpus
>> > $6 = 0x2
>>
>> Follow up myself:
>>
>> What is embarrassing me is HTT feature enabled. May the reason be
>> in a buggy CPUID ?
>
> No, the flag does not mean it supports Hyperthreading.  It means more
> than one logical core is supported (multi-threading) although the
> name didn't change for historical reason. ;-)
>

I see now.

> Can you try the attached patch?
>

Nice, it works!

cpu_mp_probe(): mp_ncpus = 2
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s)
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1

(kgdb) p/x cpu_high
$1 = 0xa
(kgdb) p/x cpu_cores
$2 = 0x2
(kgdb) p/x cpu_logical
$3 = 0x1
(kgdb) p/x cpu_feature
$4 = 0xbfebfbff
(kgdb) p/x logical_cpus
$5 = 0x2
(kgdb) p/x hyperthreading_cpus
$6 = 0x1


-- 
wbr,
pluknet
Received on Sat May 02 2009 - 05:50:54 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:47 UTC