DPC and SMP

DPC is supposed to run through unless itself gives up or ISR steps in. How
about SMP? Could it be another PASSIVE_LEVEL run another CPU while the DPC
is on one CPU?

Thanks

Ta


Check out the latest news, polls and tools in the MSN 2004 Election Guide!
http://special.msn.com/msn/election2004.armx

A DPC only affects the process it’s running on. It will run through
until it yields and can be interrupted by higher-priority events
(interrupts) but the other CPUs are free to run passive-level code.

-p

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ta H.
Sent: Friday, July 09, 2004 9:41 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] DPC and SMP

DPC is supposed to run through unless itself gives up or ISR steps in.
How about SMP? Could it be another PASSIVE_LEVEL run another CPU while
the DPC is on one CPU?

Thanks

Ta


Check out the latest news, polls and tools in the MSN 2004 Election
Guide!
http://special.msn.com/msn/election2004.armx


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

> DPC is supposed to run through unless itself gives up or ISR

steps in. How
about SMP? Could it be another PASSIVE_LEVEL run another CPU
while the DPC
is on one CPU?

I don’t think another processor can have a different IRQL. I did a
web-search, found lots of references to IRQL and Multiprocessor, but all the
texts I could find seem to indicate that IRQL is global (but didn’t say so
directly).


Mats

Thanks

Ta


Check out the latest news, polls and tools in the MSN 2004
Election Guide!
http://special.msn.com/msn/election2004.armx


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@3dlabs.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

No. IRQL is per-processor, as Peter Wieland said. To serialize between
processors, you need a lock or something similar (albeit nothing else comes
to mind).

Think of higher IRQLs as something like a mask bit on the CPU, eg,
preventing interrupts from registering. (IRQL is not really that – it is
sometimes more, sometimes less – but that’s an analogy to get one
thinking.)


James Antognini
Windows DDK Support

This posting is provided “AS IS” with no warranties, and confers no rights.

wrote in message news:xxxxx@ntdev…
> > DPC is supposed to run through unless itself gives up or ISR
> > steps in. How
> > about SMP? Could it be another PASSIVE_LEVEL run another CPU
> > while the DPC
> > is on one CPU?
>
> I don’t think another processor can have a different IRQL. I did a
> web-search, found lots of references to IRQL and Multiprocessor, but all
the
> texts I could find seem to indicate that IRQL is global (but didn’t say so
> directly).
>
> –
> Mats
> >
> > Thanks
> >
> > Ta
> >
> > _________________________________________________________________
> > Check out the latest news, polls and tools in the MSN 2004
> > Election Guide!
> > http://special.msn.com/msn/election2004.armx
> >
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as: xxxxx@3dlabs.com
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
>

Yes.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: “Ta H.”
To: “Windows System Software Devs Interest List”
Sent: Friday, July 09, 2004 8:40 PM
Subject: [ntdev] DPC and SMP

> DPC is supposed to run through unless itself gives up or ISR steps in. How
> about SMP? Could it be another PASSIVE_LEVEL run another CPU while the DPC
> is on one CPU?
>
> Thanks
>
> Ta
>
> _________________________________________________________________
> Check out the latest news, polls and tools in the MSN 2004 Election Guide!
> http://special.msn.com/msn/election2004.armx
>
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com

> web-search, found lots of references to IRQL and Multiprocessor, but all the

texts I could find seem to indicate that IRQL is global (but didn’t say so

IRQL is per-CPU.

The values of PASSIVE and APC_LEVEL are also per-thread - if the thread running
on APC_LEVEL will be preempted, then the control will return to it on APC_LEVEL
again

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

Why bother to post speculation? Why not wait until somebody who knows the
answer posts it?

(By the way, IRQL is definitely per-processor. It’s completely possible for
a processor running a PASSIVE_LEVEL thread to run while a DPC is running.)


Jake Oshins
Windows Kernel Group

This posting is provided “AS IS” with no warranties, and confers no rights.

wrote in message news:xxxxx@ntdev…
>> DPC is supposed to run through unless itself gives up or ISR
>> steps in. How
>> about SMP? Could it be another PASSIVE_LEVEL run another CPU
>> while the DPC
>> is on one CPU?
>
> I don’t think another processor can have a different IRQL. I did a
> web-search, found lots of references to IRQL and Multiprocessor, but all
> the
> texts I could find seem to indicate that IRQL is global (but didn’t say so
> directly).
>
> –
> Mats
>>
>> Thanks
>>
>> Ta
>>
>> _________________________________________________________________
>> Check out the latest news, polls and tools in the MSN 2004
>> Election Guide!
>> http://special.msn.com/msn/election2004.armx
>>
>>
>> —
>> Questions? First check the Kernel Driver FAQ at
>> http://www.osronline.com/article.cfm?id=256
>>
>> You are currently subscribed to ntdev as: xxxxx@3dlabs.com
>> To unsubscribe send a blank email to xxxxx@lists.osr.com
>>
>