<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>jg&#039;s Ramblings</title>
	<atom:link href="http://gettys.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://gettys.wordpress.com</link>
	<description>Jim Gettys&#039; ramblings on random topics, and occasional rants.</description>
	<lastBuildDate>Thu, 05 Jan 2012 07:56:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='gettys.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>jg&#039;s Ramblings</title>
		<link>http://gettys.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://gettys.wordpress.com/osd.xml" title="jg&#039;s Ramblings" />
	<atom:link rel='hub' href='http://gettys.wordpress.com/?pushpress=hub'/>
		<item>
		<title>ACM Queue: BufferBloat: What&#8217;s Wrong with the Internet?</title>
		<link>http://gettys.wordpress.com/2011/12/08/acm-queue-bufferbloat-whats-wrong-with-the-internet/</link>
		<comments>http://gettys.wordpress.com/2011/12/08/acm-queue-bufferbloat-whats-wrong-with-the-internet/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 00:52:50 +0000</pubDate>
		<dc:creator>gettys</dc:creator>
				<category><![CDATA[Bufferbloat]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gettys.wordpress.com/?p=696</guid>
		<description><![CDATA[ACM Queue: BufferBloat: What&#8217;s Wrong with the Internet?  A discussion with Vint Cerf, Van Jacobson, Nick Weaver, and Jim Gettys This is part of an ACM Queue case study, accompanying Kathie Nichols and my article that will appear in the January 2012 CACM (Communications of the ACM).<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=696&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a title="ACM Queue: BufferBloat: What's Wrong with the Internet?" href="http://queue.acm.org/detail.cfm?id=2076798">ACM Queue: BufferBloat: What&#8217;s Wrong with the Internet? </a><a href="http://gettys.files.wordpress.com/2010/10/jigsawfish-e1286049568864.png"><img class="alignright size-thumbnail wp-image-113" title="jigsawfish" src="http://gettys.files.wordpress.com/2010/10/jigsawfish-e1286049568864.png?w=150&#038;h=105" alt="Some puzzle pieces of a picture puzzle." width="150" height="105" /></a></p>
<p>A discussion with Vint Cerf, Van Jacobson, Nick Weaver, and Jim Gettys</p>
<p>This is part of an ACM Queue case study, accompanying Kathie Nichols and my article that will appear in the January 2012 CACM (Communications of the ACM).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gettys.wordpress.com/696/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gettys.wordpress.com/696/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gettys.wordpress.com/696/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gettys.wordpress.com/696/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gettys.wordpress.com/696/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gettys.wordpress.com/696/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gettys.wordpress.com/696/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gettys.wordpress.com/696/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gettys.wordpress.com/696/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gettys.wordpress.com/696/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gettys.wordpress.com/696/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gettys.wordpress.com/696/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gettys.wordpress.com/696/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gettys.wordpress.com/696/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=696&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gettys.wordpress.com/2011/12/08/acm-queue-bufferbloat-whats-wrong-with-the-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f8d189bcbc1174d1e7ae15621d5b674f?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">gettys</media:title>
		</media:content>

		<media:content url="http://gettys.files.wordpress.com/2010/10/jigsawfish-e1286049568864.png?w=150" medium="image">
			<media:title type="html">jigsawfish</media:title>
		</media:content>
	</item>
		<item>
		<title>ACM Queue posting of Bufferbloat: Dark Buffers in the Internet</title>
		<link>http://gettys.wordpress.com/2011/12/06/acm-queue-posting-of-bufferbloat-dark-buffers-in-the-internet/</link>
		<comments>http://gettys.wordpress.com/2011/12/06/acm-queue-posting-of-bufferbloat-dark-buffers-in-the-internet/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 17:07:37 +0000</pubDate>
		<dc:creator>gettys</dc:creator>
				<category><![CDATA[Bufferbloat]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://gettys.wordpress.com/?p=677</guid>
		<description><![CDATA[Vint Cerf recommended that I start immediately blogging about bufferbloat a year or so ago, given the severity of the problem to avoid the usual publication delays; that&#8217;s why things appeared here first. But more formal publication has its merits; in particular, having articles for less directly involved in networking and/or more managerially oriented technical [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=677&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Vint Cerf recommended that I start immediately blogging about bufferbloat a year or so ago, given the severity of the problem to avoid the usual publication delays; <a href="http://gettys.files.wordpress.com/2010/10/jigsawfish-e1286049568864.png"><img class="alignright size-thumbnail wp-image-113" title="jigsawfish" src="http://gettys.files.wordpress.com/2010/10/jigsawfish-e1286049568864.png?w=150&#038;h=105" alt="Some puzzle pieces of a picture puzzle." width="150" height="105" /></a>that&#8217;s why things appeared here first.</p>
<p>But more formal publication has its merits; in particular, having articles for less directly involved in networking and/or more managerially oriented technical managers is very important. So I&#8217;ve been working with/in ACM queue to put together a case study. <a href="http://queue.acm.org/detail.cfm?id=2071893" target="_blank">The first piece of this case study was posted last weekend in ACM Queue</a> and will appear as an article in the January issue of CACM (Communications of the ACM) in dead-tree form.  There will also be a full paper posted in ACM queue, but to make the January CACM, we put that aside to finish the (much shorter) article.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gettys.wordpress.com/677/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gettys.wordpress.com/677/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gettys.wordpress.com/677/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gettys.wordpress.com/677/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gettys.wordpress.com/677/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gettys.wordpress.com/677/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gettys.wordpress.com/677/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gettys.wordpress.com/677/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gettys.wordpress.com/677/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gettys.wordpress.com/677/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gettys.wordpress.com/677/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gettys.wordpress.com/677/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gettys.wordpress.com/677/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gettys.wordpress.com/677/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=677&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gettys.wordpress.com/2011/12/06/acm-queue-posting-of-bufferbloat-dark-buffers-in-the-internet/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f8d189bcbc1174d1e7ae15621d5b674f?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">gettys</media:title>
		</media:content>

		<media:content url="http://gettys.files.wordpress.com/2010/10/jigsawfish-e1286049568864.png?w=150" medium="image">
			<media:title type="html">jigsawfish</media:title>
		</media:content>
	</item>
		<item>
		<title>Apple Patents Portrait-Landscape Flipping: the patent system is broken&#8230;</title>
		<link>http://gettys.wordpress.com/2011/07/18/apple-patents-portrait-landscape-flipping-the-patent-system-is-broken/</link>
		<comments>http://gettys.wordpress.com/2011/07/18/apple-patents-portrait-landscape-flipping-the-patent-system-is-broken/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 17:21:51 +0000</pubDate>
		<dc:creator>gettys</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[X Window System]]></category>

		<guid isPermaLink="false">http://gettys.wordpress.com/?p=678</guid>
		<description><![CDATA[I noticed with interest Slashdot&#8217;s article last week on Apple Patenting Portrait-Landscape flipping based on control of one or more accelerometers in Slashdot last week.  As I work at Bell Labs these days, I don&#8217;t read patents, so I&#8217;ll just go on the summary I read there. Here&#8217;s some prior art from June 2001.  In that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=678&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I noticed with interest <a title="Slashdot's article on Apple's accelerometer rotation article." href="http://apple.slashdot.org/story/11/07/14/2330230/Apple-Patents-Portrait-Landscape-Flipping" target="_blank">Slashdot&#8217;s article</a> last week on Apple Patenting Portrait-Landscape flipping based on control of one or more accelerometers in Slashdot last week.  As I work at Bell Labs these days, I don&#8217;t read patents, so I&#8217;ll just go on the summary I read there.</p>
<p>Here&#8217;s some prior art from June 2001.  In that period, at Compaq/HP&#8217;s Cambridge Research Laboratory, we had ported Linux to the iPAQ handheld (with touch screen &amp; expansion capability). Colleagues of mine, including Jamey Hicks, Andy Christian, Frank Bomba, Ben Curis had built an expansion pack for the <a title="iPAQ talk slides" href="http://luv.asn.au/overheads/ipaqtalk.pdf" target="_blank">iPAQ, called the BackPAQ</a> (just like Apple has an I fetish, Compaq had a <em>paq</em> fetish and liked &#8220;i&#8221;s as well), with accelerometer, camera, and additional expansion capability including additional battery, for our (and other&#8217;s) research as part of &#8220;Project Mercury&#8221;; it was obvious that such devices would become standard in short order, but no device at the time had them integral. Quite a few BackPAQ&#8217;s were built and distributed to researchers around the world (small number of hundreds, if I remember correctly). We wrote some papers, distributed a bunch of BackPAQ&#8217;s to like minded researchers around the world, and demonstrated the code at the Usenix conference and elsewhere, and published all the code on handhelds.org (which seems down at the moment). The probability of Apple employees having seen this device and it rotating the screen is an absolute certainty; not only did we show the BackPAQ off at numerous conferences, but we built significant numbers used at universities.</p>
<p>It was blindingly obvious to us that hooking up the accelerometer to be able to rotate the screen would be &#8220;a good idea&#8221;.  <a title="Wikipedia article on Keith Packard" href="http://en.wikipedia.org/wiki/Keith_Packard" target="_blank">Keith Packard</a> and I wrote the xrandr X Window System extension specifically to support screen rotation, for the iPAQ handheld using his TinyX driver (the X extension then became a standard part of the X Window System releases in X.org).  I wrote (in an hour or two) the first version of the xaccel daemon that took the accelerometer data and controlled the screen rotation.  I first packaged it (in ipgk format, for the iPAQ Familiar Linux distribution) on June 11, 2001 to enable the code&#8217;s distribution. Ironically, I like what I remember of xaccel&#8217;s behaviour better than what I now see on the iPhone and the iPad I own.</p>
<p>S<a href="http://gettys.files.wordpress.com/2011/07/backpaq.png"><img class="alignright size-thumbnail wp-image-682" title="BackPAQ" src="http://gettys.files.wordpress.com/2011/07/backpaq.png?w=150&#038;h=87" alt="Project Mercury BackPAQ" width="150" height="87" /></a>ince I can&#8217;t go reading Apple&#8217;s patent itself, I&#8217;ll just note:</p>
<ul>
<li>This is a handheld device, with 802.11 wireless (later versions of the iPAQ became phones).</li>
<li>It has a touch screen</li>
<li>It has an accelerometer in the BackPaq</li>
<li>It used the data from the accelerometer with simple heuristics to control the orientation (portrait or landscape) of the screen (in this case, running the X Window System</li>
</ul>
<div>Now, maybe you&#8217;d like to quibble and claim the idea of putting an accelerometer in a hand-held device is non-obvious.  I think it was pretty obvious, myself, and doing that goes to the group working on Project Mercury. I don&#8217;t remember any patent being filed there. And having done so, it seemed obvious to hook it up to the screen. I know we did not file any patents. Are either of these ideas worth a patent? Personally, I think both ideas are pretty obvious, the first idea more original than the second.</div>
<div>But I&#8217;m sure the first handheld device with touch screen, with accelerometer, rotating the screen under control of that accelerometer was in my hand running my code below, sometime in the year 2000 or 2001 (I haven&#8217;t tried to excavate the exact date),  and that it was widely published on the Internet and used by hundreds of people.</div>
<div>Since handhelds.org seems down at the moment, I spent 5 minutes digging around for the code itself elsewhere.  It&#8217;s short enough I include it below (looks like the copyright notice got cut and pasted from the xrandr code); it was called xaccel.c, strangely.</div>
<h2><strong>Update 1:</strong></h2>
<div>Comments make it clear I fired before aiming carefully: the patent at question apparently is on multitouch gestural overrides to accelerometer screen flipping, apparently. If so, my apologies to Apple.</div>
<div>
<p>We have three problems here:</p>
<ol>
<li>prior art, which may not apply to my example certainly we did not have a multi-touch screen to play with and did not explore that area.</li>
<li>Obviousness may be in the eye of the beholder, but certainly I’ve seen ideas which were non-obvious. The current broken patent system is encouraging filing of patents just for protection of every trivial idea, and to use as weapons against competitors, whether there is merit in them or not.</li>
<li>the treble damages problem, which is why I did not go read the patent in the first place, and stifles actual innovation (independent of whether you thing software patents are a good or bad idea, being unable to know what is going on elsewhere defeats part of the original bargain of why patents were granted in the first place.</li>
</ol>
<div>And I still like my algorithm better than what I experience on the iPad, which often flips the screen when I don&#8217;t want it to flip and begs out for overriding.</div>
</div>
<h2>Update 2</h2>
<p>Jaharks of CMU in a comment below notes that the Itsy folks did gesture based screen rotation on the Itsy.  Quite a few <a title="Itsy pocket computer" href="http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-TN-54.pdf" target="_blank">Itsy</a>&#8216;s (the spiritual predecessor to the iPAQ, and to my knowledge the first handheld device to run Linux, and the inspiration/cause of our handhelds.org work) were built and distributed to universities, along with the source code.</p>
<div><span id="more-678"></span></div>
<div>
<pre>/*
 * $XFree86: xc/lib/Xrandr/Xrandr.c,v 1.4 2001/06/07 15:33:43 keithp Exp $
 *
 * Copyright  2000 Compaq Computer Corporation, Inc.
 *
 * Permission to use, copy, modify, distribute, and sell this software and its
 * documentation for any purpose is hereby granted without fee, provided that
 * the above copyright notice appear in all copies and that both that
 * copyright notice and this permission notice appear in supporting
 * documentation, and that the name of Compaq not be used in advertising or
 * publicity pertaining to distribution of the software without specific,
 * written prior permission.  Compaq makes no representations about the
 * suitability of this software for any purpose.  It is provided "as is"
 * without express or implied warranty.
 *
 * COMPAQ DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL COMPAQ
 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 *
 * Author:  Jim Gettys, Compaq Computer Corporation, Inc.
 */

#include &lt;stdio.h&gt;
#include &lt;X11/Xlib.h&gt;
#include &lt;X11/Xproto.h&gt;
#include &lt;X11/extensions/Xrandr.h&gt;
#include &lt;sys/types.h&gt;
#include &lt;sys/stat.h&gt;
#include &lt;fcntl.h&gt;
#include &lt;unistd.h&gt;
#include &lt;math.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;sys/poll.h&gt;
#include &lt;errno.h&gt;

#define ACC_DEV "/dev/backpaq/accel"
#define ANGLE (.5 * 256)
#define RMAX (.75 * 256)
#define RMIN (-.75 * 256)

#define POLLRATE 100
#define NSAMPS 4

static int err = 0;

int
main (int argc, char **argv)
{
  Display *dpy;
  XRRScreenSize   *sizes;
  XRRScreenConfiguration *sc;
  int		    nsize;
  Window	    root;
  int		    n = 0, i;
  Status	    status;
  Rotation	    rotation, current_rotation, rotations;
  XRRScreenChangeNotifyEvent event;
  static Rotation old = 0;
  int accfd;
  int nsamps = 0;
  struct {
    short x_accel;
    short y_accel;
  } racc;

  struct accel {
    int x_accel;
    int y_accel;
  };
  struct accel acc[NSAMPS];
  struct accel ave;
  struct accel cal = { 0, 0 };

  int calibrated = 0;
  int product;
  int asq = ANGLE * ANGLE;

  pid_t pid;

  /*
   * this is coded to sleep for 10 seconds if either:
   *  the X server isn't running, or:
   *  the accelerometer isn't present, so it can run under any circumstance.
   */

  pid = fork();
  if (pid == -1) {
    fprintf(stderr, "Fork failed errno = %d\n", errno);
  }
  if (pid &gt; 0) {
    printf("%d\n", pid);
    exit(0);
  }
  for (;;) {

    dpy = XOpenDisplay (NULL);
    if (dpy == NULL)    {
      sleep(10);
    }

    root = DefaultRootWindow (dpy);

    sc = XRRGetScreenInfo (dpy, root);

    accfd = open(ACC_DEV, O_RDONLY);

    if (accfd == -1) {
      sleep(10);
    }
    else {
      while (1) {
	n += 1;
	if (n &gt;= NSAMPS) n = 0;

	poll (NULL, 0, POLLRATE);
	if (read (accfd, &amp;racc, sizeof(racc)) == -1) {
	  goto leave;
	}

	nsamps += 1;
	/* compute running average, yes, ma, there are better ways */
	acc[n].x_accel = (int) racc.x_accel;
	acc[n].y_accel = (int) racc.y_accel;

	ave.x_accel = 0; ave.y_accel = 0;
	for (i = 0; i &lt; NSAMPS; i++) {
	  ave.x_accel += acc[i].x_accel;
	  ave.y_accel += acc[i].y_accel;
	}

	ave.x_accel = ave.x_accel / NSAMPS - cal.x_accel;
	ave.y_accel = ave.y_accel / NSAMPS - cal.y_accel;

	/* lame attempt at self calibration */

	if (nsamps == NSAMPS) {
	  cal = ave;
	  if (argc &gt; 1) printf("cal x = %d; cal y = %d\n", cal.x_accel, cal.y_accel );
	}
	product = ave.x_accel * ave.x_accel +
	  ave.y_accel * ave.y_accel;

	if (argc &gt; 2) printf("ave x = %d, ave y = %d\n", ave.x_accel, ave.y_accel);

	if (product &gt; asq ) {
	  rotation = 0;

	  /*
	   * if(ave.x_accel &gt; RMAX) rotation = 8;
	   * if(ave.x_accel &lt; RMIN) rotation = 2;
	   * if(ave.y_accel &gt; RMAX) rotation = 4;
	   * if(ave.y_accel &lt; RMIN) rotation = 1;
	   */

	  if(ave.x_accel &gt; RMAX) rotation = 1;
	  if(ave.x_accel &lt; RMIN) rotation = 4;
	  if(ave.y_accel &gt; RMAX) rotation = 8;
	  if(ave.y_accel &lt; RMIN) rotation = 2;
	  /* don't try to rotate unless needed */
	  if (rotation &amp;&amp; (rotation != old)) {
	    status = XRRSetScreenConfig (dpy, sc, DefaultRootWindow (dpy),
					 (SizeID) 0, 0, rotation, CurrentTime);
	    if (status == RRSetConfigSuccess) old = rotation;
	  }
	}
      }
      leave: XRRFreeScreenInfo(sc);
    }
  }
}</pre>
</div>
<pre></pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gettys.wordpress.com/678/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gettys.wordpress.com/678/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gettys.wordpress.com/678/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gettys.wordpress.com/678/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gettys.wordpress.com/678/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gettys.wordpress.com/678/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gettys.wordpress.com/678/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gettys.wordpress.com/678/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gettys.wordpress.com/678/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gettys.wordpress.com/678/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gettys.wordpress.com/678/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gettys.wordpress.com/678/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gettys.wordpress.com/678/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gettys.wordpress.com/678/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=678&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gettys.wordpress.com/2011/07/18/apple-patents-portrait-landscape-flipping-the-patent-system-is-broken/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f8d189bcbc1174d1e7ae15621d5b674f?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">gettys</media:title>
		</media:content>

		<media:content url="http://gettys.files.wordpress.com/2011/07/backpaq.png?w=150" medium="image">
			<media:title type="html">BackPAQ</media:title>
		</media:content>
	</item>
		<item>
		<title>Progress on the cable front&#8230;</title>
		<link>http://gettys.wordpress.com/2011/07/13/progress-on-the-cable-front/</link>
		<comments>http://gettys.wordpress.com/2011/07/13/progress-on-the-cable-front/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 01:17:43 +0000</pubDate>
		<dc:creator>gettys</dc:creator>
				<category><![CDATA[Bufferbloat]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://gettys.wordpress.com/?p=674</guid>
		<description><![CDATA[I know it&#8217;s not anyone&#8217;s idea of fun to monitor gigantic specs; I certainly don&#8217;t do so.  I  think the following tidbit, while public information, has not been noticed by people. The cable data spec (DOCSIS) has an engineering change in progress to allow the control of buffering in cable modems that was published early [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=674&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://gettys.files.wordpress.com/2010/10/jigsawfish2.png"><img class="alignright size-thumbnail wp-image-114" title="jigsawfish2" src="http://gettys.files.wordpress.com/2010/10/jigsawfish2.png?w=90&#038;h=82" alt="" width="90" height="82" /></a>I know it&#8217;s not anyone&#8217;s idea of fun to monitor gigantic specs; I certainly don&#8217;t do so.  I  think the following tidbit, while public information, has not been noticed by people.</p>
<p>The cable data spec (DOCSIS) has an engineering change in progress to allow the control of buffering in cable modems that was published early this year.  This will allow operators to at least mitigate (reduce) bufferbloat by setting the buffering to something related to the provisioned bandwidth, rather than the current state of buffering, which is either a) whatever size RAM happened to be available in the device, or b) is sized to be the (invalid) BDP &#8220;rule of thumb&#8221; for the maximum possible bandwidth that hardware might ever be used in (resulting in greatly overbuffered devices when used by most people at the typical bandwidths (e.g. 10Mbps service with a DOCSIS 3 modem capable of 100Mbps). The feature is called &#8220;buffer control&#8221; for those who want to dig into the specs.</p>
<p>As a concrete example, this might allow the modem I happen to have to have its worse case latency reduced from the 1.2 seconds I observed at 20Mbps to of order 100ms.  This isn&#8217;t perfect, but it&#8217;s a whole lot better indeed.  To really solve the problem to get latencies under load where they could be, we&#8217;ll need real AQM that can work in this environment, which is more of a challenge <a title="RED in a Different Light" href="http://gettys.wordpress.com/2010/12/17/red-in-a-different-light/">as noted for reasons elsewhere in this blog</a>. I have no information as to whether any deployed cable modems will ever see new firmware to support this addition to the DOCSIS specification.</p>
<p>I gather than new cable modems that support this change to the DOCSIS spec will be in the market by late this year; but note that deploying the support elsewhere in ISP&#8217;s networks to configure them will take more time, and probably won&#8217;t happen until next year.</p>
<p>I have no information of if there are similar changes underway to modify the other widespread broadband technologies (e.g. DSL and fiber).</p>
<p>It is a good start to getting things fixed <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .  Hopefully the market will now help to spread such mitigation steps in the industry.</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gettys.wordpress.com/674/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gettys.wordpress.com/674/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gettys.wordpress.com/674/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gettys.wordpress.com/674/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gettys.wordpress.com/674/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gettys.wordpress.com/674/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gettys.wordpress.com/674/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gettys.wordpress.com/674/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gettys.wordpress.com/674/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gettys.wordpress.com/674/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gettys.wordpress.com/674/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gettys.wordpress.com/674/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gettys.wordpress.com/674/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gettys.wordpress.com/674/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=674&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gettys.wordpress.com/2011/07/13/progress-on-the-cable-front/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f8d189bcbc1174d1e7ae15621d5b674f?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">gettys</media:title>
		</media:content>

		<media:content url="http://gettys.files.wordpress.com/2010/10/jigsawfish2.png?w=150" medium="image">
			<media:title type="html">jigsawfish2</media:title>
		</media:content>
	</item>
		<item>
		<title>Rant warning: there is no single right answer for buffering, ever&#8230; (part 2)</title>
		<link>http://gettys.wordpress.com/2011/07/09/rant-warning-there-is-no-single-right-answer-for-buffering-ever-part-2/</link>
		<comments>http://gettys.wordpress.com/2011/07/09/rant-warning-there-is-no-single-right-answer-for-buffering-ever-part-2/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 13:07:03 +0000</pubDate>
		<dc:creator>gettys</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gettys.wordpress.com/?p=670</guid>
		<description><![CDATA[It&#8217;s clear my previous post was ill formed.  Let me clarify a bit. I&#8217;m really, really, really, happy to see the work in Tomato USB w/reduced buffer bloat, as I am in the work going on to control buffering in DOCSIS (cable modems). Let me make this clear up front as somewhat of an apology to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=670&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s clear my previous post was ill formed.  Let me clarify a bit.</p>
<ol>
<li>I&#8217;m really, really, really, happy to see the work in <a href="http://tomatousb.org/forum/t-370085" target="_blank">Tomato USB w/reduced buffer bloat</a>, as I am in the work going on to control buffering in DOCSIS (cable modems). Let me make this clear up front as somewhat of an apology to hechacker1.The enemy of the good is the perfect, and we can and should do what we can quickly to suffer less.</li>
<li>Work to fix bufferbloat is going to be both a &#8220;do what we can right away&#8221; activity, as well as a long term<em> fundamental redesign</em> problem.  I am deeply unhappy as to quite the depth of that redesign problem.</li>
</ol>
<div>I&#8217;d been thinking of the buffer management problem as a two part problem; the OS level queuing and buffering has been divorced from the device drivers, and how to better integrate the buffer management.  But hechacker1&#8242;s post made it clear it was yet more complex. Somehow, we need to get to a more intelligent unified view of queuing across all of these to handle the dynamic range found in today&#8217;s networks. Linux queue disciplines themselves may have independent buffering as well as in this example. The integration problem  is therefore more deep. I expect we&#8217;ll find similar issues elsewhere in other systems too.</div>
<div>Van Jacobson had warned me last fall of just how challenging the buffering problem was, and I had understood (part) of what he had told me; but it&#8217;s clear it has yet more dimensions than I had appreciated then.  That&#8217;s my deep unhappiness.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gettys.wordpress.com/670/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gettys.wordpress.com/670/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gettys.wordpress.com/670/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gettys.wordpress.com/670/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gettys.wordpress.com/670/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gettys.wordpress.com/670/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gettys.wordpress.com/670/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gettys.wordpress.com/670/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gettys.wordpress.com/670/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gettys.wordpress.com/670/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gettys.wordpress.com/670/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gettys.wordpress.com/670/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gettys.wordpress.com/670/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gettys.wordpress.com/670/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=670&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gettys.wordpress.com/2011/07/09/rant-warning-there-is-no-single-right-answer-for-buffering-ever-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f8d189bcbc1174d1e7ae15621d5b674f?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">gettys</media:title>
		</media:content>
	</item>
		<item>
		<title>Rant warning: there is no single right answer for buffering, ever&#8230;</title>
		<link>http://gettys.wordpress.com/2011/07/06/rant-warning-there-is-no-single-right-answer-for-buffering-ever/</link>
		<comments>http://gettys.wordpress.com/2011/07/06/rant-warning-there-is-no-single-right-answer-for-buffering-ever/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 15:09:43 +0000</pubDate>
		<dc:creator>gettys</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gettys.wordpress.com/?p=664</guid>
		<description><![CDATA[I was just doing my usual google for bufferbloat, to see what&#8217;s going on out there&#8230;. I came across Tomato USB w/reduced buffer bloat; it left me deeply unhappy. I&#8217;m unhappy as it&#8217;s missing a fundamental point to the bufferbloat mess: there is never any single right answer for buffering in a general purpose system.  To [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=664&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://gettys.files.wordpress.com/2010/10/jigsawfish2.png"><img class="alignright size-thumbnail wp-image-114" title="jigsawfish2" src="http://gettys.files.wordpress.com/2010/10/jigsawfish2.png?w=90&#038;h=82" alt="" width="90" height="82" /></a>I was just doing my usual google for bufferbloat, to see what&#8217;s going on out there&#8230;.</p>
<p>I came across <a href="http://tomatousb.org/forum/t-370085" target="_blank">Tomato USB w/reduced buffer bloat</a>; it left me deeply unhappy.</p>
<p>I&#8217;m unhappy as it&#8217;s missing a fundamental point to the bufferbloat mess: there is <em><strong>never</strong></em> any single right answer for buffering in a general purpose system.  To give a simple example: on a loaded 802.11 network, even a single packet of buffering can be an issue and add significant latency (1 packet = 1500 bytes = 12000 bits = 12ms/packet @ 1MBPS) ; but when operating with that identical hardware at 802.11n speeds, we&#8217;ll need potentially many packets of buffering (and AQM to boot, to control background elephant flows that would otherwise fill those buffers). And bandwidth on wireless can change by an order of magnitude (or more) when you move a machine a centimeters.  So there isn&#8217;t a simple &#8220;tuning&#8221; point either; it&#8217;s dynamic.</p>
<p>The buffer management problem here is really hard; and will be a real challenge to get right.  While twisting knobs to mitigate bufferbloat may be helpful at times (particularly now, while buffering is often so grossly wrong), it&#8217;s not going to really this problem.</p>
<p>As a final aside to the above link, so long as the device drivers are radically over buffered, all our fancy QOS queueing and traffic shaping facilities is almost impossible to work right (they can&#8217;t even be effective if the OS is dropping the packets into the device driver before noticing that the packets may need to be resorted); OS buffer management needs to be rethought end-to end, and interact much better with today&#8217;s &#8220;smart&#8221; underlying hardware.  It&#8217;s a really, interesting, difficult problem that has been under the radar for many years, while the situation stewed.</p>
<p>All that being said, I&#8217;m happy to see people beginning to take action in ways that may help the home mess (which seems to be where bufferbloat is most serious).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gettys.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gettys.wordpress.com/664/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gettys.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gettys.wordpress.com/664/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gettys.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gettys.wordpress.com/664/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gettys.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gettys.wordpress.com/664/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gettys.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gettys.wordpress.com/664/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gettys.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gettys.wordpress.com/664/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gettys.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gettys.wordpress.com/664/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=664&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gettys.wordpress.com/2011/07/06/rant-warning-there-is-no-single-right-answer-for-buffering-ever/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f8d189bcbc1174d1e7ae15621d5b674f?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">gettys</media:title>
		</media:content>

		<media:content url="http://gettys.files.wordpress.com/2010/10/jigsawfish2.png?w=150" medium="image">
			<media:title type="html">jigsawfish2</media:title>
		</media:content>
	</item>
		<item>
		<title>Google TechTalk video is up</title>
		<link>http://gettys.wordpress.com/2011/06/02/google-techtalk-video-is-up/</link>
		<comments>http://gettys.wordpress.com/2011/06/02/google-techtalk-video-is-up/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 14:55:11 +0000</pubDate>
		<dc:creator>gettys</dc:creator>
				<category><![CDATA[Bufferbloat]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://gettys.wordpress.com/?p=648</guid>
		<description><![CDATA[I gave bufferbloat talks at Microsoft Research, Apple, Google and a workshop during the week of  April 24; the slides are available. A video of the talk is up as part of the Google TechTalk series.  My thanks to Greg Chesson, Mark Chow and Denton Gentry to pulling together the video despite technical difficulties, and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=648&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://gettys.files.wordpress.com/2010/10/jigsawfish2.png"><img class="alignright size-thumbnail wp-image-114" title="jigsawfish2" src="http://gettys.files.wordpress.com/2010/10/jigsawfish2.png?w=90&#038;h=82" alt="" width="90" height="82" /></a>I gave bufferbloat talks at Microsoft Research, Apple, Google and a workshop during the week of  April 24; <a title="Bay area talk slides" href="http://mirrors.bufferbloat.net/Talks/BayBloat04262011/BayBloat.pdf" target="_blank">the slides are available</a>. A video of the talk is up as part of the Google TechTalk series.  My thanks to Greg Chesson, Mark Chow and Denton Gentry to pulling together the video despite technical difficulties, and my thanks to Vint Cerf for the kind introduction.</p>
<span style="text-align:center; display: block;"><a href="http://gettys.wordpress.com/2011/06/02/google-techtalk-video-is-up/"><img src="http://img.youtube.com/vi/qbIozKVz73g/2.jpg" alt="" /></a></span>
<p>I&#8217;ll be giving an abbreviated version of this talk at the <a title="NANOG 52 Meeting" href="http://www.nanog.org/meetings/nanog52/index.php" target="_blank">NANOG 52</a> meeting (North American Network Operators Group) in Denver at the Sheraton, on Tuesday, June 14, in the Grand Ballroom at 11:30AM. I&#8217;ll try to focus that talk a bit more on the consequences to those operating networks, as best I can given limited time.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gettys.wordpress.com/648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gettys.wordpress.com/648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gettys.wordpress.com/648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gettys.wordpress.com/648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gettys.wordpress.com/648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gettys.wordpress.com/648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gettys.wordpress.com/648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gettys.wordpress.com/648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gettys.wordpress.com/648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gettys.wordpress.com/648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gettys.wordpress.com/648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gettys.wordpress.com/648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gettys.wordpress.com/648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gettys.wordpress.com/648/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=648&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gettys.wordpress.com/2011/06/02/google-techtalk-video-is-up/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f8d189bcbc1174d1e7ae15621d5b674f?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">gettys</media:title>
		</media:content>

		<media:content url="http://gettys.files.wordpress.com/2010/10/jigsawfish2.png?w=150" medium="image">
			<media:title type="html">jigsawfish2</media:title>
		</media:content>
	</item>
		<item>
		<title>IEEE Internet Computing &#8220;Backspace&#8221; column on bufferbloat</title>
		<link>http://gettys.wordpress.com/2011/05/04/ieee-internet-computing-backspace-column/</link>
		<comments>http://gettys.wordpress.com/2011/05/04/ieee-internet-computing-backspace-column/#comments</comments>
		<pubDate>Thu, 05 May 2011 00:12:40 +0000</pubDate>
		<dc:creator>gettys</dc:creator>
				<category><![CDATA[Bufferbloat]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Puzzle]]></category>

		<guid isPermaLink="false">http://gettys.wordpress.com/?p=642</guid>
		<description><![CDATA[Vint Cerf asked me to write his usual &#8220;Backspace&#8221; column for IEEE Internet Computing magazine on bufferbloat.  It appeared in the current May/June issue. You can find an online copy of the article on the bufferbloat.net web site (with permission of the IEEE).<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=642&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Vint_Cerf" target="_blank">Vint Cerf </a>asked me to write his usual &#8220;Backspace&#8221; column for <a href="http://www.computer.org/portal/web/internet/home" target="_blank">IEEE Internet Computing</a> magazine on bufferbloat.  It appeared in the current May/June issue. You can find an <a href="http://www.bufferbloat.net/documents/3" target="_blank">online copy of the article on the bufferbloat.net web site</a> (with permission of the IEEE).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gettys.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gettys.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gettys.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gettys.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gettys.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gettys.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gettys.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gettys.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gettys.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gettys.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gettys.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gettys.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gettys.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gettys.wordpress.com/642/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=642&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gettys.wordpress.com/2011/05/04/ieee-internet-computing-backspace-column/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f8d189bcbc1174d1e7ae15621d5b674f?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">gettys</media:title>
		</media:content>
	</item>
		<item>
		<title>Beware, there are multiple buffers!</title>
		<link>http://gettys.wordpress.com/2011/04/19/beware-there-are-multiple-buffers/</link>
		<comments>http://gettys.wordpress.com/2011/04/19/beware-there-are-multiple-buffers/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 17:22:18 +0000</pubDate>
		<dc:creator>gettys</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gettys.wordpress.com/?p=631</guid>
		<description><![CDATA[Some people note that in my bufferbloat testing I set the transmit queue length (txqueuelen) to zero on Linux. Note that this is *at best* a short term hack to reduce pain, and the wrong answer in general, and on some hardware will cause your system to go completely catatonic.  Please, please, don&#8217;t just blindly [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=631&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://gettys.files.wordpress.com/2010/10/jigsawfish2.png"><img class="alignright size-thumbnail wp-image-114" title="jigsawfish2" src="http://gettys.files.wordpress.com/2010/10/jigsawfish2.png?w=90&#038;h=82" alt="" width="90" height="82" /></a>Some people note that in my bufferbloat testing I set the transmit queue length (txqueuelen) to zero on Linux.</p>
<p>Note that this is *at best* a short term hack to reduce pain, and the wrong answer in general, and on some hardware <strong>will</strong> cause your system to go completely catatonic.  Please, please, don&#8217;t just blindly go twisting knobs without understanding what you are doing&#8230;</p>
<p><span id="more-631"></span>There are many potential places where buffers may hide today. These include (at least):</p>
<ol>
<li>the Linux transmit queue (which txqueuelen controls)</li>
<li>device drivers themselves may hide one or more packets (e.g. the Libertas driver) internally, which simplified its implementation</li>
<li>Most current hardware has very large DMA ring buffers, often allowing for up to 4096 packets/queue in the hardware itself; in the drivers we&#8217;ve examined, the default size seems to be in the 200-300 packet range (also true on some Mac and Windows ethernet drivers we&#8217;ve played width).</li>
<li>Sometimes the hardware itself may also have packet buffers buried in them. Again, from OLPC, the wireless module there has 4 packets of buffering hidden out in the device.</li>
<li>(?) encryption buffers.</li>
</ol>
<p>Old hardware often has very limited buffering in the drivers and hardware; this is part of the history as to how we got to where we are.</p>
<p><em>Some buffering is necessary for your network stack to work properly.</em>  The only reason I was setting txqueuelen to zero from 1000 was that I had figured out there were and additional <strong>256 packets</strong> of buffering in the Intel wireless and ethernet drivers I was using.  Normally, for classification to be able to work, we&#8217;d like to have the Linux transmit queue set to some reasonable (small value), so that we can play nice traffic games of various sorts. So in my experiments, I knew there were already 256 buffers available, and my system would continue to function.</p>
<p>Now the question is: how much buffering is &#8220;enough&#8221;?</p>
<p>And the answer is, unfortunately, not simple. The buffering that should be present depends upon the bandwidth (which may vary by orders of magnitude) and the delay (which is anywhere from 10ms to a couple hundred if you are going around the world).  The rule of thumb has been the bandwidth delay product, where the delay has been presumed to be around 100ms. And it also depends on workload. The rub is that ethernet spans 3 orders of magnitude in bandwidth, and on wireless, it&#8217;s even worse, where moving your laptop a few inches can change your performance by orders of magnitude.</p>
<p>What a server system&#8217;s buffering needs on 1G or 10G networks is very different than what you will need on an 802.11g network (which at best runs about 20Mbps, and often runs much more slowly).  But right now, the knobs, for historical reasons, were often set to maximize bandwidth performance for such systems without regard to latency under load on computers in most people&#8217;s homes.</p>
<p>So whatever we set these knob(s) to, it is guaranteed to be <strong>wrong</strong> much of the time for many systems.  At best, until we have better tools at hand, we can mitigate our pain a bit by twisting the knobs to something that may make more sense for the environment where you are running most of the time, and some of our default values in our operating systems and device drivers may need tuning in the short term to the bandwidth. So some short term mitigation is possible by being slightly more clever.</p>
<p>The real long term solution, however, is AQM (active queue management) in the most general sense: the buffering at all layers of the system needs proper integration and management (not just router queues), and it needs to be very dynamic in nature: ergo the interest we have in eBDP, SFB, algorithms and we hope RED Light soon.  We need to signal the end points to slow down appropriately. And getting the operating systems to manage both their buffering in concert with the underlying device drivers and hardware is why this is going to be an <em>interesting</em> problem (as in the Chinese curse).</p>
<p>Loaded guns can hurt if you aim them at your foot and pull the trigger. So please do be careful, and think&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gettys.wordpress.com/631/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gettys.wordpress.com/631/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gettys.wordpress.com/631/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gettys.wordpress.com/631/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gettys.wordpress.com/631/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gettys.wordpress.com/631/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gettys.wordpress.com/631/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gettys.wordpress.com/631/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gettys.wordpress.com/631/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gettys.wordpress.com/631/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gettys.wordpress.com/631/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gettys.wordpress.com/631/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gettys.wordpress.com/631/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gettys.wordpress.com/631/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=631&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gettys.wordpress.com/2011/04/19/beware-there-are-multiple-buffers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f8d189bcbc1174d1e7ae15621d5b674f?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">gettys</media:title>
		</media:content>

		<media:content url="http://gettys.files.wordpress.com/2010/10/jigsawfish2.png?w=150" medium="image">
			<media:title type="html">jigsawfish2</media:title>
		</media:content>
	</item>
		<item>
		<title>Slides and talk from Prague IETF transport area Bufferbloat talk</title>
		<link>http://gettys.wordpress.com/2011/04/18/slides-and-talk-from-prague-ietf-transport-area-bufferbloat-talk/</link>
		<comments>http://gettys.wordpress.com/2011/04/18/slides-and-talk-from-prague-ietf-transport-area-bufferbloat-talk/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 22:51:06 +0000</pubDate>
		<dc:creator>gettys</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gettys.wordpress.com/?p=627</guid>
		<description><![CDATA[Andrew Clunis was kind enough to do a webm video of my slides and audio from the transport area meeting of the Prague IETF.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=627&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Andrew Clunis was kind enough to do a <a title="Webm video of slides and audio of the Prague IETF site." href="http://mirrors.bufferbloat.net/Talks/PragueIETF/jg_bufferbloat_ietf80.webm">webm video</a> of <a title="PDF of the Prague IETF bufferbloat talk" href="http://mirrors.bufferbloat.net/Talks/PragueIETF/IETFBloat7.pdf" target="_blank">my slides</a> and audio from the transport area meeting of the Prague IETF.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gettys.wordpress.com/627/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gettys.wordpress.com/627/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gettys.wordpress.com/627/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gettys.wordpress.com/627/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gettys.wordpress.com/627/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gettys.wordpress.com/627/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gettys.wordpress.com/627/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gettys.wordpress.com/627/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gettys.wordpress.com/627/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gettys.wordpress.com/627/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gettys.wordpress.com/627/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gettys.wordpress.com/627/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gettys.wordpress.com/627/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gettys.wordpress.com/627/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gettys.wordpress.com&amp;blog=3712240&amp;post=627&amp;subd=gettys&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gettys.wordpress.com/2011/04/18/slides-and-talk-from-prague-ietf-transport-area-bufferbloat-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f8d189bcbc1174d1e7ae15621d5b674f?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">gettys</media:title>
		</media:content>
	</item>
	</channel>
</rss>
