Re: LAPCI disabled for second Processor in 2.6.8-11-amd64-k8-smp kernel - need help reading source code
[email protected] Thu, 29 Dec 2005 06:53:20 -0800
| Newsgroups | org.kernel.vger.linux-smp |
|---|---|
| Message-ID | <20051229145320.GA5882@boogeyman> |
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