Question about memory management in L4 Fiasco O.C + L4re

Mahdi Aichouch foxmehdi at gmail.com
Mon Jul 20 16:36:52 CEST 2015


Hello Adam,

If I correctly understood, and If we suppose that an L4Linux instance
is started for example with this command line options:
... earlyprintk=1 em=64M ...

This means that a 64MB of physical memory region composed of a set of
contiguous physical frames is allocated to L4Linux, right?

L4Linux will use a part of this 64MB of physical memrory for its own kernel
execution, and
the rest of physical memory space will be used by L4Linux to load
user-level programs
and allocate physical memory for them, right?

If a user-level program on top of L4Linux generates a page-fault.
Are the L4 Fiasco kernel and L4re involved in the execution flow to handle
the page-fault?

Thank you very much for your clarification.

Best regards,

Mahdi








On Fri, Jul 17, 2015 at 10:36 AM, Mahdi Aichouch <foxmehdi at gmail.com> wrote:

> Hello Adam,
>
> The memory regions are exclusive. Specifying exactly which physical
>> memory an L4Linux is getting is currently not possible but I guess
>> you're using the numbers just as an example?
>
>
> Yes, I am giving these numbers as an example.
> However, is it possible to know what are the start address and the end address
> of a physical memory partition allocated to a L4Linux instance?
>
> The memory is completely mapped initially, so no page fault should
>> happen. As probably nobody will take it away again it should also stay
>> like this.
>
> Does this apply also to user-level programs executed on top of L4Linux.
>
> You can put showpfexc=1 on the cmdline to see any in-kernel page fault.
>>
> There shouldn't be any (except in the outside wrapper code as I see
>> which can be changed by launching L4Linux with the eager_map flag).
>
> Could please give some explanation about what is the wrapper code? And Where to set the "eager_map flag" option?
>
> Thank you very much for your answer!
>
> Best regards,
>
> Mahdi
>
>
>
> On Wed, Jul 15, 2015 at 11:53 AM, Mahdi Aichouch <foxmehdi at gmail.com>
> wrote:
>
>> Hello,
>>
>> I have some questions concerning memory management in Fiasco O.C  + L4re.
>>
>> I would like to test two L4Linux instances, and for each L4Linux
>> instance I want to reserve one static fixed physical memory partition.
>>
>> For instance, one 128MB for the first L4Linux and one 128MB for the
>> second.
>>
>> Knowing that Fiasco O.C. uses "on demand paging" to allocate pages for
>> user tasks, is it possible that each partition of L4Linux could be
>> allocated
>> a static physical memory region composed of contiguous physical frames.
>>
>> For instance, one memory region starting from 128MB to 256MB for the
>> first L4Linux,
>> and second memory region from 256MB to 512MB for the second L4Linux.
>> Each memory region is allocated exclusively to one L4Linux instance.
>>
>> I would like to know if it is possible to load all the code + data of a
>> L4Linux instance
>> into its reserved memory partition, so no page fault will be encountered
>> during runtime.
>>
>> Is it possible to tell me if these above operations could be realized in
>> Fiasco O.C and L4re?
>>
>> If the answer is yes, is it possible to tell me what are the objects that
>> should be used or
>> adapted in order to implement these?
>>
>> What are the issues that I should pay attention to?
>>
>> Many thanks in advance for your answer.
>>
>> Best regards,
>>
>> Mahdi
>>
>>
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20150720/ed0b24be/attachment-0001.html>


More information about the l4-hackers mailing list