UDT 4.9 support #143

Closed
eile opened this Issue Jul 18, 2012 · 5 comments

Comments

Projects
None yet
2 participants
Owner

eile commented Jul 18, 2012

Dardo,

Creating this issue to see if it is feasible to compile UDT against 4.9 (Ubuntu 12.04 version). The offending code is:

int avail, len;
if( UDT::ERROR == UDT::getsockopt( _udt, 0, UDT_RCVDATA, &avail, &len ))
    LBWARN << UDTLASTERROR( "UDT::getsockopt" ) << std::endl;

...since UDT_RCVDATA was introduced in 4.10. Since you know the API better, can you investigate if there is another way to implement this?

@ghost ghost assigned dardok Jul 18, 2012

Contributor

dardok commented Jul 18, 2012

Can do.

Contributor

dardok commented Jul 20, 2012

Ugh. At first glance this doesn't look easy. Thing is, IIRC UDT expects one to read all available data from the socket upon being notified of readability from its epoll_wait, insofar as it will not notify on data availability unless more data arrives. Since Collage won't necessarily drain the UDT socket I had to play games with checking for more bytes via that sockopt and keeping the Collage notifier "hot" if necessary. Funny thing, this is just like the RDMA "issue" I had with he QLogic driver.

I'll ponder on it some more, but I think its a bit of work. I suspect one might have to keep a local buffer (like the ring in RDMA) and copy available data out of UDT and keep track such that the notifier can be properly managed...

Owner

eile commented Jul 20, 2012

Don't spend too much time on it (unless you want to). It's just a convenience that I can build it on my Ubuntu WS. I'll look into UDT/Buildyard integration as an alternative.

Owner

eile commented Jul 20, 2012

OMG. CVS and Makefiles. Maybe no Buildyard support then.

Owner

eile commented Dec 12, 2012

Since Ubuntu 12.10 with UDT 4.10 is out, this bug has become unneeded.

@eile eile closed this Dec 12, 2012

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment