runaway intr problems: powerd and/or hw.acpi.cpu.cx_lowest related

Doug Barton dougb at
Mon Aug 23 03:17:47 UTC 2010

Thanks to help from Andriy I've been working on narrowing down the cause 
of my "runaway intr" problems and we've found some interesting things. 
First, if I use neither powerd nor set hw.acpi.cpu.cx_lowest less than 
C1 things seem to work fine. Using one or the other sort of works, but 
between the 2 powerd seems to cause the most problems.

However, the more interesting thing is that generally the problem seems 
to be caused by contention on IRQ 20 between the following:
     20 (ehci0)
     20 (uhci0)
     20 (hpet0)

If I set the following in loader.conf:

Then everything works (where "everything" is 40 minutes or so of 
watching a video that previously caused the runaway problem consistently 
in about 10-20 minutes, although in the past it sometimes took hours to 
manifest). Or, if I build a kernel with no USB (so IRQ 20 is no longer 
shared) then once again, everything works (as above) using:
kern.eventtimer.timer1: LAPIC
kern.eventtimer.timer2: HPET
(I.e., the default)

I also got another interesting set of data today from a "runaway intr" 
situation that did not involve swi:4. The symptoms were the same as 
previously, but the devices involved were totally different. This may 
have to do with the fact that I switched back to ULE for the testing 
today, and/or I hadn't set cx_lowest=C3.

This was with ULE + USB in the kernel, LAPIC/HPET, cx_lowest=C1, but 
running powerd with the following:
powerd_flags="-a adaptive -b adaptive -n adaptive"

... and so it goes,



	Improve the effectiveness of your Internet presence with
	a domain name makeover!

	Computers are useless. They can only give you answers.
			-- Pablo Picasso

More information about the freebsd-current mailing list