AW: Re:puzzle about about page fault in sigma0 space

Philipp Kupferschmied <[email protected]> Wed, 10 Sep 2008 09:40:34 +0200
Newsgroups gmane.comp.micro-kernel.l4.l4ka.general
Message-ID <[email protected]>
Hi Bob,

> In addition, a pagefault occur. A ipc containing the virt address caused the
> pagefault will be send to the pager. And the pager will allocate a phys
> region. And map it to the virt address. Then the program can goes on.
> But i didnot find how a pager can make this map? Pager is in user level, but
> page table can only be changed
> in kernel mode.

The pager has to reply with a MapItem or GrantItem that specifies the fpage to be mapped.
Such an item is interpreted by the kernel, which updates the corresponding page table and the mapping database. Processing of these typed items is performed by extended_transfer() in api/v4/ipcx.cc, which calls fpage_map() in generic/linear_ptab_walker.cc to update mapping information.
More details about typed items, fpages, and L4 fault handling protocols can be found in the kernel reference manual [1]

Cheers,
Philipp

[1] http://l4hq.org/docs/manuals/l4-x2-20061117.pdf