Menu

high CPU load drive UDT crazy

2014-04-20
2014-04-20
  • Nicolas Bouliane

    I'm running xubuntu 13.10
    UDT v4.11 (downloaded from sourceforge)

    I'm trying to understand why when I run "stress -c 2" in order to get my two core running at 100%, UDT is getting crazy.

    the function core.cpp:void CUDT::checkTimers() is getting called way more faster,
    the currtime value is increasing really fast and then m_iEXPCount is getting increased really fast too.

    I also think that core.cpp:CUDT::processCtrl() is getting called less often, which doesn't reset m_ullLastRspTime as often as it should.

    ( for my test I don't transfer any data, I just open a connection between a client and a server, so just the keep alive packets are exchanged )

    thank you
    Nicolas J. Bouliane

     
  • Nicolas Bouliane

    more informations:

    The client side is my laptop - the cpufreq on my laptop dynamically change between 800mhz and 1800mhz as needed.

    When I compile UDT on my laptop, UDT try to figure out the cpufrequency of my machine.

    I guess that getCPUFrequency()/readCPUFrequency() should not like that the CPUFrequency of my laptop change all the time...

     
  • Nicolas Bouliane

    in the function common.cpp:uint64_t CTimer::readCPUFrequency()

    If I comment the whole block and I only keep this:

    uint64_t CTimer::readCPUFrequency()
    {
    uint64_t frequency = 1; // 1 tick per microsecond.
    if (frequency < 10)
    {
    frequency = 1;
    m_bUseMicroSecond = true;
    }
    return frequency;
    }

    In order to fallback on the micro-second, everything is working fine...

     

Log in to post a comment.