[rds-devel] [PATCH] RDS: waking poll waiters

Vladimir Sokolovsky vlad at dev.mellanox.co.il
Tue Jun 26 09:24:30 PDT 2007


Vladimir Sokolovsky wrote:
> Hi Zach,
> Here is the waking poll waiters patch, updated following your comments:
> 
> RDS: rds_poll() always returns POLLOUT.  If you try to send and get
> EWOULDBLOCK because the remote receiver is congested then you don't get
> to wait for POLLOUT to be raised before sending again -- it's always
> raised.  This is worked around by implementing some kind of exponential
> back-off while retrying the send.  This can be done by increasing the
> timeout given to poll().  At each poll() timeout expiry the send is
> tried again.
> 
> This idea of waking poll() waiters on congestion notification hopes to
> cut down on the latency between when the send could succeed and when the
> poll() timeout hits and the send is retried.  If we receive a congestion
> bitmap update from the remote node we wake poll() waiters, giving them a
> chance to retry their send.
> 
> Signed-off-by: Vladimir Sokolovsky <vlad at mellanox.co.il>
> 

Hi,
OFED-1.2-20070626-0917 includes the patch above:

http://www.openfabrics.org/builds/ofed-1.2/OFED-1.2-20070626-0917.tgz

Regards,
Vladimir



More information about the rds-devel mailing list