title: Advantage of a 64k mtu for lo?
body: <p>I saw <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=0cf833aefaa85bbfce3ff70485e5534e09254773" rel="nofollow">this commit</a> in the Linux kernel and was confused by it:</p>
  
  <blockquote>
    <p>loopback current mtu of 16436 bytes allows no more than 3 MSS TCP
    segments per frame, or 48 Kbytes. Changing mtu to 64K allows TCP
    stack to build large frames and significantly reduces stack overhead.</p>
    
    <p>Performance boost on bulk TCP transferts can be up to 30 %, partly
    because we now have one ACK message for two 64KB segments, and a lower
    probability of hitting /proc/sys/net/ipv4/tcp_reordering default limit.</p>
  </blockquote>
  
  <pre><code>--- a/drivers/net/loopback.c
  +++ b/drivers/net/loopback.c
  static void loopback_setup(struct net_device *dev)
  {
  -       dev-&gt;mtu                = (16 * 1024) + 20 + 20 + 12;
  +       dev-&gt;mtu                = 64 * 1024;
  </code></pre>
  
  <p>What does lo have to do with TCP transfers? Isn't it just a loopback address where you look ethernet traffic for whatever reason?</p>