Why have DIRQLs ?
From: Ragnar (athragnar_at_yahoo.com)
Date: 02/09/04
- Next message: Jackal Huang: "Question about IoMarkIrpPending"
- Previous message: Raghavendra: "RE: How to handle system suspend when the device has been in selective suspend mode?"
- Messages sorted by: [ date ] [ thread ]
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
- Next message: Jackal Huang: "Question about IoMarkIrpPending"
- Previous message: Raghavendra: "RE: How to handle system suspend when the device has been in selective suspend mode?"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|