Subject: Re: what means: "extent_alloc_subregion: can't allocate region descriptor"
To: Thor Lancelot Simon <tls@rek.tjls.com>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: current-users
Date: 06/15/1997 21:30:36
On Sun, 15 Jun 1997 21:55:25 -0500 (CDT) 
 Thor Lancelot Simon <tls@rek.tjls.com> wrote:

 > I saw quite a few of those while testing the new vm_swap code, although AFAICT
 > no actual system instability or memory or swap corruption occurred.

These messages are _sort of_ analagous to the old "lost space" messages
that the rmap code used to spew if you did a LOT of heavy paging...

If you look in vm_swap.c:swap_alloc(), the call to the extent manager that
causes these messages is inside a loop that attempts to allocate swap space
based on device priority.  If one device fails, it will just try the next
in the priority queue... If there are no other devices which you can
swap to (i.e. all of them are out of region descriptors), then the
swap pager will return a failure condition to the vm_pager layer...

If you were paging _out_, then vm_pageout_page() will simply re-activate
the page... it doesn't get paged out, but then, no one else can use it,
either (which is the real harm, there...)

If you were paging _in_, I _think_ what happens is that you will either
take a SEGV (because the page "doesn't exist"), or, if you were attempting
to page in a page that was part of a shadow object, you could end up
getting the page from an upstream object... which may be Bad.

Anyone who is more familiar with vm_fault() want to clarify the "error
on page-in" case?

Jason R. Thorpe                                       thorpej@nas.nasa.gov
NASA Ames Research Center                               Home: 408.866.1912
NAS: M/S 258-6                                          Work: 415.604.0935
Moffett Field, CA 94035                                Pager: 415.428.6939