x86: finding interrupts that aren't being accounted for?

Adrian Chadd adrian at freebsd.org
Mon Apr 6 20:37:44 UTC 2015


On 6 April 2015 at 12:01, Rui Paulo <rpaulo at me.com> wrote:
> On Monday 06 April 2015 00:21:29 Adrian Chadd wrote:
>> Hi,
>>
>> I have an .. odd problem on a Lenovo X230.
>>
>> I just threw in a very old wifi card (Intel 3945) into the expresscard
>> (pcie) slot. Now, we don't have any pcie-hp support in -HEAD just yet,
>> but i wasn't expecting the system to crawl to a halt.
>>
>> When I unplug it, everything returns to normal.
>>
>> Other cards don't do this.
>>
>> So, I figured it may be interrupt spam - but vmstat -ia shows no
>> interrupts going crazy.
>>
>> pmcstat -S CPU_CLK_UNHALTED_CORE -T -w 5 doesn't register anything
>> either - only a handful of background samples.
>>
>> However, /counter/ mode pmc tells a different story - pmcstat -s
>> CPU_CLK_UNHALTED_CORE -w 1 shows all four cores going at 110% when the
>> card is inserted, with brief periods of idle. Once I remove the card,
>> the counters go back down to zero.
>>
>> My working theory is: something is chewing CPU and it's likely
>> interrupts, but if it is, it's something far, far earlier than the x86
>> interrupt C code, which counts interrupts and spurious events.
>>
>> So - has anyone diagnosed this stuff on FreeBSD/x86 before? I was kind
>> of hoping we'd at least get accurate statistics about spurious
>> interrupts, and if we don't, I'd like to understand why.
>
> If the cores are being used, you should be getting some samples as to where
> the PC is.  pmcstat doesn't show that? How about DTrace?

Nope, nothing. Nothing at all shows up in the sample based checks.


-adrian


More information about the freebsd-arch mailing list