get count of interrupts before ISR?

Hi,

I have a device which is supposed to be generating interrupts but my ISR is never getting called on a certain machine. The same device and driver works fine on a machine with a somewhat different architecture, with my ISR being called.

I would like to see the raw count of interrupts from the device. In a *nix system, I could just do ‘cat /proc/interrupts’, but I don’t see a way to get this in Windows. I have set up a kernel debugging connection over Ethernet, and I can break in and see regs, variables, etc.

Does anyone know a way to do this?

You can use PCIScope software from APSoft, Germany at www.tssc.de

I always put ETW tracing in a driver, including the ISR which I like to measure the duration of. The TraceLogging ETW library is REALLY easy to get basic logging working (like a dozen lines, I recently posted about this on NTDEV). I suppose you could also use WPP tracing if that’s your preference.

You can also put an interlocked counter incremented in your ISR and write the log event with this count, like for a request, in some lower bandwidth path. My memory is writing a TraceLogging event take in the vicinity of 0.3uSec, although if you are generating 500K events/sec, it burns though trace buffer memory pretty fast.

If you use the ETWGuid utility to generate a standard hashed provider GUID, you can then just use the provider name in TraceView and not the GUID.

AFIK there nothing exactly like /proc/interrupts, although there is some general interrupt profiling with the Windows Performance Recorder.

Jan

-----Original Message-----
From: xxxxx@lists.osr.com On Behalf Of xxxxx@excalibur.co.il xxxxx@lists.osr.com
Sent: Wednesday, August 22, 2018 9:02 AM
To: Kernel Debugging Interest List
Subject: [windbg] get count of interrupts before ISR?

Hi,

I have a device which is supposed to be generating interrupts but my ISR is never getting called on a certain machine. The same device and driver works fine on a machine with a somewhat different architecture, with my ISR being called.

I would like to see the raw count of interrupts from the device. In a *nix system, I could just do ‘cat /proc/interrupts’, but I don’t see a way to get this in Windows. I have set up a kernel debugging connection over Ethernet, and I can break in and see regs, variables, etc.

Does anyone know a way to do this?


WINDBG is sponsored by OSR

OSR is hiring!! Info at http://www.osr.com/careers

MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers!
Details at http:

To unsubscribe, visit the List Server section of OSR Online at http:</http:></http:>