Subject: Re: Throttling IO Requests in NetBSD via Congestion Control
To: Sumantra Kundu <email@example.com>
From: Greg Troxel <firstname.lastname@example.org>
Date: 08/28/2006 15:41:14
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 <email@example.com>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (NetBSD)
-----END PGP SIGNATURE-----