콘텐츠로 이동

Windows 11 25H2의 DPC 및 Kernel Executive worker

목차

DpcQueueDepth 그룹, worker limits 및 watchdog 매개변수는 흔히 범용 latency tweaks 모음으로 인식됩니다. 실제로는 커널의 내부 한도와 보호 메커니즘입니다. 그 효과는 특정 DPC 큐, 프로세서 수, 드라이버 유형 또는 worker 오류가 있을 때만 나타납니다.

커널이 어떤 DPC, worker threads 및 watchdog 한도를 읽는지, 값이 어떻게 정규화되는지, 그리고 이러한 메커니즘이 실제로 어디에 적용되는지 확인했습니다.

Windows 11 25H2 build 26200.9168, Session Manager\Kernel 및 Session Manager\Executive 분기. 하드웨어 종속 기능과 특정 드라이버는 측정에 포함되지 않았습니다.

정적 분석 ntoskrnl.exe: readers와 소비자 검색, 값 범위와 정규화 확인; Microsoft 공개 문서와 대조.

DPC 및 watchdog 경로:

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

Value Type Default/normalization Что управляет
DpcQueueDepth REG_DWORD 4 DPC queue 깊이
MinimumDpcRate REG_DWORD 3 최소 DPC 처리 빈도
IdealDpcRate REG_DWORD 20 목표 DPC rate
AdjustDpcThreshold REG_DWORD 20 DPC policy 적응 임계값
ThreadDpcEnable REG_DWORD 1 thread-DPC processing
DpcWatchdogPeriod REG_DWORD 120000 DPC watchdog period
DpcCumulativeSoftTimeout REG_DWORD 120000 연구된 빌드에서 누적 soft budget
PassiveWatchdogTimeout REG_DWORD 300 초 KD 시 passive-level watchdog
ForceIdleGracePeriod REG_DWORD 5 초 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, 범위 1..31 virtual processor work priority
AlwaysTrackIoBoosting REG_DWORD 0 진단용 I/O boost tracking

Kernel Executive workers 경로:

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

Value Type Default/normalization Что управляет
AdditionalCriticalWorkerThreads REG_DWORD 0, clamp 0..100 추가 critical workers
AdditionalDelayedWorkerThreads REG_DWORD 0, clamp 0..100 delayed workers
MaximumKernelWorkerThreads REG_DWORD 4096, 32..16384 kernel workers 상한
ForceEnableMutantAutoboost REG_DWORD 0 mutant autoboost
WorkerThreadTimeoutInSeconds REG_DWORD 600, 60..3600 worker timeout

Session Manager\Kernel 및 Session Manager\Executive는 서로 다른 구성 분기입니다. 각 값에 대해서는 해당 빌드에서 커널 reader가 여는 경로가 중요합니다.

커널은 DpcQueueDepth, MinimumDpcRate, IdealDpcRate 및 AdjustDpcThreshold를 사용하여 큐와 DPC processing 적응을 제어합니다. 확인된 defaults 4/3/20/20는 이미 Windows 11 25H2의 기본 상태와 일치합니다. 이 숫자를 다시 기록해도 아무것도 바뀌지 않습니다.

유용성: 이 매개변수는 특정 DPC backlog를 분석할 때 유용할 수 있지만, ETW/WPR 트레이스 없이 맹목적으로 변경하는 것은 원인을 진단하지 못합니다. 큰 큐는 처리를 지연시키고 지연 꼬리를 늘릴 수 있습니다.

ThreadDpcEnable=1는 threaded-DPC infrastructure를 활성화하고, 0는 작업을 일반 DIRQL path로 되돌리며 interrupt-off 창을 늘릴 수 있습니다. MaximumKernelWorkerThreads는 전체 kernel workers 풀을 제한합니다. AdditionalCriticalWorkerThreads 및 AdditionalDelayedWorkerThreads는 기본 풀에 추가됩니다: 클라이언트 Windows에서는 override 적용 전 각각 5 critical 및 7 delayed workers입니다.

스레드가 더 많다고 해서 latency가 줄어드는 것은 아닙니다: 추가 workers는 stack, scheduler time 및 cache resources를 소비하며, 큐는 다른 구성 요소에 의해 제한될 수 있습니다. AdditionalDelayedWorkerThreads=32는 실제로 delayed workers를 추가하지만, 측정된 범용 이득은 없습니다.

DpcCumulativeSoftTimeout는 누적된 DPC 시간을 제한합니다. DpcWatchdogPeriod=0는 허용되며 이 watchdog을 끕니다. 2000 미만의 0이 아닌 값은 2000 ms가 됩니다. PassiveWatchdogTimeout는 kernel debugger가 활성화된 경우에만 사용되므로, 일반 시스템에서는 기본 300 초에서도 이 timer가 활성화되지 않습니다. WorkerThreadTimeoutInSeconds는 worker operation의 정지를 제한합니다.

DpcCumulativeSoftTimeout는 하한 2000 ms를 가지며 DpcWatchdogPeriod를 초과할 수 없습니다. 240000 값을 얻으려면 watchdog period도 240000여야 합니다. WorkerThreadTimeoutInSeconds는 60..3600 초 범위로 정규화됩니다. 0를 기록해도 timeout이 꺼지지 않고 최소값이 됩니다.

보호 timeout을 끄면 진단이 사라지지만 차단 원인이 해결되지는 않습니다. production 시스템에서 watchdog은 결함 있는 드라이버를 감지하는 메커니즘의 일부입니다.

ForceEnableMutantAutoboost는 Executive 분기에 있고, ForceIdleGracePeriod, PerfIsoEnabled, CacheIsoBitmap, SchedulerAssistThreadFlagOverride, VpThreadSystemWorkPriority 및 AlwaysTrackIoBoosting는 Kernel 분기에서 읽습니다. 이 차이는 중요합니다: 인접 하위 키의 동일한 이름 항목은 적용되지 않습니다.

CacheIsoBitmap는 Intel Resource Director/CAT 지원 시에만 사용됩니다. CAT 없이는 값이 격리를 생성하지 않습니다. SchedulerAssistThreadFlagOverride=0 및 1는 자동 활성화를 유지하고, 2는 분기를 강제로 끕니다. VpThreadSystemWorkPriority는 1..31을 허용하고, 그렇지 않으면 1로 재설정됩니다. default는 30이며, 31는 상한일 뿐입니다. AlwaysTrackIoBoosting=1는 boost paths에서 진단 allocation 및 stack-capture를 활성화하며, I/O priority를 높게 유지하지 않습니다.

유용성: 확인된 consumer 없이는 효과가 일반적으로 없거나 실용적 결정을 내리기에는 너무 작습니다. 이러한 값은 일반 최적화 모음이 아니라 별도의 kernel 진단 대상으로 유용합니다.

확인된 defaults 4/3/20/20는 Windows 11 25H2의 기본 상태와 일치합니다. 추가 workers는 기본적으로 0이며, kernel workers 상한은 4096이고 범위는 32..16384입니다. Watchdog 매개변수는 정규화됩니다: 2000 ms 미만의 값은 2000가 되고, DpcCumulativeSoftTimeout는 watchdog period를 초과하지 않습니다. Kernel 및 Executive 분기는 상호 교환할 수 없습니다.

  • 연구된 빌드의 ntoskrnl.exe에서 매개변수의 readers 및 소비자.
  • watchdog 매개변수 간의 종속성을 포함한 기본값과 정규화 경계.
  • Kernel 및 Executive 분기의 구분: 인접 하위 키의 동일한 이름 항목은 적용되지 않습니다.
  • 매개변수 변경이 FPS, 지연 또는 응답성에 미치는 영향.
  • DPC 큐 또는 worker에 확인된 문제 없이 한도를 변경하는 것의 이점.

이 매개변수를 맹목적으로 변경하지 마십시오: ETW/WPR 트레이스 없이는 backlog 원인을 확인할 수 없습니다. 작업 시스템에서는 watchdog을 켜 둔 상태로 유지하고, 매개변수는 최적화 모음이 아니라 진단용으로 사용하십시오.

기본값을 되돌리거나 선택적 항목을 삭제하십시오. 커널 매개변수는 다음 Windows 부팅 시 적용됩니다.

Readers 및 consumers는 ntoskrnl.exe Windows 11 25H2 build 26200.9168에서 확인했습니다. offsets 또는 의사 코드는 공개되지 않습니다. 최종 사용자 지표는 이 시리즈에 포함되지 않았습니다.

관찰의 동적 부분을 재현하는 방법은 직접 확인하는 방법을 참조하십시오.

연구와 사용된 도구는 BoosterX 개발자에게 속하므로, 개발자는 결과에 직접적인 이해관계가 있습니다. 방법론과 적용 범위는 위에 설명되어 있으며, 결론은 공개 데이터와 나열된 공개 출처를 통해 확인할 수 있습니다.

공개 출처 확인일: 2026-09-02.

  • 2026-09-20: «결과» 섹션을 «상태 복원» 앞의 필수 위치로 이동; 이해 상충 면책 조항과 방법론에 동적 관찰의 독립적 확인 링크 추가.
  • 2026-09-02: 최초 게시; readers, defaults 및 clamps 확인, 실용적 유용성 경계 추가.