Re: [PATCH 11/15] x86: move enabling of io_apic to prepare_cpus

From: Maciej W. Rozycki
Date: Tue Jun 10 2008 - 15:38:28 EST


On Tue, 10 Jun 2008, Yinghai Lu wrote:

> kernel should not assume io apic register is set right by firmware.

What is the basis of this assumption? Linux generally assumes the
chipset components have been placed by the firmware into a consistent
state. That does not necessarily mean suitable for Linux, hence the need
to reconfigure a bit here or there, but there should be no need to touch
components that are not going to be used by Linux directly. The I/O APIC
is no different.

> and kernel actually doesn't trust them, and clear the io apic registers.

The I/O APIC registers are cleared, because this is the only way you can
assure inconsistent configuration does not happen during reconfiguration.
For example two inputs using the same vector or set up into the ExtINTA
mode. The original intent of the code was not to paper over breakage in
the firmware. You are trying to change it and it can be done, but it has
to be justified well.

> that patch just move that early before enable error vector.

What I am saying repeatedly is clearing of the I/O APIC is not guaranteed
to happen for all the possible cases of Linux configuration. Which means
this is a partial solution only -- please try to propose a better one or
provide the original problem report so that someone else can have a look
at it. What's triggering the error interrupt for example? Is it
recoverable?

Maciej
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/