The beginning
Let's start from the beginning. I use the Windows Performance Toolkit for performance analysis that I conduct systematically. Additionally, I use it for comparisons (before and after changes that I test). Recently, I decided to start taking measurements for this exact reason—to determine if a particular setting provides a detectable performance boost in the system.
Windows Performance Analyzer shows negative DPC numbers on dxgkrnl.sys - Possibly an error of AMD drivers?
- AlchemyTweaks
- Posts: 3
- Joined: 13 Jul 2022, 21:57
- Location: Greece
- Contact:
- Chief Blur Buster
- Site Admin
- Posts: 12139
- Joined: 05 Dec 2013, 15:44
- Location: Toronto / Hamilton, Ontario, Canada
- Contact:
Re: Windows Performance Analyzer shows negative DPC numbers on dxgkrnl.sys - Possibly an error of AMD drivers?
Monotonic counters (e.g. RTDSC) can tick out of phase on different cores of some CPUs.
When benchmarking utilities gets a timestamp from one core, and then afterwards a timestamp from a different core, you can get negative time deltas. Sometimes this is harmless and sometimes this is harmful. I don't have enough information if you're witnessing some glitching/issues from this.
For critical benchmarking, try forced thread affinity for critical DPC timestamping tasks. This will help avoid negative numbers in SOME cases. Obviously, don't do this if it isn't causing problems.
For programmers of benchmark utilities: Some APIs (e.g. QueryPerformanceCounter() for example) check against reverse-ticking at chip-level counter (e.g. RTDSC quirks on some multicore CPUs), so you can program benchmarking utilities that don't have side effects from backwards ticking.
When benchmarking utilities gets a timestamp from one core, and then afterwards a timestamp from a different core, you can get negative time deltas. Sometimes this is harmless and sometimes this is harmful. I don't have enough information if you're witnessing some glitching/issues from this.
For critical benchmarking, try forced thread affinity for critical DPC timestamping tasks. This will help avoid negative numbers in SOME cases. Obviously, don't do this if it isn't causing problems.
For programmers of benchmark utilities: Some APIs (e.g. QueryPerformanceCounter() for example) check against reverse-ticking at chip-level counter (e.g. RTDSC quirks on some multicore CPUs), so you can program benchmarking utilities that don't have side effects from backwards ticking.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on: BlueSky | Twitter | Facebook
Forum Rules wrote: 1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
2. Please report rule violations If you see a post that violates forum rules, then report the post.
3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!
