DPC och Kernel Executive workers i Windows 11 25H2
På den här sidan
Kort svar
Section titled “Kort svar”Gruppen DpcQueueDepth, worker limits och watchdog-parametrar uppfattas ofta som en uppsättning universella latency tweaks. I själva verket är det interna gränser och skyddsmekanismer i kärnan. Deras effekt visar sig endast vid en specifik DPC-kö, antal processorer, drivrutinstyp eller worker-fel.
Vad som undersöktes
Section titled “Vad som undersöktes”Vi undersökte vilka gränser för DPC, worker threads och watchdog som kärnan läser, hur värden normaliseras och var dessa mekanismer faktiskt tillämpas.
Forskningsomfång
Section titled “Forskningsomfång”Windows 11 25H2 build 26200.9168, grenarna Session Manager\Kernel och Session Manager\Executive. Hårdvaruberoende funktioner och specifika drivrutiner ingick inte i mätningarna.
Metodik
Section titled “Metodik”Statisk analys av ntoskrnl.exe: sökning efter readers och konsumenter, kontroll av intervall och normalisering av värden; avstämning mot Microsofts offentliga dokumentation.
Kanonisk sökväg och värden
Section titled “Kanonisk sökväg och värden”Sökväg för DPC och watchdog:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel
| Value | Type | Default/normalization | Vad som styrs |
|---|---|---|---|
DpcQueueDepth |
REG_DWORD |
4 |
djup på DPC-kö |
MinimumDpcRate |
REG_DWORD |
3 |
lägsta frekvens för DPC-bearbetning |
IdealDpcRate |
REG_DWORD |
20 |
mål-DPC-rate |
AdjustDpcThreshold |
REG_DWORD |
20 |
tröskel för DPC-policy-adaptation |
ThreadDpcEnable |
REG_DWORD |
1 |
thread-DPC-bearbetning |
DpcWatchdogPeriod |
REG_DWORD |
120000 |
DPC watchdog-period |
DpcCumulativeSoftTimeout |
REG_DWORD |
120000 i den undersökta builden |
ackumulerad soft budget |
PassiveWatchdogTimeout |
REG_DWORD |
300 sekunder |
passive-level watchdog vid KD |
ForceIdleGracePeriod |
REG_DWORD |
5 sekunder |
force-idle grace period |
PerfIsoEnabled |
REG_DWORD |
0 |
performance isolation |
CacheIsoBitmap |
REG_DWORD |
0 |
Intel CAT L3-mask |
SchedulerAssistThreadFlagOverride |
REG_DWORD |
0 |
scheduler assist override |
VpThreadSystemWorkPriority |
REG_DWORD |
30, intervall 1..31 |
prioritet för virtuell processor-arbete |
AlwaysTrackIoBoosting |
REG_DWORD |
0 |
diagnostisk I/O boost-spårning |
Sökväg för Kernel Executive workers:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Executive
| Value | Type | Default/normalization | Vad som styrs |
|---|---|---|---|
AdditionalCriticalWorkerThreads |
REG_DWORD |
0, clamp 0..100 |
ytterligare kritiska workers |
AdditionalDelayedWorkerThreads |
REG_DWORD |
0, clamp 0..100 |
fördröjda workers |
MaximumKernelWorkerThreads |
REG_DWORD |
4096, 32..16384 |
övre gräns för kernel workers |
ForceEnableMutantAutoboost |
REG_DWORD |
0 |
mutant autoboost |
WorkerThreadTimeoutInSeconds |
REG_DWORD |
600, 60..3600 |
worker timeout |
Session Manager\Kernel och Session Manager\Executive är olika konfigurationsgrenar. För varje värde är den sökväg som kärnans reader öppnar i den aktuella builden viktig.
DPC-kö och rates
Section titled “DPC-kö och rates”Kärnan använder DpcQueueDepth, MinimumDpcRate, IdealDpcRate och AdjustDpcThreshold för att kontrollera kön och anpassa DPC-bearbetningen. De verifierade defaults 4/3/20/20 överensstämmer redan med standardtillståndet i Windows 11 25H2; att skriva dessa tal igen ändrar ingenting.
Användbarhet: dessa parametrar kan vara användbara vid analys av en specifik DPC-backlog, men utan ETW/WPR-trace diagnostiserar en blind ändring inte orsaken. En stor kö kan skjuta upp bearbetningen och öka fördröjningens svans.
Thread DPC och worker limits
Section titled “Thread DPC och worker limits”ThreadDpcEnable=1 aktiverar threaded-DPC-infrastruktur, 0 återför arbetet till den vanliga DIRQL-sökvägen och kan förlänga interrupt-off-fönster. MaximumKernelWorkerThreads begränsar den gemensamma poolen för kernel workers. AdditionalCriticalWorkerThreads och AdditionalDelayedWorkerThreads läggs till baspoolerna: på klient-Windows är detta respektive 5 kritiska och 7 fördröjda workers innan override tillämpas.
Fler trådar betyder inte lägre latency: ytterligare workers förbrukar stack, scheduler-tid och cache-resurser, och kön kan begränsas av en annan komponent. AdditionalDelayedWorkerThreads=32 lägger verkligen till fördröjda workers, men det finns ingen uppmätt universell vinst.
Watchdog och timeout
Section titled “Watchdog och timeout”DpcCumulativeSoftTimeout begränsar den ackumulerade DPC-tiden. DpcWatchdogPeriod=0 är tillåtet och stänger av denna watchdog; varje nollskilt värde under 2000 blir 2000 ms. PassiveWatchdogTimeout används endast när kernel debugger är aktiverad, så på ett vanligt system är denna timer inte aktiv ens vid standardvärdet 300 sekunder. WorkerThreadTimeoutInSeconds begränsar en hängande worker-operation.
DpcCumulativeSoftTimeout har en nedre gräns på 2000 ms och kan inte överstiga DpcWatchdogPeriod. För att få värdet 240000 måste även watchdog-perioden vara 240000. WorkerThreadTimeoutInSeconds normaliseras till intervallet 60..3600 sekunder; att skriva 0 stänger inte av timeouten utan leder till minimivärdet.
Att stänga av den skyddande timeouten tar bort diagnostiken men åtgärdar inte orsaken till blockeringen. För ett produktionssystem är watchdog en del av mekanismen för att upptäcka felaktiga drivrutiner.
Kernel Executive policy
Section titled “Kernel Executive policy”ForceEnableMutantAutoboost finns i grenen Executive, medan ForceIdleGracePeriod, PerfIsoEnabled, CacheIsoBitmap, SchedulerAssistThreadFlagOverride, VpThreadSystemWorkPriority och AlwaysTrackIoBoosting läses från grenen Kernel. Denna skillnad är kritisk: en post med samma namn i den angränsande undernyckeln tillämpas inte.
CacheIsoBitmap används endast med stöd för Intel Resource Director/CAT; utan CAT skapar värdet ingen isolering. SchedulerAssistThreadFlagOverride=0 och 1 lämnar automatisk aktivering, 2 stänger av grenen tvingande. VpThreadSystemWorkPriority tillåter 1..31, annars återställs det till 1; default är 30, och 31 är endast en övre gräns. AlwaysTrackIoBoosting=1 aktiverar diagnostisk allocation och stack-capture på boost-sökvägar, och håller inte I/O-prioriteten förhöjd.
Användbarhet: utan bekräftad consumer-effekt saknas vanligtvis effekt, eller den är för liten för ett praktiskt beslut. Sådana värden är användbara som föremål för separat kernel-diagnostik, inte som en allmän optimeringsuppsättning.
Resultat
Section titled “Resultat”De verifierade defaults 4/3/20/20 överensstämmer med standardtillståndet i Windows 11 25H2. Ytterligare workers är som standard noll, den övre gränsen för kernel workers är 4096 med intervallet 32..16384. Watchdog-parametrarna normaliseras: ett värde under 2000 ms blir 2000, och DpcCumulativeSoftTimeout överstiger inte watchdog-perioden. Grenarna Kernel och Executive är inte utbytbara.
Vad som bekräftats
Section titled “Vad som bekräftats”- Readers och konsumenter av parametrarna i
ntoskrnl.exei den undersökta builden. - Standardvärden och normaliseringsgränser, inklusive beroenden mellan watchdog-parametrar.
- Åtskillnaden mellan grenarna
KernelochExecutive: en post med samma namn i den angränsande undernyckeln tillämpas inte.
Vad som inte bekräftats
Section titled “Vad som inte bekräftats”- Påverkan av parameterändringar på FPS, fördröjning eller responsivitet.
- Nyttan av att ändra gränser utan ett bekräftat problem med DPC-kön eller worker.
Praktisk slutsats
Section titled “Praktisk slutsats”Ändra inte dessa parametrar blint: utan ETW/WPR-trace kan orsaken till backlog inte fastställas. För ett system i drift, håll watchdog aktiverad och använd parametrarna för diagnostik, inte som en optimeringsuppsättning.
Återställning av tillstånd
Section titled “Återställning av tillstånd”Återställ standardvärdena eller ta bort valfria poster. Kärnparametrar tillämpas vid nästa start av Windows.
Källor och begränsningar
Section titled “Källor och begränsningar”Readers och consumers verifierades i ntoskrnl.exe Windows 11 25H2 build 26200.9168. Inga offsets eller pseudokod publiceras. Slutanvändarmätvärden ingick inte i denna serie.
- DPCs and threads, Microsoft Learn, verifierat 2026-09-01.
- Bug checks 0x133 DPC_WATCHDOG_VIOLATION, Microsoft Learn, verifierat 2026-09-01.
Hur du upprepar den dynamiska delen av observationerna — se Hur du verifierar själv.
Undersökningen och de använda verktygen tillhör utvecklaren av BoosterX, därför har utvecklaren ett direkt intresse av resultaten. Metodiken och tillämpningsgränserna beskrivs ovan, och slutsatserna kan verifieras mot öppna data och de listade offentliga källorna.
Offentliga källor verifierade: 2026-09-02.
Ändringshistorik
Section titled “Ändringshistorik”- 2026-09-20: avsnittet «Resultat» flyttat till den obligatoriska platsen före «Återställning av tillstånd»; en intressekonflikt-deklaration och en länk till självständig verifiering av dynamiska observationer har lagts till i metodiken.
- 2026-09-02: första publiceringen; readers, defaults och clamps bekräftade, gränser för praktisk nytta tillagda.
