Mark Kettenis <[EMAIL PROTECTED]> writes:
> I bet. When memory is getting low, Mach starts paging out stuff.
> Apparently it does so at a rate which causes every request to start a
> new thread (i.e. the previous pageouts have not yet completed when a
> new one arrives). Some time ago Thomas made some changes to the
> paging code in the kernel with the idea to avoid this scenario, but
> apparently it doesn't help enough in your case.
My changes weren't designed to do anything about this scenario; they
were designed simply to start paging a little sooner in the
"filesystem uses lots of memory" case and reserve some for
non-filesystem things (I'm abbreviating a great deal here). My fix
would, as a secondary thing, manage to keep the system alive in this
state, rather than have it crash, but wasn't oriented to keeping the
system speedy.
The behavior you describe is in fact probably the cause of the problem
you cite; needless to say it produces a serious thrash and doesn't do
real well. Really, the deal there is that libpager needs to be
way-cleverer about thread usage.