All,
I'm running Fiasco on i386 with L4Linux 2.6.
Is there an easy way to find out where all L4Linux DMphys DS's are mapped in its virtual memory? My goal is to get the entire mapping of DS's to virtual memory location in L4Linux.
I am able to get some of these mappings from the dump-l4 example and from data printed out from L4Linux. However, I don't know where all DS's are mapped (e.g. "L4thread stack"...). Here's some specific questions I am trying to answer:
1) Where is "L4RM heap" mapped? 2) Where are "syms vmlinux" and "lines vmlinux" mapped? 3) Where is "L4thread TCB table" mapped? 4) Where are the "L4thread stack" DS's mapped? 5) Where is "Ghost page 1" mapped? What is that DS by the way? 6) There seems to be some DS's for L4Linux that are created by the loader and there is also the "L4Linux main memory" DS. Are there any other mappings in L4Linux's virtual memory?
Thanks!
Julian
On Tue Dec 20, 2005 at 21:16:02 -0500, Julian Grizzard wrote:
Is there an easy way to find out where all L4Linux DMphys DS's are mapped in its virtual memory?
With 'where', do you mean the source code location or rather the virtual addresses? For one there's l4rm_lookup where you can stuff in a virtual adress and get back the DS.
My goal is to get the entire mapping of DS's to virtual memory location in L4Linux.
So probably the virtual adresses.
I am able to get some of these mappings from the dump-l4 example and from data printed out from L4Linux. However, I don't know where all
The region manager manages the virtual address space so l4rm decides where things go, unless specified otherwise. Some regions can be defined via weak symbols, e.g. thread stacks and tcbs.
DS's are mapped (e.g. "L4thread stack"...). Here's some specific questions I am trying to answer:
- Where is "L4RM heap" mapped?
There's no fixed address here, just 'low' in the VA space. See l4rm/lib/src/alloc.c
- Where are "syms vmlinux" and "lines vmlinux" mapped?
Nowhere in the L4Linux VA space. They're just used by the loader.
- Where is "L4thread TCB table" mapped?
Some free space, or l4thread_tcb_table_addr if defined, see arch/l4/kernel/main.c
- Where are the "L4thread stack" DS's mapped?
Some free space, or l4thread_stack_area_addr if defined, see arch/l4/kernel/main.c.
For both also see in thread/lib/src
- Where is "Ghost page 1" mapped? What is that DS by the way?
It is used to pad out the lower AS, it is mapped multiple times.
- There seems to be some DS's for L4Linux that are created by the
loader and there is also the "L4Linux main memory" DS. Are there any other mappings in L4Linux's virtual memory?
There may be others depending on what stubs/drivers may do etc.
Adam
l4-hackers@os.inf.tu-dresden.de