[solved ?] i386/79080: acpi thermal changes freezes HP nx6110
Frederic Chardon
chardon.frederic at gmail.com
Wed Nov 14 13:15:57 PST 2007
Hello,
I found a workaround to avoid freeze while change _ACx state on
nx6110. In kernel, use
options SCHED_ULE
device apic
options AUTO_EOI_1
options AUTO_EOI_2
ULE and apic allow the freeze to last only a few second (without it, I
never waited more than 10 minutes but I supposed it can be long...).
AUTO_EOI_1 and AUTO_EOI_2 have no impact without ULE and apic.
Separately they don't have noticeable effect.
Now when changing thermal mode the number of interrupts dropped from
3000 to around 50. Here is what I obtain after repeated cycles of big
CPU activity / idle time (thanks boinc, it is very usefull to quickly
make heat).
$21:51|fredzio@/home::>vmstat -i
interrupt total rate
irq1: atkbd0 15716 1
irq9: acpi0 7293 0
irq12: psm0 1492 0
irq14: ata0 121152 10
irq16: bfe0 drm0 34598 3
irq22: fwohci0 3 0
irq23: uhci0 ehci0 136853 12
cpu0: timer 22099902 1999
Total 22417009 2028
I still don't know if the acpi table is buggy, when I try to compile
it with iasl there is just a warning about a return value not used. I
am a complete newby in these things, some research make me think that
there may be a problem in APIC:
Type=INT Override
BUS=0
IRQ=0
INTR=2
Flags={Polarity=conforming, Trigger=conforming}
Type=INT Override
BUS=0
IRQ=9
INTR=9
Flags={Polarity=active-hi, Trigger=level}
I read that IRQ 2 and IRQ 9 (used in acpi0 in my case) are somewhat
linked together. If os, shouldn't they have same parameters? Moreover
in the archives there is a mail stating that PCI interrupt should be
level/lo. I suppose acpi is not on isa bus, so it must be PCI. Am I
right? If so, should I change values? Both flags? I don't care a lot
if I break OS but I am a bit more worried about hardware...
Anyway, now the laptop is usable, I hope this can be useful if someone
else have interrupt trouble with acpi.
Regards
Fred
More information about the freebsd-acpi
mailing list