Subject: Re: compartmentalization of kernel memory
To: John Gordon <john_94501@yahoo.com>
From: Steve Woodford <scw@netbsd.org>
List: tech-kern
Date: 04/09/2003 09:20:04
On Tue, 8 Apr 2003, John Gordon wrote:

> > [benefits of arm mmu domains]
>
> As you say though, I don't think that they'd be really useful in something like
> NetBSD unless it was in a *very* minimal configuration system. Even the
> StrongARM process ID feature is not much good for anything more complex than
> WinCE.

Domains actually turn out to be *very* useful in NetBSD. They make it
possible to share L1 page descriptors between up to 15 processes. This
means the kernel can allocate just enough L1s at boot time to accommodate
the max # of processes supported by the config file (derived from
maxusers).

For example, "maxusers 2" equates to NPROC = 52. Without domains, this
would require 52 L1s (850KB of wired physical memory). With domains, this
requires just 4 L1s (64KB). This has obvious benefits in some embedded
environments. The performance hit of the extra domain faults is hardly
noticable in this situation. Worst case, it's not much different to NetBSD
on a cpu with a software-managed TLB.

Finally, it completely eliminates the old problem of allocating additional
L1s (physically contiguous 16KB) at run time from a fragmented memory
pool.

Cheers, Steve