Subject: Re: L1 page tables
To: Marc Theisen <arcmt@mailhost.uni-koblenz.de>
From: Amit Gupta <93akg@eng.cam.ac.uk>
List: port-arm32
Date: 02/04/1997 14:47:13
On Tue, 4 Feb 1997, Marc Theisen wrote:

> When I try to start X with the fvwm X crashes with messages like
> 
>  Warning: deadlocks due to lack of Level 1 page tables
>  
> What does that mean? Isn't 16MB DRAM and 1MB VRAM enough to run X?

>From the new FAQ :

==snip==

Q 8.5: What does "Possible process deadlock due to shortage of L1 page
tables." mean ?

A: Under RiscBSD, the ARM's MMU (memory management unit) requires a level
1 page table for each process. (Page tables are used to handle the
translation from logical to physical memory addresses and hence provide
virtual memory.) Due to the design of the ARM MMU, these page tables must
be a 16KB physically continuous block of physical memory on a 16KB
physical boundary. Since the kernel's virtual memory system cannot
dynamically allocate such a block of memory while running, memory for the 
level 1 page tables has to be reserved at boot time. The "Max processes"
field in the boot loader specifies the number of page tables to allocate
at boot.

If more than this number of processes are created then a shortage occurs.
The new processes are put to sleep until page tables become available.  
This can only happen when an existing process terminates. During the
sleeping period system deadlocks can sometimes occur if none of the
existing processes terminate. The system will appear to freeze as none of
the existing processes can exit until the new processes start etc. The
"Possible process deadlock..." message is a warning that such a condition
is imminent. Sometimes CTRL-C can be used to terminate a process running
in the foreground.

If you're having problems, the best solution is to increase the value of
the "Max processes" field before booting RiscBSD.

==snip==

Hope this makes sense.

amit

--
"Time for bed", said Zebedee.
<boing>