Subject: Re: Throttling IO Requests in NetBSD via Congestion Control
To: Sumantra Kundu <sumantra@gmail.com>
From: Greg Troxel <gdt@ir.bbn.com>
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.
=2D-=20
Greg Troxel <gdt@ir.bbn.com>
--=-=-=
Content-Type: application/pgp-signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (NetBSD)
iD8DBQFE80bd+vesoDJhHiURAphcAKCk/6Co8cSIXbLRuW1kPi7yqWuZ/QCfeDzP
ygWYL4sElCE8OitakC0c/94=
=er7J
-----END PGP SIGNATURE-----
--=-=-=--