Skip to content

DPC and Kernel Executive workers in Windows 11 25H2

On this page

The DpcQueueDepth group, worker limits and watchdog parameters are often perceived as a set of universal latency tweaks. In reality, these are internal limits and protective mechanisms of the kernel. Their effect only manifests with a specific DPC queue, processor count, driver type or worker failure.

We checked which DPC limits, worker threads and watchdog values the kernel reads, how the values are normalized, and where these mechanisms are actually applied.

Windows 11 25H2 build 26200.9168, branches Session Manager\Kernel and Session Manager\Executive. Hardware-dependent features and specific drivers were not part of the measurements.

Static analysis of ntoskrnl.exe: searching for readers and consumers, checking value ranges and normalization; cross-checking against public Microsoft documentation.

DPC and watchdog path:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel

Value Type Default/normalization What it controls
DpcQueueDepth REG_DWORD 4 DPC queue depth
MinimumDpcRate REG_DWORD 3 minimum DPC processing rate
IdealDpcRate REG_DWORD 20 target DPC rate
AdjustDpcThreshold REG_DWORD 20 DPC policy adaptation threshold
ThreadDpcEnable REG_DWORD 1 thread-DPC processing
DpcWatchdogPeriod REG_DWORD 120000 DPC watchdog period
DpcCumulativeSoftTimeout REG_DWORD 120000 in the build studied accumulated soft budget
PassiveWatchdogTimeout REG_DWORD 300 seconds passive-level watchdog under KD
ForceIdleGracePeriod REG_DWORD 5 seconds 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, range 1..31 virtual processor work priority
AlwaysTrackIoBoosting REG_DWORD 0 diagnostic I/O boost tracking

Kernel Executive workers path:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Executive

Value Type Default/normalization What it controls
AdditionalCriticalWorkerThreads REG_DWORD 0, clamp 0..100 additional critical workers
AdditionalDelayedWorkerThreads REG_DWORD 0, clamp 0..100 delayed workers
MaximumKernelWorkerThreads REG_DWORD 4096, 32..16384 upper limit of kernel workers
ForceEnableMutantAutoboost REG_DWORD 0 mutant autoboost
WorkerThreadTimeoutInSeconds REG_DWORD 600, 60..3600 worker timeout

Session Manager\Kernel and Session Manager\Executive are different configuration branches. For each value, the path that the kernel reader opens in the given build matters.

The kernel uses DpcQueueDepth, MinimumDpcRate, IdealDpcRate and AdjustDpcThreshold to control the queue and adapt DPC processing. The verified defaults 4/3/20/20 already match the stock state of Windows 11 25H2; rewriting these numbers changes nothing.

Usefulness: these parameters can be useful when analyzing a specific DPC backlog, but without an ETW/WPR trace, changing them blindly does not diagnose the cause. A large queue can postpone processing and increase the latency tail.

ThreadDpcEnable=1 enables the threaded-DPC infrastructure, 0 returns work to the normal DIRQL path and can lengthen interrupt-off windows. MaximumKernelWorkerThreads limits the overall kernel worker pool. AdditionalCriticalWorkerThreads and AdditionalDelayedWorkerThreads are added to the base pools: on client Windows these are respectively 5 critical and 7 delayed workers before the override is applied.

More threads do not mean less latency: additional workers consume stack, scheduler time and cache resources, while the queue may be limited by another component. AdditionalDelayedWorkerThreads=32 does add delayed workers, but there is no measured universal gain.

DpcCumulativeSoftTimeout limits the accumulated DPC time. DpcWatchdogPeriod=0 is allowed and disables this watchdog; any non-zero value below 2000 becomes 2000 ms. PassiveWatchdogTimeout is used only when the kernel debugger is enabled, so on a normal system this timer is not active even with the stock 300 seconds. WorkerThreadTimeoutInSeconds limits a hung worker operation.

DpcCumulativeSoftTimeout has a lower bound of 2000 ms and cannot exceed DpcWatchdogPeriod. To get the value 240000, the watchdog period must also be 240000. WorkerThreadTimeoutInSeconds is normalized to the range 60..3600 seconds; writing 0 does not disable the timeout but results in the minimum value.

Disabling the protective timeout removes diagnostics but does not fix the cause of the block. For a production system, the watchdog is part of the mechanism for detecting faulty drivers.

ForceEnableMutantAutoboost is in branch Executive, while ForceIdleGracePeriod, PerfIsoEnabled, CacheIsoBitmap, SchedulerAssistThreadFlagOverride, VpThreadSystemWorkPriority and AlwaysTrackIoBoosting are read from branch Kernel. This distinction is critical: a same-named entry in the neighboring subkey is not applied.

CacheIsoBitmap is used only with Intel Resource Director/CAT support; without CAT the value does not create isolation. SchedulerAssistThreadFlagOverride=0 and 1 leave automatic enabling in place, 2 forcibly disables the branch. VpThreadSystemWorkPriority allows 1..31, otherwise it is reset to 1; the default is 30, and 31 is merely the upper bound. AlwaysTrackIoBoosting=1 enables diagnostic allocation and stack capture on boost paths, rather than keeping I/O priority elevated.

Usefulness: without a confirmed consumer, the effect is usually absent or too small for a practical decision. Such values are useful as the subject of separate kernel diagnostics, not as a general optimization set.

The verified defaults 4/3/20/20 match the stock state of Windows 11 25H2. Additional workers are zero by default, the upper limit of kernel workers is 4096 with a range of 32..16384. Watchdog parameters are normalized: a value below 2000 ms becomes 2000, and DpcCumulativeSoftTimeout does not exceed the watchdog period. The Kernel and Executive branches are not interchangeable.

  • Readers and consumers of the parameters in ntoskrnl.exe of the build studied.
  • Default values and normalization bounds, including the dependencies between watchdog parameters.
  • The separation of the Kernel and Executive branches: a same-named entry in the neighboring subkey is not applied.
  • The effect of changing the parameters on FPS, latency or responsiveness.
  • The benefit of changing the limits without a confirmed DPC queue or worker problem.

Do not change these parameters blindly: without an ETW/WPR trace, the cause of the backlog cannot be established. For a working system, keep the watchdog enabled, and use the parameters for diagnostics rather than as an optimization set.

Return the stock values or delete the optional entries. Kernel parameters are applied on the next Windows boot.

Readers and consumers were verified in ntoskrnl.exe Windows 11 25H2 build 26200.9168. No offsets or pseudocode are published. End-user metrics were not part of this series.

For how to reproduce the dynamic part of the observations, see How to check it yourself.

The research and the tools used belong to the BoosterX developer, so the developer has a direct interest in the results. The methodology and scope are described above, and the conclusions can be verified against open data and the public sources listed.

Public sources checked: 2026-09-02.

  • 2026-09-20: the “Results” section was moved to the mandatory position before “Restoring the state”; a conflict-of-interest disclaimer and a link to self-verification of the dynamic observations were added to the methodology.
  • 2026-09-02: first publication; readers, defaults and clamps confirmed, bounds of practical usefulness added.