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/


Maximum interrupts per second

OSR_Community_UserOSR_Community_User Member Posts: 110,217
Somewhere in the course of my travels in developing NT device drivers I came
across one of those magic numbers that represents the maximum number of
interrupts per second: 10,000. Does NT begin governing interrupts once
interrupts exceeds 10K per second, and if so how does this scale across
multiple CPU's? It seems that we have a customer that wants to use 20 PCI
fibrechannel adapters for a large storage system, and is expecting on the
order of 200,000 interrupts per second. Will NT or Win2K choke when it only
has about 5 microseconds between interrupts?

Comments

  • Paul_BunnPaul_Bunn Member Posts: 251
    That doesn't make any sense to me. A single FC controller can handle 120
    odd devices each. Does he really need to connect to more than 2000 devices
    on a single system ? Is it possible to use a Fibre-switch (eg
    http://www.vixel.com) to reduce the number of controllers required ?

    Regards,

    Paul Bunn, UltraBac.com, 425-644-6000
    Microsoft MVP - WindowsNT/2000
    http://www.ultrabac.com



    > -----Original Message-----
    > From: Gary Little [mailto:[email protected]]
    > Sent: Thursday, June 01, 2000 8:14 AM
    > To: NT Developers Interest List
    > Subject: Maximum interrupts per second
    >
    > Somewhere in the course of my travels in developing NT device drivers I
    came across one of those magic numbers that represents the maximum number of
    interrupts per second: 10,000. Does NT begin governing interrupts once
    interrupts exceeds 10K per second, and if so how does this scale across
    multiple CPU's? It seems that we have a customer that wants to use 20 PCI
    fibrechannel adapters for a large storage system, and is expecting on the
    order of 200,000 interrupts per second. Will NT or Win2K choke when it only
    has about 5 microseconds between interrupts?
    >
  • Gregory_G._DyessGregory_G._Dyess Member - All Emails Posts: 386
    I'm no expert here, but I heard somewhere that NT cannot respond to that
    many interrupts per second. It's something to do with the latency in the
    interrupt dispatch logic (HW or SW I'm not sure). I may have something to
    do with the actual PCI bus(es).

    Greg

    > -----Original Message-----
    > From: [email protected]
    > [mailto:[email protected]] On Behalf Of Gary Little
    > Sent: Thursday, June 01, 2000 10:14 AM
    > To: NT Developers Interest List
    > Subject: Maximum interrupts per second
    >
    > Somewhere in the course of my travels in developing NT device drivers I
    > came across one of those magic numbers that represents the maximum number
    > of interrupts per second: 10,000. Does NT begin governing interrupts once
    > interrupts exceeds 10K per second, and if so how does this scale across
    > multiple CPU's? It seems that we have a customer that wants to use 20 PCI
    > fibrechannel adapters for a large storage system, and is expecting on the
    > order of 200,000 interrupts per second. Will NT or Win2K choke when it
    > only has about 5 microseconds between interrupts?
    >
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    I've dealt with very high interrupt rates before, and it will handle it
    without crashing, but of course, you'll eventually end up missing interrupts
    and the system will become completely unresponsive. Say goodbye to anything
    running in user mode or at passive level, and if your rate is really high,
    bye bye to anything at dispatch mode as well. Anything above 5,000 is high,
    but I've seen it go as high as 10,000 before.

    We redesigned our drivers to do "interrupt throttling", such that it kept
    track of the interrupt rate, and when it went above 1000 interrupts per
    second, it would disable interrupts from the device and instead switch to a
    timer-poll method. It worked out very well, and we ended up getting around
    twice the throughput while pegging the CPU just as much.

    If you have control over your drivers, I'd recommend looking into that.

    A number of Ethernet cards now do this, but I don't know how common it is
    with other devices.
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