* BIOS implementors disabling the LAPIC
@ 2007-07-31 8:06 John Sigler
2007-07-31 10:27 ` Maciej W. Rozycki
0 siblings, 1 reply; 5+ messages in thread
From: John Sigler @ 2007-07-31 8:06 UTC (permalink / raw)
To: linux-kernel; +Cc: linux-rt-users
I have several systems here where Linux tells me:
Local APIC disabled by BIOS -- you can enable it with "lapic"
As far as I understand, the Local APIC was integrated directly to the
CPU 12-15 years ago. Why would a BIOS implementor choose to disable it?
(And what does it mean to "disable" the LAPIC?)
Note: the motherboard does not provide an IO-APIC.
I've ask the kernel to re-enable the LAPIC, and was able to use OProfile
in hardware counter mode, i.e. it seems to work fine.
Regards.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: BIOS implementors disabling the LAPIC
2007-07-31 8:06 BIOS implementors disabling the LAPIC John Sigler
@ 2007-07-31 10:27 ` Maciej W. Rozycki
2007-07-31 12:32 ` John Sigler
0 siblings, 1 reply; 5+ messages in thread
From: Maciej W. Rozycki @ 2007-07-31 10:27 UTC (permalink / raw)
To: John Sigler; +Cc: linux-kernel, linux-rt-users
On Tue, 31 Jul 2007, John Sigler wrote:
> As far as I understand, the Local APIC was integrated directly to the CPU
> 12-15 years ago. Why would a BIOS implementor choose to disable it?
Because they are lazy/incapable/out-of-time/select-your-favourite-excuse.
For the chip to work you have to provide some minimal support in the
firmware, in particular for the trickier paths of execution in the system
management mode. The system still works with the Local APIC disabled, so
why bother?
> (And what does it mean to "disable" the LAPIC?)
The LINT0 and LINT1 inputs of the APIC are routed straight to the INT and
NMI inputs of the CPU respectively and the rest of the APIC logic becomes
inactive (tri-stated, etc.).
Maciej
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: BIOS implementors disabling the LAPIC
2007-07-31 10:27 ` Maciej W. Rozycki
@ 2007-07-31 12:32 ` John Sigler
2007-07-31 12:55 ` Maciej W. Rozycki
0 siblings, 1 reply; 5+ messages in thread
From: John Sigler @ 2007-07-31 12:32 UTC (permalink / raw)
To: Maciej W. Rozycki; +Cc: linux-kernel, linux-rt-users
Maciej W. Rozycki wrote:
> John Sigler wrote:
>
>> As far as I understand, the Local APIC was integrated directly to the CPU
>> 12-15 years ago. Why would a BIOS implementor choose to disable it?
>
> Because they are lazy/incapable/out-of-time/select-your-favourite-excuse.
> For the chip to work you have to provide some minimal support in the
> firmware, in particular for the trickier paths of execution in the system
> management mode. The system still works with the Local APIC disabled, so
> why bother?
The motherboard manufacturer (well, their level 1 support, anyway) told
me I could "safely enable the LAPIC". If it is safe to enable the LAPIC,
then why are they disabling it in the BIOS? (They weren't able to tell
me whether their BIOS triggers SMIs or not...)
Is this a "either works or doesn't" situation where hell should break
loose if I try to enable the LAPIC and it's not supported by the
motherboard, or is this a "you will silently lose data at the worst
possible time" situation?
>> (And what does it mean to "disable" the LAPIC?)
>
> The LINT0 and LINT1 inputs of the APIC are routed straight to the INT and
> NMI inputs of the CPU respectively and the rest of the APIC logic becomes
> inactive (tri-stated, etc.).
If that were the case, then I could not enable the LAPIC and have NMIs
work, right?
Regards.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: BIOS implementors disabling the LAPIC
2007-07-31 12:32 ` John Sigler
@ 2007-07-31 12:55 ` Maciej W. Rozycki
0 siblings, 0 replies; 5+ messages in thread
From: Maciej W. Rozycki @ 2007-07-31 12:55 UTC (permalink / raw)
To: John Sigler; +Cc: linux-kernel, linux-rt-users
On Tue, 31 Jul 2007, John Sigler wrote:
> The motherboard manufacturer (well, their level 1 support, anyway) told me I
> could "safely enable the LAPIC". If it is safe to enable the LAPIC, then why
> are they disabling it in the BIOS? (They weren't able to tell me whether
> their BIOS triggers SMIs or not...)
Ask them.
> Is this a "either works or doesn't" situation where hell should break loose if
> I try to enable the LAPIC and it's not supported by the motherboard, or is
> this a "you will silently lose data at the worst possible time" situation?
It could be either. For example some IBM hardware used to be known to
have problems, like the 8254 timer freezing occasionally, when the APIC
was used and the NMI watchdog enabled. On some laptops you would get an
instant hard lockup if you enabled the APIC and used one of the special
key combinations (whether on purpose or by chance) used to adjust display
brightness, etc..
> If that were the case, then I could not enable the LAPIC and have NMIs work,
> right?
It depends on what you want to use NMIs for. For their PC/AT compatible
purpose, that is reporting of memory parity/ECC and bus errors, it works
in either mode. For any other purpose you need an APIC.
Maciej
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: BIOS implementors disabling the LAPIC
@ 2007-07-31 12:53 Gregory Haskins
0 siblings, 0 replies; 5+ messages in thread
From: Gregory Haskins @ 2007-07-31 12:53 UTC (permalink / raw)
To: linux.kernel; +Cc: macro, linux-kernel, linux-rt-users
On Tue, 2007-07-31 at 14:32 +0200, John Sigler wrote:
> The motherboard manufacturer (well, their level 1 support, anyway) told
> me I could "safely enable the LAPIC". If it is safe to enable the LAPIC,
> then why are they disabling it in the BIOS?
I would guess that because they don't have an IOAPIC, they figured they
don't need the APIC and didn't bother to write support for it. In
reality, other features of the APIC are useful other than IOAPIC routing
(e.g. LVTT) so as you have discovered, you end up with reduced
functionality for probably no good reason.
> Is this a "either works or doesn't" situation where hell should break
> loose if I try to enable the LAPIC and it's not supported by the
> motherboard, or is this a "you will silently lose data at the worst
> possible time" situation?
You will most likely be fine.
>
> >> (And what does it mean to "disable" the LAPIC?)
> >
> > The LINT0 and LINT1 inputs of the APIC are routed straight to the INT and
> > NMI inputs of the CPU respectively and the rest of the APIC logic becomes
> > inactive (tri-stated, etc.).
>
> If that were the case, then I could not enable the LAPIC and have NMIs
> work, right?
No, again you should be fine. All this means is that LINT0/1 go to
defaults of "EXTINT" and "NMI" when the APIC is disabled. When they are
enabled, the programming of the LVT for LINT0/1 defines what they are.
When you enable it, linux will start programming the LVT and should
continue to use NMI in whatever way it sees fit.
The one way you will get screwed is if there is some routing information
that *should* be in the ACPI tables that is missing due to the lack of
support. I don't think you will have an issue, but I figured it should
mention its not guaranteed you wont either. So don't sue me... ;)
Regards,
-Greg
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-07-31 12:55 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-31 8:06 BIOS implementors disabling the LAPIC John Sigler
2007-07-31 10:27 ` Maciej W. Rozycki
2007-07-31 12:32 ` John Sigler
2007-07-31 12:55 ` Maciej W. Rozycki
-- strict thread matches above, loose matches on Subject: below --
2007-07-31 12:53 Gregory Haskins
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.