Subject: Re: what means: "extent_alloc_subregion: can't allocate region descriptor"
To: None <jtk@kolvir.arlington-heights.ma.us, thorpej@nas.nasa.gov>
From: Paul Kranenburg <pk@cs.few.eur.nl>
List: current-users
Date: 06/16/1997 17:39:51
>  > I saw about 4 of these just now:
>  > 	extent_alloc_subregion: can't allocate region descriptor
>  > I haven't seen this before.  Is this likely connected with recent (1.2G)
>  > changes, or just my bad luck that it's starting now.
> 
> Looks like it's because the individual extent maps for swap devices
> are currently non-coalescing, like the old rmaps that managed swap used
> to be.  I have suggested to Matthew Green that he make them coalescing maps.
> If they coalesce, there should be no shortage of region descriptors, because
> the extent manager's allocator will make allocations contiguous, if
> possible, thus causing fewer region descriptors to be allocated

I made it a non-coalescing map in an attempt to avoid malloc()s while in swap_alloc().
This turned out to not work smoothly unless you're prepared to pre-allocate lots
of extent descriptors.

Extreme memory shortage can wedge the swap system if you allow blocking malloc()s.
Coalescing maps also risks blocking in swap_free() (or losing swap blocks if you
specify EX_NOWAIT).

-pk