Subject: Re: Throttling IO Requests in NetBSD via Congestion Control
To: Sumantra Kundu <>
From: Greg Troxel <>
List: tech-kern
Date: 08/28/2006 15:41:14
Content-Transfer-Encoding: quoted-printable

  So, I think we need to partition the UVM page allocation between
  reader and writer processes. Thus if P is the total number of pages,
  P_W pages are allocated to writer processes while P_R are allocated to
  reader process. All writers compete for P_W pages while all reader
  competes for P_R processes..

  In a nutshell, the proposal is for a admission control mechanism in
  the uvm for writer processes along with the uvm_cca algorithm.

Rather than partitioning, perhaps we need the same kind of pushback
mechanism where a process sleeps when it is being too piggy of any
scarce shared resource.  I'm concerned that we could end up with a
bunch of ad hoc mechanisms rather than general ones that will work in
unknown situations.  For example, it isn't clear to me that penalizing
writers is even the right thing - I would want to penalize those that
cause lots of IO requests, so I realize mean some sort of fair share
of disk IO capacity.

If you can avoid having to declare a process to be reader or writer,
that would be good.  So I think this means declining to let a process
have pages when there are few and it has a lot.  This means, though,
that the pagedaemon may have to run in such cases where it would not
have.  I'd advise treading carefully, and posting a plan since these
chagnes are getting scarier.

    Greg Troxel <>

Content-Type: application/pgp-signature

Version: GnuPG v1.4.5 (NetBSD)