Windows 11 25H2'de DPC ve Kernel Executive worker'ları
Sayfa içeriği
Kısa yanıt
Bölüm başlığı “Kısa yanıt”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.
Neyi inceledik
Bölüm başlığı “Neyi inceledik”Ç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.
Araştırma kapsamı
Bölüm başlığı “Araştırma kapsamı”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.
Yöntem
Bölüm başlığı “Yöntem”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.
Kanonik yol ve değerler
Bölüm başlığı “Kanonik yol ve değerler”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.
DPC queue ve rates
Bölüm başlığı “DPC queue ve rates”Ç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.
Thread DPC ve worker limitleri
Bölüm başlığı “Thread DPC ve worker limitleri”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.
Watchdog ve timeout
Bölüm başlığı “Watchdog ve timeout”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.
Kernel Executive policy
Bölüm başlığı “Kernel Executive policy”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.
Sonuçlar
Bölüm başlığı “Sonuçlar”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.
Doğrulananlar
Bölüm başlığı “Doğrulananlar”- İncelenen build’in
ntoskrnl.exeiç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ı.
KernelveExecutivedallarının ayrılması: komşu alt anahtardaki aynı adlı kayıt uygulanmaz.
Doğrulanmayanlar
Bölüm başlığı “Doğrulanmayanlar”- 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ı.
Pratik sonuç
Bölüm başlığı “Pratik sonuç”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.
Durumu geri yükleme
Bölüm başlığı “Durumu geri yükleme”Varsayılan değerleri geri getirin veya isteğe bağlı kayıtları silin. Çekirdek parametreleri bir sonraki Windows başlatmasında uygulanır.
Kaynaklar ve sınırlamalar
Bölüm başlığı “Kaynaklar ve sınırlamalar”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.
- DPCs and threads, Microsoft Learn, doğrulama tarihi 2026-09-01.
- Bug checks 0x133 DPC_WATCHDOG_VIOLATION, Microsoft Learn, doğrulama tarihi 2026-09-01.
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.
Değişiklik geçmişi
Bölüm başlığı “Değişiklik geçmişi”- 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.
