Subject: Re: UBC, interactive performance, etc
To: None <chuq@chuq.com, toddpw@best.com>
From: None <eeh@netbsd.org>
List: tech-kern
Date: 04/04/2001 18:37:22
	> what causes pages to be paged out is not that processes are dormant,
	> it is that memory is low.  pages which have been used "recently" are
	> not paged out but rather put back at the end of the list to consider.

	Hmm. But if the "frozen X server" isn't getting paged out, then what is
	keeping it from running?  Is there any chance that intensive UBC activity
	could cause an I/O bound process to obtain an artificially high scheduling
	priority (thus hogging the CPU)?

There are two things occurring that cause the X server to freeze.  First, 
heavy I/O eats lots of pages.  This makes the page scanner and pmap_zero_page()
to go crazy trying to provide pages to the buffer cache and prevents most
other processes from getting much CPU time.  The X server is huge, and has
many different working sets, depending on what it's doing.  While it's idle
the pages are not being referenced at all, and when you switch from typing 
on the screen to moving the mouse, different portions of the server are 
activated on different pages.  Also, screen refresh is done by individual
applications that can be paged or swapped out separately.  And the update
routines are only referenced when a screen update is running.  So most of
those pages are considered idle and paged out.  And while they are being 
paged back in, other pages are not being referenced, are considered idle,
and recycled.

Eduardo