: Make UDP wait for 64k of free buffer before telling select/poll there is space to send.
Subsystems (2)
PATCH 1/1 : Make UDP wait for 64k of free buffer before telling select/poll there is space to send.
This should allow better handling of large (> 2048 byte) UDP packets when the socket write buffer is relatively large....
include/net/sock.h +10 -1
@@ -1230,7 +1230,16 @@*/ static inline int sock_writeable (struct sock *sk) { -return sock_wspace (sk) >=SOCK_MIN_WRITE_SPACE ; +/* The goal is to only signal writable when there is at least 64k of buffer space +* when your send buffers are 128k or bigger. The reason is that otherwise +* you get many failed UDP sends when you run > SOCK_MIN_WRITE_SPACE sized packets +* at extreme speed (ie faster than your network can keep up). This change is +* designed to make select/poll wait untill you can actually be assured of sending +* the UDP packet at least into the kernel buffers w/out dropping it. +* This puts us more in line with sock_dev_write_space in core/sock.c too. --Ben +*/ +return sock_wspace (sk) >=max (SOCK_MIN_WRITE_SPACE , +min ((unsigned int )(0xFFFF ), sk->sndbuf >>1 )); }static inline int gfp_any (void )
Signature · 3 lines
Ben Greear <[email protected]> <Ben_Greear AT excite.com> President of Candela Technologies Inc http://www.candelatech.com ScryMUD: http://scry.wanfear.com http://scry.wanfear.com/~greear