Some questions about pager
adam at os.inf.tu-dresden.de
Sun Nov 21 12:36:01 CET 2010
On Thu Nov 18, 2010 at 19:04:15 +0100, BERTRAND Joel wrote:
> I have check in http://hg.l4ka.org/l4ka-pistachio-ref/l4-x2.pdf,
> and I think that mapitem makes sense.
> When a pagefault occurs, I obtain :
> vms$pagefault(addr:47fe8, s:2000) [priv=4]
> memsection 46000 47fff
> 1 0
> V=46000 P=9c000
> s0: got msg from 0x0000003a00000001, (0xffffffffc170,
> 0x0000000000000001, 0x0000000000989680)
> s0: got msg from 0x0000003a00000001, (0xffffffffffa0,
> 0x000000000009c0d7, 0x0000000000000000)
> s0: allocate_page (tid: 0x3a00000001, addr: 9c000, log2size: 13)
> %MEM-I-ACCMAP, accepting mapping
> %MEM-I-ACCMAP, virtual $0000000000046000 - $0000000000047FFF
> %MEM-I-ACCMAP, physical $000000000009C000 - $000000000009DFFF
> After vms$sigma0_map
> Thus, virtual region 46000-47FFF is mapped in 9C000-9DFFF memory
> (and mapping is accepted). Mapitem seems to be required.
3 parties are involved. The faulting program, roottask, and sigma0.
As far as I (quickly) read the code: roottask is requesting sigma0 to
map memory to 46000 within its own virtual address space. Is this memory
accessible by roottask, i.e. can roottask read/write from/to 46000? This
is required so that roottask can map it further to other tasks. Also
'virt' seems to be the fpage for the faulting task but is also used for
the sigma0 call, i.e. the memory is mapped there in roottask. Might this
clash with the roottask virtual memory?
Adam adam at os.inf.tu-dresden.de
More information about the l4-hackers