İçeriğe geç

Windows 11 25H2'de DPC ve Kernel Executive worker'ları

Sayfa içeriği

DpcQueueDepth grubu, worker limitleri ve watchdog parametreleri genellikle evrensel bir latency tweak seti olarak algılanır. Gerçekte bunlar çekirdeğin dahili limitleri ve koruyucu mekanizmalarıdır. Etkileri yalnızca belirli bir DPC kuyruğu, işlemci sayısı, sürücü türü veya worker hatası durumunda ortaya çıkar.

Çekirdeğin hangi DPC, worker thread ve watchdog limitlerini okuduğunu, değerlerin nasıl normalize edildiğini ve bu mekanizmaların gerçekte nerede uygulandığını inceledik.

Windows 11 25H2 build 26200.9168, Session Manager\Kernel ve Session Manager\Executive dalları. Donanıma bağlı işlevler ve belirli sürücüler ölçümlere dahil edilmedi.

Statik analiz ntoskrnl.exe: reader’ların ve tüketicilerin aranması, değer aralıklarının ve normalizasyonun kontrolü; Microsoft’un genel dokümantasyonuyla karşılaştırma.

DPC ve watchdog yolu:

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

Value Type Default/normalization Neyi yönetir
DpcQueueDepth REG_DWORD 4 DPC queue derinliği
MinimumDpcRate REG_DWORD 3 minimum DPC işleme frekansı
IdealDpcRate REG_DWORD 20 hedef DPC rate
AdjustDpcThreshold REG_DWORD 20 DPC policy adaptasyon eşiği
ThreadDpcEnable REG_DWORD 1 thread-DPC processing
DpcWatchdogPeriod REG_DWORD 120000 DPC watchdog period
DpcCumulativeSoftTimeout REG_DWORD 120000 incelenen build’de birikmiş soft budget
PassiveWatchdogTimeout REG_DWORD 300 saniye KD sırasında passive-level watchdog
ForceIdleGracePeriod REG_DWORD 5 saniye 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, aralık 1..31 virtual processor work priority
AlwaysTrackIoBoosting REG_DWORD 0 tanılama amaçlı I/O boost tracking

Kernel Executive workers yolu:

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

Value Type Default/normalization Neyi yönetir
AdditionalCriticalWorkerThreads REG_DWORD 0, clamp 0..100 ek critical workers
AdditionalDelayedWorkerThreads REG_DWORD 0, clamp 0..100 delayed workers
MaximumKernelWorkerThreads REG_DWORD 4096, 32..16384 kernel workers üst sınırı
ForceEnableMutantAutoboost REG_DWORD 0 mutant autoboost
WorkerThreadTimeoutInSeconds REG_DWORD 600, 60..3600 worker timeout

Session Manager\Kernel ve Session Manager\Executive farklı yapılandırma dallarıdır. Her değer için, çekirdeğin bu build’de açtığı yol önemlidir.

Çekirdek, kuyruk kontrolü ve DPC processing adaptasyonu için DpcQueueDepth, MinimumDpcRate, IdealDpcRate ve AdjustDpcThreshold kullanır. Doğrulanan 4/3/20/20 defaults değerleri zaten Windows 11 25H2’nin varsayılan durumuyla örtüşür; bu sayıların yeniden yazılması hiçbir şeyi değiştirmez.

Fayda: bu parametreler belirli bir DPC backlog’unun incelenmesinde faydalı olabilir, ancak ETW/WPR izi olmadan körlemesine değişiklik nedeni teşhis etmez. Büyük bir kuyruk işlemeyi geciktirebilir ve gecikme kuyruğunu uzatabilir.

ThreadDpcEnable=1 threaded-DPC infrastructure’ı etkinleştirir, 0 işi normal DIRQL path’ine döndürür ve interrupt-off pencerelerini uzatabilir. MaximumKernelWorkerThreads genel kernel workers havuzunu sınırlar. AdditionalCriticalWorkerThreads ve AdditionalDelayedWorkerThreads temel havuzlara eklenir: istemci Windows’ta bu, override uygulanmadan önce sırasıyla 5 critical ve 7 delayed workers’tır.

Daha fazla thread daha az latency anlamına gelmez: ek workers stack, scheduler time ve cache resources tüketir, kuyruk ise başka bir bileşen tarafından sınırlanabilir. AdditionalDelayedWorkerThreads=32 gerçekten delayed workers ekler, ancak ölçülmüş evrensel bir kazanç yoktur.

DpcCumulativeSoftTimeout birikmiş DPC süresini sınırlar. DpcWatchdogPeriod=0 kabul edilebilir ve bu watchdog’u kapatır; 2000 altındaki sıfırdan farklı her değer 2000 ms olur. PassiveWatchdogTimeout yalnızca kernel debugger etkinken kullanılır, bu nedenle normal bir sistemde bu timer varsayılan 300 saniyede bile etkin değildir. WorkerThreadTimeoutInSeconds worker operation’ın takılmasını sınırlar.

DpcCumulativeSoftTimeout alt sınırı 2000 ms’dir ve DpcWatchdogPeriod değerini aşamaz. 240000 değerini elde etmek için watchdog period da 240000 olmalıdır. WorkerThreadTimeoutInSeconds 60..3600 saniye aralığına normalize edilir; 0 yazmak timeout’u kapatmaz, minimum değere yol açar.

Koruyucu timeout’un kapatılması tanılamayı ortadan kaldırır, ancak bloklanmanın nedenini düzeltmez. Bir production sistemi için watchdog, arızalı sürücüleri tespit mekanizmasının bir parçasıdır.

ForceEnableMutantAutoboost Executive dalında bulunur, ForceIdleGracePeriod, PerfIsoEnabled, CacheIsoBitmap, SchedulerAssistThreadFlagOverride, VpThreadSystemWorkPriority ve AlwaysTrackIoBoosting ise Kernel dalından okunur. Bu ayrım kritiktir: komşu alt anahtardaki aynı adlı kayıt uygulanmaz.

CacheIsoBitmap yalnızca Intel Resource Director/CAT desteğiyle kullanılır; CAT olmadan değer izolasyon oluşturmaz. SchedulerAssistThreadFlagOverride=0 ve 1 otomatik etkinleştirmeyi bırakır, 2 dalı zorla kapatır. VpThreadSystemWorkPriority 1..31 değerine izin verir, aksi halde 1 değerine sıfırlanır; default 30, 31 ise yalnızca üst sınırdır. AlwaysTrackIoBoosting=1 boost path’lerinde tanılama amaçlı allocation ve stack-capture’ı etkinleştirir, I/O priority’yi yüksek tutmaz.

Fayda: doğrulanmış bir consumer olmadan etki genellikle yoktur veya pratik bir karar için çok küçüktür. Bu tür değerler genel bir optimizasyon seti olarak değil, ayrı bir kernel tanılamasının konusu olarak faydalıdır.

Doğrulanan 4/3/20/20 defaults değerleri Windows 11 25H2’nin varsayılan durumuyla örtüşür. Ek workers varsayılan olarak sıfırdır, kernel workers üst sınırı 32..16384 aralığıyla 4096’dir. Watchdog parametreleri normalize edilir: 2000 ms altındaki değer 2000 olur, DpcCumulativeSoftTimeout ise watchdog periodunu aşmaz. Kernel ve Executive dalları birbirinin yerine kullanılamaz.

  • İncelenen build’in ntoskrnl.exe içindeki parametre reader’ları ve tüketicileri.
  • Watchdog parametreleri arasındaki bağımlılıklar dahil varsayılan değerler ve normalizasyon sınırları.
  • Kernel ve Executive dallarının ayrılması: komşu alt anahtardaki aynı adlı kayıt uygulanmaz.
  • Parametre değişikliklerinin FPS, gecikme veya yanıt verme üzerindeki etkisi.
  • Doğrulanmış bir DPC kuyruğu veya worker sorunu olmadan limit değişikliklerinin faydası.

Bu parametreleri körlemesine değiştirmeyin: ETW/WPR izi olmadan backlog’un nedenini belirlemek mümkün değildir. Çalışan bir sistem için watchdog’u etkin tutun ve parametreleri bir optimizasyon seti olarak değil, tanılama için kullanın.

Varsayılan değerleri geri getirin veya isteğe bağlı kayıtları silin. Çekirdek parametreleri bir sonraki Windows başlatmasında uygulanır.

Reader’lar ve consumer’lar Windows 11 25H2 build 26200.9168 içinde ntoskrnl.exe doğrulanmıştır. Offset’ler veya sözde kod yayımlanmaz. Son kullanıcı metrikleri bu seriye dahil edilmedi.

Gözlemlerin dinamik kısmının nasıl tekrarlanacağı için bkz. Kendi başınıza nasıl doğrularsınız.

Araştırma ve kullanılan araçlar BoosterX geliştiricisine aittir, bu nedenle geliştiricinin sonuçlarda doğrudan çıkarı vardır. Yöntem ve uygulanabilirlik sınırları yukarıda açıklanmıştır ve sonuçlar açık veriler ile listelenen genel kaynaklardan doğrulanabilir.

Genel kaynaklar doğrulandı: 2026-09-02.

  • 2026-09-20: «Sonuçlar» bölümü «Durumu geri yükleme»den önceki zorunlu konuma taşındı; çıkar çatışması feragatnamesi ve yöntem bölümüne dinamik gözlemlerin bağımsız doğrulamasına yönelik bağlantı eklendi.
  • 2026-09-02: ilk yayın; reader’lar, defaults ve clamp’ler doğrulandı, pratik fayda sınırları eklendi.