All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH]:  Make UDP wait for 64k of free buffer before telling select/poll there is space to send.
@ 2001-12-24  6:24 Ben Greear
  0 siblings, 0 replies; only message in thread
From: Ben Greear @ 2001-12-24  6:24 UTC (permalink / raw)
  To: linux-kernel, David S. Miller, Alan Cox

This should allow better handling of large (> 2048 byte) UDP packets
when the socket write buffer is relatively large....

diff -u -r -N -X /home/greear/exclude.list linux/include/net/sock.h linux.dev/include/net/sock.h
--- linux/include/net/sock.h	Fri Dec 21 10:42:04 2001
+++ linux.dev/include/net/sock.h	Sun Dec 23 12:22:52 2001
@@ -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)

-- 
Ben Greear <greearb@candelatech.com>       <Ben_Greear AT excite.com>
President of Candela Technologies Inc      http://www.candelatech.com
ScryMUD:  http://scry.wanfear.com     http://scry.wanfear.com/~greear



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-12-24  6:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-12-24  6:24 [PATCH]: Make UDP wait for 64k of free buffer before telling select/poll there is space to send Ben Greear

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.