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

Doug Barton dougb at FreeBSD.org
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:
kern.eventtimer.timer1="i8254"
kern.eventtimer.timer2="RTC"

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.

http://people.freebsd.org/~dougb/intr-out-3.txt

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,


Doug

-- 

	Improve the effectiveness of your Internet presence with
	a domain name makeover!    http://SupersetSolutions.com/

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



More information about the freebsd-current mailing list