There's a double-counting bug where sched.idleTime is incremented for both idle mark workers and for genuine idle P time, but inconsistently. Specifically, the double-counting only happens when the GC CPU limiter needs to obtain up-to-date timing information from each P, not in the start/stop paths for the limiter event API.

Comment From: gopherbot

Change https://go.dev/cl/687998 mentions this issue: runtime: fix idle time double-counting bug