none
Downlink throughput of CDC ECM NDIS 6.2 miniport driver is growing up when uplink is sent. Seen on Windows 7 core i5 laptops. RRS feed

  • Question

  • Issue was seen only on core i5 laptops. When send downlink only with 500 byte length packets we have tp 45 Mb/s, when send some uplink (1 Kb/s, 100 Kb/s, 1Mb/s - the same result) downlink throughput is 65 Mb/s. When turn on Wireshark instead of uplink, throughput is growing up too (but it is seen some uplink with wireshark turned on).

    On core i5 PC and core 2 duo laptops issue has not been seen (initial dl tp is 65 Mb/s, with UL downlink tp is not growing up).

    When boot in safe mode with networking on core i5 Windows 7 lap top, issue is not seen (initial dl tp is 65 Mb/s, with UL downlink tp is not growing up).

    Downlink tp is growing up with UL turned on even if driver does not send UL packets through USB.

    May be cause is not core i5 laptop specific, but some software, but issue was seen only on core i5 laptops. to this moment. I cannot understands difference between safe mode with networking and usual mode leading to normal behavior in safe mode and issue in normal mode. I know that some drivers and user mode apps are not loading in safe mode, but I tried to turn off all drivers and apps that can be cause, and this did not help.

    Any help is greatly appreciated.

    Wednesday, October 31, 2012 2:22 PM

Answers

  • I have seen similar behavior on a pcie device/driver I’ve worked on. With laptops becoming so popular in the last few years the focus on low power has been very strong. The newer Intel Core i* laptop processors/chipsets are very aggressive in their power management and this causes the effect you're seeing. Often you can disable C-states in the bios to for testing but that doesn't help the end user of your device. If you wanted to "optimize" your driver to fix this you would need to create some traffic more frequently to keep the CPU from dropping to a lower C State. That's not a very attractive option since you are creating system load for nothing. To make that more palatable you can make your driver do this more intelligently, like only when you are actually sending traffic, or even above a certain BW. Also, you may have to accept that laptop users will see a lower throughput by default as a tradeoff for the long battery life they get.

    Friday, November 30, 2012 5:48 PM
  • This is a forum on writing device drivers for Windows.  You need to go to somewhere likehttp://answers.microsoft.com/en-us/windows/forum/hardware for information.


    Don Burn Windows Filesystem and Driver Consulting Website: http://www.windrvr.com Blog: http://msmvps.com/blogs/WinDrvr

    Wednesday, October 31, 2012 2:35 PM

All replies

  • This is a forum on writing device drivers for Windows.  You need to go to somewhere likehttp://answers.microsoft.com/en-us/windows/forum/hardware for information.


    Don Burn Windows Filesystem and Driver Consulting Website: http://www.windrvr.com Blog: http://msmvps.com/blogs/WinDrvr

    Wednesday, October 31, 2012 2:35 PM
  • UL must be regular to have DL tp growing, in real life UL is not regular.

    I have noticed that througput is growing up when make message like DbgPrint("Troughput debug print"); before WdfRequestSend, submitting USB packet for receiving.
    Thursday, November 1, 2012 11:08 AM
  • But DebugView must be running. If I close DebugView, throughput is falling from 62 to 45 Mb/s again.
    Thursday, November 1, 2012 11:38 AM
  • You are rigt, with only one CPU enabled throughput looks better (61 Mb/s with packet size 500), but it is not so flat as I have with UL and 4 CPUs.
    Friday, November 2, 2012 11:38 AM
  • I agree with you that cause are core i5 laptops we use for tests. We have another platform - our laptops with core 2 duo have not such problem, DL throughput without UL on core 2 duo laptops we have is the same as throughput on core i5 laptops with UL. But unfortunately it is my problem, because if some things like wireshark, UL or debugprints can increase driver DL throughput on "wrong" laptop then driver is not fully optimized and I must find way to optimize driver for such "wrong" cases.
    Friday, November 2, 2012 2:37 PM
  • I have seen similar behavior on a pcie device/driver I’ve worked on. With laptops becoming so popular in the last few years the focus on low power has been very strong. The newer Intel Core i* laptop processors/chipsets are very aggressive in their power management and this causes the effect you're seeing. Often you can disable C-states in the bios to for testing but that doesn't help the end user of your device. If you wanted to "optimize" your driver to fix this you would need to create some traffic more frequently to keep the CPU from dropping to a lower C State. That's not a very attractive option since you are creating system load for nothing. To make that more palatable you can make your driver do this more intelligently, like only when you are actually sending traffic, or even above a certain BW. Also, you may have to accept that laptop users will see a lower throughput by default as a tradeoff for the long battery life they get.

    Friday, November 30, 2012 5:48 PM
  • Thank you for answer. You described exactly the same thing I did to solve problem.
    Thursday, May 16, 2013 8:16 AM