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

Home NTDEV

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/


Re: Maximum interrupts per second

OSR_Community_UserOSR_Community_User Member Posts: 110,217
> Thanks to all that have taken the time to reply. Your
> comments and insights
> are deeply appreciated. However, can anyone point to some solid
> documentation or a white paper on this topic?

I don't think you're going to find the "documentation" that you're looking
for. Clearly, the rate at which interrupts can be handled depends on a
number of things outside of NT:
-- Type of CPU (Intel, Alpha, etc.)
-- Speed of CPU
-- Number of CPUs
-- Speed of bus
-- Interrupt hardware (PCI (how many bridges?), ISA, etc.)
-- Amount of work in the ISR (tiny, large)
-- Amount of work in the DPC for the interrupt event

So, I suspect my NT system will function fine with a mere 20,000 interrupts
per second, but that would be assuming that there's no DPC work involved.

Frankly, in my opinion, there is NO WAY (even with a bunch of CPUs) that you
are going to handle 200,000 interrupts per second (especially with a
significantly-sized DPC like I'm sure you have), no matter what the hardware
is. I suspect that if you ignored the interrupt aspect and just looked at
your bus transfer rate, you'll find that you might flood the bus with that
much activity. For example, 200,000 operations per second of 512 bytes each
would surely flood a PCI bus.

However, by moving away from interrupts to a timer method, if the bus can
handle the throughput, you might have a chance with a fast system and
multiple CPUs.

Comments

  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    I once wrote a driver for a serial card for a pdp11/34
    that took over 30,000 interrupts per second. Get close
    enough to the iron and 200K/second should be cake. However
    NT and its DPC processing are quite another matter...


    -----Original Message-----
    From: Taed Nelson [mailto:[email protected]]
    Sent: Thursday, June 01, 2000 1:36 PM
    To: NT Developers Interest List
    Subject: [ntdev] Re: Maximum interrupts per second


    > Thanks to all that have taken the time to reply. Your
    > comments and insights
    > are deeply appreciated. However, can anyone point to some solid
    > documentation or a white paper on this topic?

    I don't think you're going to find the "documentation" that you're looking
    for. Clearly, the rate at which interrupts can be handled depends on a
    number of things outside of NT:
    -- Type of CPU (Intel, Alpha, etc.)
    -- Speed of CPU
    -- Number of CPUs
    -- Speed of bus
    -- Interrupt hardware (PCI (how many bridges?), ISA, etc.)
    -- Amount of work in the ISR (tiny, large)
    -- Amount of work in the DPC for the interrupt event

    So, I suspect my NT system will function fine with a mere 20,000 interrupts
    per second, but that would be assuming that there's no DPC work involved.

    Frankly, in my opinion, there is NO WAY (even with a bunch of CPUs) that you
    are going to handle 200,000 interrupts per second (especially with a
    significantly-sized DPC like I'm sure you have), no matter what the hardware
    is. I suspect that if you ignored the interrupt aspect and just looked at
    your bus transfer rate, you'll find that you might flood the bus with that
    much activity. For example, 200,000 operations per second of 512 bytes each
    would surely flood a PCI bus.

    However, by moving away from interrupts to a timer method, if the bus can
    handle the throughput, you might have a chance with a fast system and
    multiple CPUs.

    ---
    You are currently subscribed to ntdev as: [email protected]
    To unsubscribe send a blank email to $subst('Email.Unsub')
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

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 13-17 May 2024 Live, Online
Developing Minifilters 1-5 Apr 2024 Live, Online
Internals & Software Drivers 11-15 Mar 2024 Live, Online
Writing WDF Drivers 20-24 May 2024 Live, Online