From mboxrd@z Thu Jan 1 00:00:00 1970 From: cerise@armory.com Subject: Re: LAPCI disabled for second Processor in 2.6.8-11-amd64-k8-smp kernel - need help reading source code Date: Thu, 29 Dec 2005 06:53:20 -0800 Message-ID: <20051229145320.GA5882@boogeyman> References: Mime-Version: 1.0 Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-smp-owner@vger.kernel.org List-Id: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-smp@vger.kernel.org On Wed, Dec 28, 2005 at 08:41:19PM +0530, Siju George wrote: > What is LAPIC? LAPIC is the Local Advanced Programmable Interrupt Control. In short, it maps interrupts from the rest of the system to interrupt lines to the processor. One reason it's programmable rather than a direct line is so that various interrupts can be multiplexed and one can use the same line for, say, any PCI device and the PCI bus will sort out which one the CPU should be talking to. > Why is it disabled for the second processor? > Is it normal beavior? > From lines 121-127 I find this. > > ----------------------------- > case ACPI_MADT_LAPIC: > { > struct acpi_table_lapic *p = > (struct acpi_table_lapic*) header; > printk(KERN_INFO PREFIX "LAPIC (acpi_id[0x%02x] > lapic_id[0x%02x] %s)\n", > p->acpi_id, p->id, > p->flags.enabled?"enabled":"disabled"); > } > ---------------------------------- > Could some one who works on the kernel or who knows C please interpret > this for me? In short, this says that if p->flags.enabled is non-zero, then the LAPIC is enabled. I can't find where p->flags.enabled is actually set (though I'll admit that I didn't look very hard). I suspect that it's read out of the CPU info and your board is choosing to disable it rather than Linux. -Phil/CERisE