Subject: Re: CVS commit: syssrc/sys/arch/arm/arm32
To: None <email@example.com>
From: Richard Earnshaw <firstname.lastname@example.org>
Date: 10/18/2001 18:20:57
> On Thu, Oct 18, 2001 at 07:50:31PM +0300, Richard Earnshaw wrote:
> > However, even with this step having more than a small number of
> > processes searching for a L1 pt can still be enough to bring the system
> > down, since they all run at high priority and sleep for very little time,
> > thus blocking out user code from completing. So implement an exponential
> > backoff when waiting for a page table, so that we don't hog the CPU when
> > memory is scarce.
> This is a good improvement, but...
> The pmap isn't really supposed to be sleeping -- there could be locks
> held by the caller (UVM). The fact that other pmaps currently sleep
> is not meant to suggest that such behavior is correct :-) I should
> probably clarify this in the pmap(9) manual page.
> The right thing to do is to return an error to the caller of pmap_enter()
> if PMAP_CANFAIL is set in the flags argument. The caller will then unlock
> and wait for more memory.
We aren't in pmap_enter. This is pmap_pinit, which is called from
pmap_create(). As far as I can tell, there is no mechanism for this to