This might be something to help with the poor throughput.
By using this patch, I have observed an increase of tx rates
from  600..800kbits/sec (without this modification) up to 94.8 Mbits/sec
(which is as good as TCP gets).
Please test - I'd be curious what your experiences are with this one. 

--------------------------> Patch <----------------------------------------

[DCCP]: Handle EAGAIN in dccp_write_xmit

If dccp_wait_for_ccid returns -EAGAIN, the packet is silently 
deqeued and not sent. At the receiver this counts as loss, increases
the loss rate and reduces throughput. 
This patch handles the EAGAIN case by restarting afresh to peek into
the write queue and send the packet.

Signed-off-by: Gerrit Renker <[EMAIL PROTECTED]>
---
 net/dccp/output.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/net/dccp/output.c
+++ b/net/dccp/output.c
@@ -255,8 +255,11 @@ void dccp_write_xmit(struct sock *sk, in
                                err = dccp_wait_for_ccid(sk, skb, &timeo);
                                timeo = DCCP_XMIT_TIMEO;
                        }
-                       if (err)
+                       if (err) {
+                               if (err == -EAGAIN)
+                                       continue;
                                DCCP_BUG("err=%d after dccp_wait_for_ccid", 
err);
+                       }
                }
 
                skb_dequeue(&sk->sk_write_queue);
-
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to