F5F Stay Refreshed Hardware Notebooks Is there an unusual CPU idle condition occurring on your laptop?

Is there an unusual CPU idle condition occurring on your laptop?

Is there an unusual CPU idle condition occurring on your laptop?

C
ChibiWolf39
Senior Member
491
02-05-2026, 11:06 PM
#1
Laptop model:
ASUS ROG FLOW X16
I'm facing occasional audio issues in my DAW, and after thorough testing, it seems linked to an unusual idle behavior – the CPU seems to pause for up to 14 milliseconds intermittently. I've received help from the Windows Performance Toolkit forum here: https://learn.microsoft.com/en-us/a...au...-need-help. Now, I'm trying to replicate this on another system. Any helpers would be greatly appreciated. You could run a PowerShell script (see below), and based on the outcome, install the Windows Performance Toolkit if you have time, then examine the traces. (Or provide access for others to review the traces).

The script continuously checks the system clock each loop, comparing it with the previous value. If the difference reaches a threshold, it flags the delay and halts the WPR session.

To mimic the problematic condition while running the script, simply open and close applications. We understand this isn't common during intensive DAW tasks, but since the irregular pause appears to be the core issue, it shouldn't matter how we simulate it.

The affected machine runs an AMD Ryzen 7 6800HS processor. My other two machines with Intel CPUs are functioning normally.

Script details:
Code:
# version 1.0
# PowerShell script to identify loop delays as follows:
# - Soft failure if delay is between 9-12ms or >=20ms
# - Hard failure if delay is between 13-19ms, which halts WPR and exits the script.
# These delays likely relate to the mysterious ~14ms idle periods under investigation.

# Increase process priority to High
try {
$currentProcess = [System.Diagnostics.Process]::GetCurrentProcess()
$currentProcess.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::High
Write-Host "Process priority adjusted to High."
}
catch {
Write-Warning "Unable to adjust process priority: $_"
}

# Define P/Invoke for NtSetTimerResolution
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class TimerResolution {
[DllImport("ntdll.dll", SetLastError=true)]
public static extern int NtSetTimerResolution(uint DesiredResolution, bool Set, out uint CurrentResolution);
}"

# Configure timer to 1ms resolution (10000 in 100ns units)
$currentResolution = 0
try {
$timerResult = [TimerResolution]::NtSetTimerResolution(10000, $true, [ref]$currentResolution)
if ($timerResult -ne 0) {
Write-Warning "Failed to adjust timer resolution to 1ms (status: $timerResult). Proceeding with default."
}
else {
Write-Host "Timer resolution set to 1ms (current: $($currentResolution/10000)ms)."
}
}
catch {
Write-Warning "Error adjusting timer resolution: $_. Using default resolution instead."
}

# Iteration counter
$totalIterations = 0

# Main execution loop
try {
while (true) {
$start = [System.Diagnostics.Stopwatch]::StartNew()
[System.Threading.Thread]::Sleep(1)
$elapsedMs = [math]::Round($start.Elapsed.TotalMilliseconds)
$totalIterations++

if ($elapsedMs -ge 9 -and $elapsedMs -le 12 -or $elapsedMs -ge 20) {
Write-Host "Soft failure detected: $elapsedMs ms"
}
elseif ($elapsedMs -ge 13 -and $elapsedMs -le 19) {
Write-Host "Loop delay surpassed 10ms: $elapsedMs ms"

# Terminate WPR process
try {
Start-Process -FilePath "wpr" -ArgumentList "-stop WPRRecording.etl" -NoNewWindow -Wait
Write-Host "WPR terminated. ETL file saved."
} catch {
Write-Error "Failed to terminate WPR: $_"
}
# End the script after iterations
Write-Host "Script exiting after $totalIterations runs."
exit
}
}
} finally {
# Revert to default timer setting
try {
$currentResolution = 0
$timerResult = [TimerResolution]::NtSetTimerResolution(0, $false, [ref]$currentResolution)
if ($timerResult -ne 0) {
Write-Warning "Failed to restore default timer resolution (status: $timerResult)."
} else {
Write-Host "Timer resolution restored."
}
} catch {
Write-Warning "Error during timer restoration: $_"
}
}
}
C
ChibiWolf39
02-05-2026, 11:06 PM #1

Laptop model:
ASUS ROG FLOW X16
I'm facing occasional audio issues in my DAW, and after thorough testing, it seems linked to an unusual idle behavior – the CPU seems to pause for up to 14 milliseconds intermittently. I've received help from the Windows Performance Toolkit forum here: https://learn.microsoft.com/en-us/a...au...-need-help. Now, I'm trying to replicate this on another system. Any helpers would be greatly appreciated. You could run a PowerShell script (see below), and based on the outcome, install the Windows Performance Toolkit if you have time, then examine the traces. (Or provide access for others to review the traces).

The script continuously checks the system clock each loop, comparing it with the previous value. If the difference reaches a threshold, it flags the delay and halts the WPR session.

To mimic the problematic condition while running the script, simply open and close applications. We understand this isn't common during intensive DAW tasks, but since the irregular pause appears to be the core issue, it shouldn't matter how we simulate it.

The affected machine runs an AMD Ryzen 7 6800HS processor. My other two machines with Intel CPUs are functioning normally.

Script details:
Code:
# version 1.0
# PowerShell script to identify loop delays as follows:
# - Soft failure if delay is between 9-12ms or >=20ms
# - Hard failure if delay is between 13-19ms, which halts WPR and exits the script.
# These delays likely relate to the mysterious ~14ms idle periods under investigation.

# Increase process priority to High
try {
$currentProcess = [System.Diagnostics.Process]::GetCurrentProcess()
$currentProcess.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::High
Write-Host "Process priority adjusted to High."
}
catch {
Write-Warning "Unable to adjust process priority: $_"
}

# Define P/Invoke for NtSetTimerResolution
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class TimerResolution {
[DllImport("ntdll.dll", SetLastError=true)]
public static extern int NtSetTimerResolution(uint DesiredResolution, bool Set, out uint CurrentResolution);
}"

# Configure timer to 1ms resolution (10000 in 100ns units)
$currentResolution = 0
try {
$timerResult = [TimerResolution]::NtSetTimerResolution(10000, $true, [ref]$currentResolution)
if ($timerResult -ne 0) {
Write-Warning "Failed to adjust timer resolution to 1ms (status: $timerResult). Proceeding with default."
}
else {
Write-Host "Timer resolution set to 1ms (current: $($currentResolution/10000)ms)."
}
}
catch {
Write-Warning "Error adjusting timer resolution: $_. Using default resolution instead."
}

# Iteration counter
$totalIterations = 0

# Main execution loop
try {
while (true) {
$start = [System.Diagnostics.Stopwatch]::StartNew()
[System.Threading.Thread]::Sleep(1)
$elapsedMs = [math]::Round($start.Elapsed.TotalMilliseconds)
$totalIterations++

if ($elapsedMs -ge 9 -and $elapsedMs -le 12 -or $elapsedMs -ge 20) {
Write-Host "Soft failure detected: $elapsedMs ms"
}
elseif ($elapsedMs -ge 13 -and $elapsedMs -le 19) {
Write-Host "Loop delay surpassed 10ms: $elapsedMs ms"

# Terminate WPR process
try {
Start-Process -FilePath "wpr" -ArgumentList "-stop WPRRecording.etl" -NoNewWindow -Wait
Write-Host "WPR terminated. ETL file saved."
} catch {
Write-Error "Failed to terminate WPR: $_"
}
# End the script after iterations
Write-Host "Script exiting after $totalIterations runs."
exit
}
}
} finally {
# Revert to default timer setting
try {
$currentResolution = 0
$timerResult = [TimerResolution]::NtSetTimerResolution(0, $false, [ref]$currentResolution)
if ($timerResult -ne 0) {
Write-Warning "Failed to restore default timer resolution (status: $timerResult)."
} else {
Write-Host "Timer resolution restored."
}
} catch {
Write-Warning "Error during timer restoration: $_"
}
}
}

M
MrLeg0
Junior Member
15
02-05-2026, 11:06 PM
#2
Verify if the laptop requires any pending BIOS updates. Then remove nearly all Asus bloatware, especially Armory Crate, to determine if the problem remains.
M
MrLeg0
02-05-2026, 11:06 PM #2

Verify if the laptop requires any pending BIOS updates. Then remove nearly all Asus bloatware, especially Armory Crate, to determine if the problem remains.

O
Origin883
Junior Member
2
02-05-2026, 11:06 PM
#3
BIOS is current, and I'm installing a standard clean setup of Windows 11 right now, excluding any extra features from ASUS.
O
Origin883
02-05-2026, 11:06 PM #3

BIOS is current, and I'm installing a standard clean setup of Windows 11 right now, excluding any extra features from ASUS.

E
EpicExplosion
Member
129
02-05-2026, 11:06 PM
#4
Is there any way to reach the System Management Interrupt counter on a Ryzen 7 chip? It seems more difficult compared to Intel processors.
E
EpicExplosion
02-05-2026, 11:06 PM #4

Is there any way to reach the System Management Interrupt counter on a Ryzen 7 chip? It seems more difficult compared to Intel processors.

M
MonochromeLG
Member
74
02-05-2026, 11:06 PM
#5
No volunteers left, so I ordered another laptop with the same processor. I'll let you know once I've received and tested it. A friend mentioned I'm obsessed with this issue—totally understandable, that's how solutions come about.
M
MonochromeLG
02-05-2026, 11:06 PM #5

No volunteers left, so I ordered another laptop with the same processor. I'll let you know once I've received and tested it. A friend mentioned I'm obsessed with this issue—totally understandable, that's how solutions come about.

W
W_O_L_F_R_A_M
Member
125
02-05-2026, 11:06 PM
#6
The issue was observed on the second machine, an ASUS Zephyrus G15 GA503RM equipped with a Ryzen 7 6800HS processor. This strongly suggests a recurring problem rather than a random malfunction.
W
W_O_L_F_R_A_M
02-05-2026, 11:06 PM #6

The issue was observed on the second machine, an ASUS Zephyrus G15 GA503RM equipped with a Ryzen 7 6800HS processor. This strongly suggests a recurring problem rather than a random malfunction.

M
MONSTERmoose91
Senior Member
526
02-05-2026, 11:06 PM
#7
Whilst the standard/common way of running LatencyMon doesn't detect the 13ms pause, the "In Depth" mode, available in the Pro version, DOES detect it! I believe this mode works in a similar way to my Powershell script. This is great progress, because now I can simply tell ASUS to use this industry standard utility.
M
MONSTERmoose91
02-05-2026, 11:06 PM #7

Whilst the standard/common way of running LatencyMon doesn't detect the 13ms pause, the "In Depth" mode, available in the Pro version, DOES detect it! I believe this mode works in a similar way to my Powershell script. This is great progress, because now I can simply tell ASUS to use this industry standard utility.