Cause 1: Buggy Kernel-Mode Driver (Most Common)
What's actually happening here is a kernel-mode driver (often a network filter, antivirus, or GPU driver) is calling KeYieldProcessor or similar in a spin loop because it's waiting on a condition that never gets satisfied. The scheduler finds no other thread ready to run on that processor, so it returns STATUS_NO_YIELD_PERFORMED (0x40000024). This is a warning, not a fatal bugcheck, but it usually means the system is about to hang or BSOD.
In my experience, this shows up right before a DRIVER_IRQL_NOT_LESS_OR_EQUAL or SYSTEM_THREAD_EXCEPTION_NOT_HANDLED crash. The yield performance warning is the first sign.
The Fix: Identify and Update the Driver
- Open Event Viewer (
eventvwr.msc). Go to Windows Logs > System. - Look for events with source Kernel-Processor-Power or Microsoft-Windows-Kernel-General around the time of the error. The error ID might be 41 (Kernel-Power) if a crash follows.
- The event details often mention a driver file. If not, use
verifier.exeto enable Driver Verifier on all unsigned drivers — it'll point the finger fast. - Update your chipset, network, and GPU drivers from the manufacturer's site (not Windows Update, which is often stale).
If you've recently installed a new driver, roll it back first. The error is a clue, not the disease.
Cause 2: Defective Hardware or Overheating
Less common but real. When a CPU core overheats or a VRM starts failing, the processor can't enter the correct low-power state. The scheduler expects a yield to succeed, but the hardware is refusing to switch threads. You get this warning.
I've seen this on older Intel 8th-gen laptops after a BIOS update altered power delivery.
The Fix: Check Temperatures and Hardware
- Use HWiNFO64 to monitor core temps under load. If you're above 95°C at idle, that's your problem.
- Clean your fans and heatsinks — dust build-up is a classic culprit.
- Reset BIOS to defaults. A misconfigured voltage offset can cause this exact symptom.
- Run
sfc /scannowto rule out corrupted system files, but know that it rarely fixes this — it's a hardware path.
Cause 3: Power Management or Hyper-V Conflict
When Hyper-V or Core Isolation (Memory Integrity) is enabled, the hypervisor manages thread scheduling. A misbehaving guest VM or a power plan that forces aggressive C-states can cause yield failures. The fix is to adjust the power plan or disable the conflicting feature.
The Fix: Adjust Power Settings or Disable Hyper-V
- Run
powercfg.cpland switch to High Performance plan — this stops the CPU from entering deep C-states so aggressively. - If you don't need Hyper-V, disable it: open Command Prompt as admin and run
dism /online /disable-feature /featurename:Microsoft-Hyper-V-All /norestartthen reboot. - Also check
msinfo32under Virtualization-based Security. If it says "Running", and you're not using it, turn it off viaDevice Guardgroup policy or Registry.
The reason step 3 works is that VBS adds a layer of indirection to thread scheduling. Every yield goes through the hypervisor, which may fail to find a target thread on the virtual processor set.
Quick-Reference Summary
| Cause | Fix | Difficulty |
|---|---|---|
| Buggy driver | Update or roll back kernel drivers, use Driver Verifier | Intermediate |
| Hardware/overheating | Clean cooling, reset BIOS, check temps | Beginner |
| Hyper-V / power plan | Disable Hyper-V, set High Performance plan | Intermediate |
One final note: don't ignore this warning just because it's not a full BSOD. Log it, fix the root cause, because it's a ticking clock. I've fixed three machines with this exact code and in each case it was a third-party driver that hadn't been updated in months.