Why have DIRQLs ?

From: Ragnar (athragnar_at_yahoo.com)
Date: 02/09/04


Date: 9 Feb 2004 03:04:12 -0800

Hi

Russinovich writes in 'Inside NT interrupt handling' that, ".. NT does
not really prioritize general device interrupts. Even on Intel
processors, where hardware interrupts might have different IRQL
values, the assignments are arbitrary."

So why have DIRQLs. Do DIRQLs really serve any purpose ? Since the
assignments are anyway arbitrary, why not do away with the concept ?
Have all the devices at the same priority and program the i8259A in
Special Mask mode (OCW3 SSMM=1, SMM=1).

If we assume that all the devices are of the same priority, then we
need to ensure that the interrupts that they raise are handled in a
FCFS manner. Now if each interrupt can preempt every other, this will
not be possible unless we mask out all the interrupts till (assuming
NT's interrupt model) a DPC has been scheduled. So in that sense,
having a priority would be better since that would mask only a few
interrupts (the ones which are of a lower priority) than the case
where there are no DIRQLs since that would mean we would have to mask
all of them. Is this why DIRQLs are there ? But aren't the priorities
arbitrary anyway.

This is only for DIRQLs, not for IRQLs in general.

--
Ragnar


Relevant Pages

  • RE: Interrupt Priority
    ... Priority Among Simultaneous Exceptions and Interrupts ... Code Breakpoint Fault ... Faults from Fetching Next Instruction ...
    (microsoft.public.win32.programmer.kernel)
  • Re: Interrupt Priority
    ... Priority Among Simultaneous Exceptions and Interrupts ... Code Breakpoint Fault ... Faults from Fetching Next Instruction ...
    (microsoft.public.win32.programmer.kernel)
  • Re: [RFC][PATCH] irq: remove IRQF_DISABLED
    ... The "irq's disabled fastpath" thing has been there since pretty much day ... allowing higher priority interrupts to "preempt" ... lower priority ones, which this would effectively render useless. ... The problems with enabling irqs in hardirq handlers are that you get ...
    (Linux-Kernel)
  • Re: sio: lots of silo overflows on Asus K8V with Moxa Smartio C104H/PCI
    ... There must be bugs elsewhere for shared interrupts to cause lots of slo ... interrupt priority for the shared case (all tty interrupts get the low ... COM_MULTIPORT is only needed for old isa-ish multiport cards. ... shared with a device whose driver doesn't support fast interrupts. ...
    (freebsd-current)
  • Re: Linux serial port dropping bytes
    ... Changing ISR priority isn't going to make any difference. ... It only determines which of two pending interrupts get ... preempt lower priority ones. ...
    (comp.arch.embedded)