Is the L4Linux running as a Fiasco.OC server?

Zeyu Mi yzmizeyu at gmail.com
Wed Mar 7 08:50:24 CET 2018


Hi Adam,

Sorry for bothering you again...

I have changed to snapshot-17.09 and the "s" command works normally.

I also disabled the VCPU thread model in the L4Linux config and it can be
compiled
without any error :)

However, the L4Linux keeps reporting the following error message if running
in QEMU.

Non-resolvable page fault at b300b308, ip 6454e6.
Page fault (non-resolved): pfa=b300b308 pc=6454e6
Non-resolvable page fault at b300b308, ip 6454e6.
Die message: Trap: 14
Non-resolvable page fault at b300b308, ip 205390.
Page fault (non-resolved): pfa=b300b308 pc=205390
Non-resolvable page fault at b300b308, ip 205390.
Die message: Trap: 14

If running on the real hardware (a Skylake machine), it keeps reporting the
following message.

L4x: Main thread running, waiting...
Die message: Trap: 6
Die message: Trap: 6
Die message: Trap: 6
Die message: Trap: 6
Die message: Trap: 6
Die message: Trap: 6

On Wed, Mar 7, 2018 at 12:19 PM, Zeyu Mi <yzmizeyu at gmail.com> wrote:

>
>
> On Wed, Mar 7, 2018 at 7:36 AM, Adam Lackorzynski <
> adam at os.inf.tu-dresden.de> wrote:
>
>> Hi,
>>
>> On Tue Mar 06, 2018 at 10:22:18 +0800, Zeyu Mi wrote:
>> > On Tue, Mar 6, 2018 at 9:20 AM, Zeyu Mi <yzmizeyu at gmail.com> wrote:
>> >
>> > >
>> > >
>> > > On Tue, Mar 6, 2018 at 7:50 AM, Adam Lackorzynski <
>> > > adam at os.inf.tu-dresden.de> wrote:
>> > >
>> > >> Hi,
>> > >>
>> > > Hi Adam,
>> > >
>> > >>
>> > >> 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.
>> > >>
>> > > I have tried 's' command, but there was alwasy a general protection
>> fault.
>> > > The following is the error
>> > > message.
>> > >
>> > > KERNEL: Warning: No page-fault handler for 0xfffffffff0400008, error
>> 0x0,
>> > > pc fffffffff000922b
>> > > General Protection (eip=fffffffff0042dc3, err=0000000000000000) --
>> jdb bug?
>>
>> Strange. You might want to update your snapshot version although I
>> cannot remember having seen such an error. Alternatively use shift-Q and
>> look for tasks.
>>
>> > > 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.
>> > >>
>> > > Could you kindly tell me how to enable the previous thread mode?
>> > >
>> >
>> > Hi Adam,
>> > I have disabled the vcpu exeuction mode by changing the L4Linux config.
>> > But there is one warning treated as an error when compiling the L4Linux.
>> > Following is the detailed error log:
>> >
>> > src/l4linux/arch/l4/kernel/main.c:3853:2: error: implicit declaration
>> of
>> > function ‘get_cpu_gdt_table’ [-Werror=implicit-function-declaration]
>> > l4x_load_percpu_gdt_descriptor(get_cpu_gdt_table(_cpu));
>> >
>> > Do you have any suggestion to fix that?
>>
>> Disable CONFIG_SMP?
>>
>>
>> Hi Adam,
>
> I have disable CONFIG_SMP, but encountered the following error.
> src/l4linux/arch/l4/kernel/arch-x86/dispatch.c: In function
> ‘utcb_to_thread_struct’:
> src/l4linux/arch/l4/kernel/arch-x86/dispatch.c:276:3: error: ‘struct
> thread_struct’ has no member named ‘gs’
> t->gs         = exc->gs;
> Any idea?
>
> BTW, is it possible to enable the previous thread model and SMP in the
> L4Linux simultaneously?
>
> Adam
>>
>> _______________________________________________
>> l4-hackers mailing list
>> l4-hackers at os.inf.tu-dresden.de
>> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
>>
>
>
>
> --
> Best Regards
>
> Zeyu Mi (糜泽羽)
> Institute of Parallel and Distributed Systems (IPADS),
> School of Software,
> Shanghai Jiao Tong University
>



-- 
Best Regards

Zeyu Mi (糜泽羽)
Institute of Parallel and Distributed Systems (IPADS),
School of Software,
Shanghai Jiao Tong University
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20180307/e84d29ba/attachment.htm>


More information about the l4-hackers mailing list