Re: sigma0 memory space

Adam Lackorzynski <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
On Wed May 29, 2013 at 14:52:26 +0300, [email protected] wrote:
> I have been reading about the structure of L4Ka::Pistachio, and
> discovered that they use idempotent (1:1) page table mapping in
> their sigma0 process.  I am wondering if Fiasco also takes this
> approach?

Sigma0 uses 1:1 virt-phys mappings.

> If so, does the kernel also use idempotent mapping?

The kernel is linked to the upper 1G of the address space, so no.

> I would imagine that this would have some implications on demand
> paging in the kernel.  Does the kernel even use demand paging?  (I

No, it does not.

> mean at some point during boot the kernel will start to use memory
> to store kernel objects - either the kernel 'guesses' how much it
> will ever need and statically allocates that memory, or it's going
> to have to ask for pages later on, which will be owned by some other
> process).
> 
> I tried to read the code, but found it very hard to traverse - the
> C++ classes don't make it easy to follow a flow.  Can you please
> point out the file(s) where the kernel sets up the memory space for
> sigma0, and where it passes the initial ownership (from kernel space
> to sigma0 space)?

Setup happens in kernel_thread-std.cpp, the actual mappings are
generated in function handle_sigma0_page_fault() which creates identity
mappings.



Adam
-- 
Adam                 [email protected]
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.