2002-09-15 11:24:05

by Andriy Rysin

[permalink] [raw]
Subject: turning off APIC

If APIC is compiled in the kernel (wich is the case with most
distributions) when I start kernel with "noapic" option, APIC is getting
enabled anyway and only later gets disabled. This causes problems on
some VAIO notebooks - it seems like BIOS gets confused if APIC was
turned on (particularly on my laptop when I try to reboot from Linux it
hangs saying that thera problems with keyboard). That would be much
better to have an option to turn it off in the boot options and not to
recompile the kernel. Could somebody comment this please?
Please CC me on this email address.

TIA,
Andriy



2002-09-16 01:23:59

by Mikael Pettersson

[permalink] [raw]
Subject: Re: turning off APIC

On Sun, 15 Sep 2002 14:28:44 +0300, Andriy Rysin wrote:
>If APIC is compiled in the kernel (wich is the case with most
>distributions) when I start kernel with "noapic" option, APIC is getting
>enabled anyway and only later gets disabled. This causes problems on
>some VAIO notebooks - it seems like BIOS gets confused if APIC was
>turned on (particularly on my laptop when I try to reboot from Linux it
>hangs saying that thera problems with keyboard). That would be much
>better to have an option to turn it off in the boot options and not to
>recompile the kernel. Could somebody comment this please?
>Please CC me on this email address.

Which APIC? local or I/O? Please be specific.
"noapic" does not and never has had anything to do with the
local APIC, only the I/O APIC. There is currently no kernel
option for preventing the local APIC from being enabled if
the kernel was built with local APIC support.

You have four options:
1. Recompile with CONFIG_SMP=n and CONFIG_X86_LOCAL_APIC=n.
2. Run dmidecode on your Vaio, dig out the identification strings,
and add them to arch/i386/kernel/dmi_scan.c's local APIC
blacklist.
3. Add a __setup in arch/i386/kernel/apic.c after the declaration
for dont_enable_local_apic, which sets it to 1.
4. Tell Sony to fix the Vaio's BIOS.

/Mikael

2002-09-16 12:13:29

by Maciej W. Rozycki

[permalink] [raw]
Subject: Re: turning off APIC

On Mon, 16 Sep 2002, Mikael Pettersson wrote:

> Which APIC? local or I/O? Please be specific.
> "noapic" does not and never has had anything to do with the
> local APIC, only the I/O APIC. There is currently no kernel
> option for preventing the local APIC from being enabled if
> the kernel was built with local APIC support.

Well, "nosmp" does exactly that for a SMP-capable kernel -- it could be
trivially reused for a UP-APIC configuration (the case is obscure enough
not to invent another option).

--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: [email protected], PGP key available +

2002-09-16 19:49:31

by Andriy Rysin

[permalink] [raw]
Subject: Re: turning off APIC

>
> On Sun, 15 Sep 2002 14:28:44 +0300, Andriy Rysin wrote:
> >If APIC is compiled in the kernel (wich is the case with most
> >distributions) when I start kernel with "noapic" option, APIC is getting
> >enabled anyway and only later gets disabled. This causes problems on
> >some VAIO notebooks - it seems like BIOS gets confused if APIC was
> >turned on (particularly on my laptop when I try to reboot from Linux it
> >hangs saying that thera problems with keyboard). That would be much
> >better to have an option to turn it off in the boot options and not to
> >recompile the kernel. Could somebody comment this please?
> >Please CC me on this email address.
>
> Which APIC? local or I/O? Please be specific.
> "noapic" does not and never has had anything to do with the
> local APIC, only the I/O APIC. There is currently no kernel
> option for preventing the local APIC from being enabled if
> the kernel was built with local APIC support.
>
> You have four options:
> 1. Recompile with CONFIG_SMP=n and CONFIG_X86_LOCAL_APIC=n.
> 2. Run dmidecode on your Vaio, dig out the identification strings,
> and add them to arch/i386/kernel/dmi_scan.c's local APIC
> blacklist.
> 3. Add a __setup in arch/i386/kernel/apic.c after the declaration
> for dont_enable_local_apic, which sets it to 1.
> 4. Tell Sony to fix the Vaio's BIOS.
>
> /Mikael


Thanks Mikael, item 2) seems to be most reasonable. I did not know there
are different APICs, though what's interesting is the line in
kernel-parameters.txt

noapic [SMP,APIC] Tells the kernel not to make use of any
APIC that may be present on the system.

Note: not to make use of _ANY_ APIC that may be present......
I would suggest either "noapic" should turn off ALL APICs as is
described in the doc or fix the doc. Personally I like fist option
better though second is much simplier.

Andriy