NotebookForums.com › Forums › General Notebook Discussions › Linux & Other OS's › hda: lost interrupt
New Posts  All Forums:Forum Nav:

hda: lost interrupt

post #1 of 6
Thread Starter 
I have had some major headaches with compiling kernels for my 4760, because almost every one I have tried, I have ended up getting the error message "hda: lost interrupt" on boot. (and sometimes "hdc: lost interrupt" too.) This would appear repeatedly starting at about the point of the partition check during bootup. After that the bootup process would halt and that message would just repeat, every few seconds, forever. Only stock kernels didn't seem to have this problem.

The kernels I have tried to compile are 2.2.25, 2.4.20, 2.4.21, and 2.6.0-test1. Only the 2.6.0-test1 kernel didn't show this problem. It seemed to be related to the SMP option, but turning that off didn't seem to help.

Well, after much agonizing I found a boot option to fix it.
HTML Code:
boot: linux noapic
There are about three 'apic' related config options if you grep the 2.2.25 kernel config file, but I haven't found a way to turn them off with menuconfig. The boot option seems to do the trick just fine.

Hope this helps someone.
post #2 of 6
i remember hackus had some problems with his apic while trying to use redhat 9. i think a lot of sagers have a faulty apic. (and now that i think about it, it could very well be a design flaw; and may even be responsible for the whole 'hang on install' problem during autodetection)

the Local Advanced Programmable Interrupt Controller is a component of the processor for generating and accepting interrupts, and is also a timer. the I/O APIC is a separate chip linked to the local apic that handles forwarding of interrupts to specific cpus in a multiprocessor system. so yes, it is related to smp - when you enable smp, both the Local APIC and the I/O APIC are automatically enabled; smp needs it, after all. when you disable smp, you should see a couple options, 'Local APIC on uniprocessor systems' and 'i/o apic support' or something like that. i can't recall what the third one is at the moment. that's the way it is in 2.4; i'm not sure what it is in 2.2, never bothered with that series.

(sorry if this is obvious info that everyone knew)

actually, if the i/o apic is a separate chip for forwarding interrupts, and it's enabled with smp... we only have one processor, though, because we're only hyperthreading... could that be a problem, trying to route to a different cpu when there's only one? or maybe it's a problem because uniprocessor motherboards don't usually have an i/o apic? i'm not a computer hardware architect, so i don't know. just speculating at this point.

i think it's been fixed in 2.6 because the dev tree has a lot of hyperthreading enhancements and fixes... hyperthreading (as a viable home consumer option) is so new that the patches probably haven't made their way into 2.4.
post #3 of 6
Thread Starter 
Quote:
Originally posted by xiphux
(sorry if this is obvious info that everyone knew)
Not all all - as always thanks for the info! There was very little that I found when I searched the web about it.

Quote:
actually, if the i/o apic is a separate chip for forwarding interrupts, and it's enabled with smp... we only have one processor, though, because we're only hyperthreading... could that be a problem, trying to route to a different cpu when there's only one? or maybe it's a problem because uniprocessor motherboards don't usually have an i/o apic? i'm not a computer hardware architect, so i don't know. just speculating at this point.
I'd speculate no, mainly because I am pretty sure I read advice in a couple of places to compile in SMP support even if you only have one processor, for one reason or another. So the impression I have is that SMP support doesn't inherently break when there is only one CPU. Who can say though...

I guess what I wonder is, does turning off apic as a boot option make hyperthreading support impossible and thus disable it? Shouldn't be too hard to find out...
post #4 of 6
hmm, i've never heard that before. compiling smp in regardless, i mean. i know that it changes the way that almost everything is compiled, though... and it could possibly add more overhead (trying to distribute and schedule parallel threads evenly when there's no need to). i don't know for sure, though. it wouldn't break with one cpu because it doesn't have to do any irq routing at all. but with hyperthreading enabled, it essentially sees two logical cpus - so the kernel (a non-hyperthreading-aware one like 2.4) may see that and try to call the i/o apic to route to each cpu in separate places when they are, in fact, both the same cpu in the same place. dunno, whatever, i'm not an smp expert.

if you disabled the local apic, then it would possibly still support smp... some motherboards have that functionality (or something similar) built in to work in place of a local apic. the question, then, is whether ours have that...

eh, whatever. i've officially switched to the dev kernels and have compiled my system with nptl and converted my lvm to lvm2, so i really can't turn back to 2.4 even if i wanted to. it's not really a big deal for me anymore.

although, as always, i'm still curious about the actual truth behind this. the quest for linux knowledge and all that...
post #5 of 6
my 2 cents:
Somewhere in the Kernel-HOWTO (i think), there is a recommendation to always use SMP. Doesn't say why, just says its a good idea. If anyone knows why I would be interested to know...

I had the same problem. A kernel built using vanilla-sources with SMP enabled would never boot, although a non-SMP kernel would. I found that using the gentoo-sources kernel I am able to boot with SMP. The only problem I have seen with the gentoo-sources kernel is that my 8139too card does not work. (Most likely I messed up the kernel build) That is a story for a different thread.

Thanks for the noapic boot option, that solves many of my problems.

David Stanek
post #6 of 6
Thread Starter 
Quote:
Originally posted by dstanek
The only problem I have seen with the gentoo-sources kernel is that my 8139too card does not work. (Most likely I messed up the kernel build) That is a story for a different thread.
David, thanks for your input. One thing I found with the 4760's ethernet card when building my own kernel is that the 8139too needs to have the option "Support for uncommon RTL-8139 rev. K" or "Support for older RTL-8129/8130 boards" (not sure which; maybe both) enabled. Until I tried turning these on the LAN card would not exchange packets.

HTH, Ratha
New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: Linux & Other OS's
NotebookForums.com › Forums › General Notebook Discussions › Linux & Other OS's › hda: lost interrupt