Hi, On Tue Jul 21, 2015 at 16:06:33 +0200, Mahdi Aichouch wrote: > I would like to understand how L4 Fiasco manages the virtual memory of a > L4Linux guest. > > Does L4 Fiasco maintains a "shadow page table" in order to perform a > two-level memory address translation: > guest virtual memory --> guest real memory --> host physical memory?
There are two page tables, one is in L4Linux and that maps process memory to Linux internal memory (in a strict sense it's virtual to virtual but you could also understand that as guest virtual to guest physical). The other page table is the real one, maintained by Fiasco. This one maps from virtual to physical, it's a normal process page table. There's also no nesting/chaining here. > If the answer is yes, where the "shadow page table" is maintained? which L4 > Fiasco object > is responsible of this operation? A page table is part of each L4::Task object. > If we suppose that an L4Linux guest has for example a 64MB of fixed > physical memory region, > in case a new L4Linux user task arrives and there is no available space to > allocate > a new page for this task, an already used page has to be unmapped, right? Yes, probably, whatever Linux is doing in this case. > If the answer is yes, then where the dirty page will be swapped? Whatever Linux is doing for that, so for example to swap space on disk, or the fork will fail. Adam -- Adam a...@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ _______________________________________________ l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers