Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 04 Feb 2003 15:41:54 -0500 (EST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Terry Lambert <tlambert2@mindspring.com>
Cc:        Brendon and Wendy <brendy33@attbi.com>, Chris Luke <chrisy@flix.net>, freebsd-smp@freebsd.org
Subject:   Re: mp_machdep.c patch
Message-ID:  <XFMail.20030204154154.jhb@FreeBSD.org>
In-Reply-To: <3E4021D4.7D1FCD43@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On 04-Feb-2003 Terry Lambert wrote:
> John Baldwin wrote:
>> > You have to enable HT in the BIOS.  If it is not enabled in the
>> > BIOS, it will not add entries to the MP Table for the virtual
>> > processors, and they will not be recognized.
>> 
>> This is not correct.  Some BIOS's list all virtual processors in
>> the mptable (in which case the HTT patch is not needed and basically
>> has no affect) but most only list the first core in each physical
>> CPU.  Enabling/disabling HT in the BIOS usually only affects ACPI's
>> MADT table, not the MP table.  The HT patch I wrote doesn't use the
>> BIOS at all.  It _only_ uses the values in registers returned from
>> cpuid.
> 
> I have personal experience with a machine that modifies the
> contents of the MP Table, based on the BIOS settings, with
> regard to hyperthreading.

These are in the vast minority.

> The problem with the use of the "cpuid 1" instruction to count
> the number of cores on a processor is that doing this does not
> take into account user settings in the BIOS, where hyperthreading
> is intentionally being disabled, for whatever reason.

Yes, which is why the real solution for 5.x going forward is to
use ACPI's MADT.

> One question this raises is whether or not ACPI would indicate
> "present, but disabled" vs. "not present".  The FALLBK approach
> requires the former, if BIOS controls are to be maintained.  This
> is likely BIOS implementation dependent, unfortunately: if it's
> even possible, some vendor likely implements their BIOS by making
> the entries disappear from ACPI.

ACPI enumerates present and disabled CPU's as present and disabled.
The ACPI support is on my todo list, btw, but first I have to rework
the APIC_IO support to work well with ACPI.

-- 

John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




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