Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.


Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/


get count of interrupts before ISR?

Ephraim_YawitzEphraim_Yawitz Member - All Emails Posts: 1
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?

Comments

  • MetekMetek Member - All Emails Posts: 53
    You can use PCIScope software from APSoft, Germany at www.tssc.de
  • Jan_BottorffJan_Bottorff Member - All Emails Posts: 471
    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: [email protected] <[email protected]> On Behalf Of [email protected] [email protected]
    Sent: Wednesday, August 22, 2018 9:02 AM
    To: Kernel Debugging Interest List <[email protected]>
    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://www.osr.com/seminars&gt;

    To unsubscribe, visit the List Server section of OSR Online at <http://www.osronline.com/page.cfm?name=ListServer&gt;
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Kernel Debugging 30 Mar 2020 OSR Seminar Space
Developing Minifilters 15 Jun 2020 LIVE ONLINE
Writing WDF Drivers 22 June 2020 LIVE ONLINE
Internals & Software Drivers 28 Sept 2020 Dulles, VA