Subject: Re: I/O priorities
To: None <tech-kern@netbsd.org>
From: Jed Davis <jldavis+netbsdlist@cs.oberlin.edu>
List: tech-kern
Date: 06/22/2002 02:50:52
Aidan Cully <aidan@kublai.com> writes:

> I've been thinking about this, and I don't think I agree with your
> reasoning.  TCP congestion avoidance works decently, but it's a
> different problem domain: a fundamental characteristic of IP is
> the heterogenous network, and there's no telling at the source
> how much throughput is available for traffic.  That's not the case
> with device I/O, except for network-mounted devices.  I also think
> that TCP congestion avoidance still doesn't deal very well with
> interactive sessions.  Try connecting to the Internet using a 56K
> modem, connecting to a remote host using telnet or ssh, and starting
> a large download at the same time.  See what happens to your telnet
> session, and you're approaching a problem closer to what we'd be
> trying to solve with an I/O scheduler.

One can also use ping(8) to demonstrate quantitatively how much things
deteriorate in this case.  (I got numbers in the 5s-6s range, trying
this a few weeks ago.)

I suppose that, in the case of IP, that this is what the TOS field was
meant for: moving interactive traffic ahead of bulk traffic in the
relevant queue(s).  The problem is that it requires explicit marking
(which I have actually observed OpenSSH doing) and various devices'
actually reading off and honoring the TOS marking (which I'm not
especially optimistic about).

--Jed

-- 
#!/usr/bin/perl -- ## "But life wasn't yes-no, on-off.  Life was shades of gray,
sub f{(($n,$d,@_)=@_)?(substr(## and rainbows not in the order of the spectrum."
" ExhortJavelinBus",$n&&$d/$n,1),$n?f($d##   -- L. E. Modesitt, Jr., _Adiamante_
%$n,$n,@_):&f):("\n")}print f 1461,10324,55001,444162,1208,1341,5660480,79715997