Hi,
On Mon Mar 05, 2018 at 19:47:19 +0800, Zeyu Mi wrote:
I am studying the implementation of the Fiasco.OC and the L4Linux.
I have searched on the Internet and many papers and documents record that L4Linux runs as an L4 server and any L4Linux user process is a new task, which has a new page table different from that of an L4Linux server.
However, the experiment result seems to conflict with those documents. When I started a new program in the L4Linux shell and used "lp" command (show present list) in JDB, I noticed that there was one thread having "vcpu" state. But the resulted list did not contain any new thread or task which is related to the new program.
I am very confused and wondering whether or not the implementation recorded in those papers or documents are wrong or obsolete?
Your obvservations are all right, however, 'lp' lists all threads in the system but not tasks (aka address spaces). For listing tasks, use 's', where you will see all the tasks for the Linux user processes. There has been a change in model for L4Linux. With the vcpu model there is only one thread (the vcpu) which is moving between the tasks for execution. In the previous thread mode there has been a thread in each user process. Both variants are still available through the L4Linux config.
Adam