[Click] socket.cc patch
Mark Huang
mlhuang at CS.Princeton.EDU
Mon May 29 23:13:34 EDT 2006
Beyers Cronje wrote:
> Server socket with connected upstream input non-empty queue before the
> connection has been accepted will never set SELECT_WRITE on the active
> socket, causing the queue to fill up without ever being emptied by the
> socket element. Setting SELECT_WRITE after accept on the active socket is
> the solution. This works even when the queue is empty as the elements will
> disable SELECT_WRITE as soon as the queue signal goes off.
I have a couple of additional patches to Socket that I need to post,
that simplifies the polling loop in run_task() and gets rid of the
backoff timer, which I copied from ToDevice without really knowing why
it was necessary. All that the backoff timer did was reduce performance
in some of our PlanetLab experiments by 20-30%.
I'll test your patch against the new polling loop and make sure it still
works before posting the new patches.
> PS For future enhancements I'd like to add a signal to the socket
> element to
> indicate an active connection. This will prevent elements from pushing
> packets into the socket upstream queue if there is no active connection. If
> this is something you think you would want to integrate with cvs let me
> know.
Interesting, would this involve any other element changes or is there
some built-in functionality in the scheduler for dropping unpushable
packets?
--Mark
More information about the click
mailing list