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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
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...
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...