From owner-freebsd-smp Mon Mar 17 1:15:13 2003 Delivered-To: freebsd-smp@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1AA6237B401; Mon, 17 Mar 2003 01:15:12 -0800 (PST) Received: from c-24-130-253-104.we.client2.attbi.com (c-24-130-253-104.we.client2.attbi.com [24.130.253.104]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2EEC943FBD; Mon, 17 Mar 2003 01:15:11 -0800 (PST) (envelope-from obrien@c-24-130-253-104.we.client2.attbi.com) Received: from localhost (localhost [127.0.0.1]) by c-24-130-253-104.we.client2.attbi.com (8.11.1/8.11.1) with ESMTP id h2H9EXl00756; Mon, 17 Mar 2003 01:14:33 -0800 (PST) (envelope-from obrien@c-24-130-253-104.we.client2.attbi.com) Message-Id: <200303170914.h2H9EXl00756@c-24-130-253-104.we.client2.attbi.com> X-Mailer: exmh version 2.2 06/23/2000 with version: MH 6.8.4 #1[UCI] To: John Baldwin Cc: freebsd-smp@freebsd.org Subject: Re: Question about number of CPUs In-reply-to: Your message of "Thu, 13 Mar 2003 11:17:49 EST." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 17 Mar 2003 01:14:33 -0800 From: "Mike O'Brien" Sender: owner-freebsd-smp@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org A reminder: I'm running RELENG_4 on an Iwill DP533 motherboard with dual Xeons. I'm using this board because it's the only board I've found that supports both dual Xeon processors and an AGP slot. When we last left our hero, he was struggling with the fact that 'mptable' reports, and the SMP kernel activates, APIC IDs 0 and 1. This seems screwball; it should be reporting 0 and 2. Nevertheless, Windows XP, which must be using the ACPI table as opposed to the MP table, correctly finds four processors. John Baldwin said: > Humm, it does seem that your BIOS is broken and is reporting the two cores > on CPU 0 in the mptable. :-/ Certainly something is broken. Either it's doing that, or it's assigning APIC IDs 0 and 2 to the first physical CPU, and APIC IDs 1 and 3 to the second physical CPU. Whichever, the spec is being violated. The board is running the most current BIOS available from Iwill. This message is to report that I girded my loins and committed violent upon i386/mp_machdep.c. I short-circuited the sanity check on the APIC ID numbers, and using my a priori knowledge of the results of 'acpidump', I hotwired the cpu activation code in the second pass to activate the logical CPUS at the proper APIC IDs. To my eternal shame, this seems to have worked. Four processors are now activated and the resulting kernel seems stable. I'm not posting this code because no one not running this particular BIOS revision on this particular board should come anywhere near it. I will cheerfully burn this code at midnight at a crossroads and drive a stake through the ashes when the -STABLE kernel is updated to activate processors based on the ACPI table. Thanks for the guidance, folks. I couldn't have done it without you. Mike O'Brien To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message