"Michael Hohmuth" hohmuth@innocent.com writes:
Please note that currently L4Linux puts threads started by clone(...CLONE_VM...) into different L4 tasks. [...]
I've noticed this point. It implies that a TLB flush is required upon a "thread" switching ( L4 task switching ). It will take... how long? Maybe 10 microseconds or so, I guess.
There is an additional problem. Suppose your program shares pages with another process (e.g., a shared-library text segment) and the L4Linux needs to flush these page mappings for the other process. [...].
I overlooked this point. It seems to take some time for me to digest the story. Thanks a lot for your detailed explanation and suggestion.
You could do without the L4-kernel modification if your L4Linux system call just toggled a flag that told L4Linux to map the whole address space (l4_fpage(...L4_WHOLE_ADDRESS_SPACE...)) to the current process on page-fault. Subsequently, your client can ``forge'' a page-fault message to the L4Linux server.
I got the picture. Still, I do not see exactly how I can do it. I might ask you again after consulting the source.
Jun-ichi