sprite

The case of DPC latency

1. What is DPC latency

“If any kernel-mode device driver in your Windows system is implemented improperly and causes excessive latencies of Deferred Procedure Calls (DPCs) then probably drop-outs will occur when you use real-time audio or video streaming applications” – http://www.thesycon.de/eng/latency_check.shtml

Basically, if your system has a high DPC latency and you are watching a movie your audio/video will pause or skip for a couple of seconds. If you were to also run a P2P application while you are watching a movie, this would lead to a very bad movie experience, audio/video desynchronizations occurring many times during playtime. The same will happen when you play a game.

These audio/video dropouts will occur regardless if you have a single-core Pentium 4 2.4 GHz processor or a quad-core Core i7. Bad coding of the drivers is usually the fault for high and very high DPC latency.

The DPC latency varies depending on the applications you are running (foreground and background). It’s mostly influenced by audio data streams, video data streams and network activity (wireless, ethernet, bluetooth), but that’s not all, for example mouse movement also causes DPC latency to rise.


Contents

  1. What is DPC latency

  2. How to check DPC latency

  3. DPC Latency tests and results

  4. Tips & tweaks for reducing DPC latency

Page updates

  • 13 Sep 2019:Added tip no. 7 to 4.Tips & tweaks for reducing DPC latency
  • 24 Jul 2016: Article updated
  • 16 Mar 2012: Added some quick tips to 4.Tips & tweaks in reducing DPC latency
  • 11 Aug 2010 : Added Win 7 & Asio results to 3.1 chapter (draft version)
  • 3 Aug 2010 : First Revision

2. How to check DPC latency

For Windows XP, Windows Vista, Windows 7, Windows Server 2003, Windows Server 2008 use DPC Latency Checker or LatencyMon.

For Windows 8, Windows 8.1, Windows 10, Windows Server 2012, Windows Server 2016 use LatencyMon.

DPC Latency Checker measures DPC latency of the overall system. LatencyMon measures DPC latency of the overall system and of individual drivers.

3. DPC Latency tests and results

DPC latency tests done on the following configuration:   Core 2 Duo 8400 3.0 GHz, DFI LP UT P35 motherboard,Marvell 1 GB Lan onboard, Realtek ALC885 audio onboard, 2×2 GB Ram, ATI HD 3870 video card, Asus Xonar DX sound card, Windows XP x64 (sp2), Windows 7 x64(sp1), DPC Latency Checker.

3.1 Asus Xonar DX and Realtek ALC885 audio drivers DPC latency tests

The tests where done with 5.1 channel/44.1KHz  settings except the cases where there are other settings specified. For comparison I also tested my on-board audio card Realtek ALC885 with Realtek  HD 2.50 driver

Results interpretation

Values are approximates. Values between 0-300µs are good, 300-500µs are OK,  500-1000µs are bad and values >1000us are terrible.

Don’t compare Windows XP results with those of Windows 7. Windows 7 is a clean install where Windows XP is fully loaded with programs. After closing the programs that where running in the background, such as Rainmeter, the results for Uni Xonar low DPC latency on XP where 68 µs .

The results

As you can see Realtek did a pretty good job with their drivers, the differences are enormous between Realtek and ASUS/C-MEDIA drivers with the same settings. For those of you who don’t know, I made a version of the Xonar drivers (UNi Xonar low DPC latency) which disables Asus Audio Center from startup, resulting in a lower DPC latency at ~120µs . This doesn’t mean that if you disable autostartup for Realtek Panel you will get better results.  ASUS  Xonar drivers are special and issues pop-up where they shouldn’t.

3.2 Network activity impact on DPC latency

Here are 2  examples where increased network activity rises DPC latency

a) µtorrent – network usage:  10 KBps Download, 310 KBps Upload

utorrent-310-kb-up

b) µtorrent – network usage:  4,5 MBps Download, 300 KBps Upload

utorrent-4-5-mb-dl-300-kb-up

4. Tips & tweaks for reducing DPC latency

If you have problems with high DPC latency, here are some quick tips that can lower it:

  1. Update your drivers (especially audio, network LAN, WiFi, Bluetooth, TV tuner). Try searching for them on the original chip manufacturer and not on the motherboard manufacturers page.
  2. Disable unused components like LAN, onboard audio card, Bluetooth etc. via BIOS or Device Manager (in Windows Run or Search type devmgmt.msc or right click on Computer->select Manage->select Device Manager)
  3. Disable any motherboard/CPU monitors that autostart with Windows (like GigaByte EasyTune, ASUS AI Probe and so on)
  4. Disable High Precision Event Timer (HPET) if you are using Windows Vista/7/8/10.
  5. Update your motherboard BIOS to the latest version.
  6. Update Windows.
  7. Avoid IRQ sharing between devices by changing the interrupt mode to MSI for some of those devices, see info here.

Some good tips in regards to updating drivers and different performance enhancements can be read here (by Von Dach).

Applies to:

  • Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10, Windows Server 2008, Windows Server 2012, Windows Server 2016 and Windows Server 2019

39 Comments

  1. Alt23 Feb 2014 @ 11:08

    SetTimerResolutionService (http://forums.guru3d.com/showthread.php?t=376458) helps to improve latency for Windows OS (from XP to 8.1).
    Some info about it here (http://www.lucashale.com/timer-resolution/)

    Reply

    • CarvedInside26 Feb 2014 @ 00:17

      From my experience this tool would only be useful if you would be on Windows Vista/7/8 and if a application you would use would not signal the system that it is a multimedia application so that the system would change its timer resolution from the IDLE state.

      Reply

  2. TuN17 Nov 2019 @ 21:32

    Seems that the 1909 greatly increased DPC latency with the Win 10 drivers ( used the low DPC latency during installation )
    https://imgur.com/a/7hPH1OG

    Reply

    • CarvedInside18 Nov 2019 @ 01:09

      Interesting. Is cmudaxp.sys always reported as having the highest DPC routine execution? Was the test done under the exact same conditions (if audio was playing or not, if ASUS audio center was launched in that session)?

      Reply

      • TuN18 Nov 2019 @ 02:09

        It’s usually the highest, but there are few others not that far behind, like CLASSPNP.sys, ntoskrnl.exe and storport.sys. I’ve had some issues (spikes) when I’ve upgraded from 1903 -> 1909, but I’ve reinstalled the GPU drivers and Uni Xonar drivers, and the issues seem to have gone away (high DPC latency did remain however). In both cases the ASUS audio center was not run (only XonarSwitch) and I think the audio was playing in both cases.
        I can test more tomorrow, let me know how do you want the test to be done.
        Thanks 🙂

        Reply

        • CarvedInside18 Nov 2019 @ 04:08

          On version 1903, if you didn’t have the audio playing, that could account for the different DPC latency reported by cmudaxp.sys. If your computer is in sleep mode or was not shut down, restart it and do 2 tests, one with audio playing and one without.
          You still have Windows 1903 available as a boot option?

          Reply

          • TuN18 Nov 2019 @ 13:48

            I’m pretty sure I had audio playing. Sadly, I don’t have the 1903 anymore. After I’ve upgraded to 1909, I actually wanted to go back to 1903 because of the problems I’ve had with stuttering, but the option to go back to the earlier build is not even there. I never put my computer in sleep mode, it’s either ON or OFF.
            One thing: I’ve noticed after going from 1903 -> 1909, Windows are trying to upgrade cmedia driver ( I have paused the updates for now ), and perhaps that’s what was causing my spikes and issues, and not the 1909 build itself. I wonder which driver does it want to upgrade?
            I’ll test this out hopefully today.

            Update: https://imgur.com/a/mCnTe2M

            Reply

            • CarvedInside23 Nov 2019 @ 01:59

              They probably moved the option to revert back to previous version. With each version of Windows 10, MS is changing things and renaming things.
              I am not aware of them having any new driver, in fact they don’t have any driver for the Xonar cards. If you have any new info on this let me know.
              Judging from “Total Execution (ms)”, the results you’ve provided may be fine at least if I compare them to the results of my Windows 7 system. When I have more time I will try to test my system on Windows 10 1903 and let you know how they compare to yours.

              Reply

              • TuN27 Nov 2019 @ 04:38

                Sadly I haven’t found the rollback option.
                I did go back to the restore point before the updates to check which updates were there, and took a SS for you:
                https://i.imgur.com/nEUXEZN.png

                I’ve had massive stuttering happen in PUBG every 1h-4h, microphone stopped working randomly on Discord ( about once per hour ). I’ve reinstalled the GPU driver ( with DDU ), and the Uni Xonar driver as well, and the issue seems to be gone for now.

                Reply

                • CarvedInside27 Nov 2019 @ 20:03

                  Because Windows 10 v1909 was delivered as a standard update (Microsoft calls this an enablement package) and not a feature update like the previous ones, maybe that’s why the rollback option is missing. Maybe to rollback, one would need to uninstall the update just like you would for other standard updates.
                  If you need to block the Windows 10 updates you can use this tool.

                  Now that you are on v1903, if you have the time to redo the DPC latency measurement, the one when playing mp3 music via AIMP. I think it’s duration can be less, it can be only 20 or 30 min.

                  Reply

AdminAuthorFeaturedBuried

Leave a Comment

Your comment may be held for moderation. If it does not show up immediately, please be patient. Comments have to comply with these rules:
  • English language only
  • Don't post insults or threats
  • Try to keep the discussion constructive and informative

We've noticed that you're using an AdBlocker

It's not just you, over 66% of our site's visitors are blocking the ads.

Please disable adblock for this website and refresh this page if you:
find the content useful want us to create more useful content and software want tech support through the comment section

The ads are placed so that there is minimal interference with page reading. There are no pop-up, pop-under or sticky ads.

Alternatively, you can support us by making a donation.

Close