Problem booting l4linux
fabs0028 at free.fr
fabs0028 at free.fr
Fri Jun 10 17:28:49 CEST 2005
I compiled l4env with the stripping option so i had to rebuild it.
I did it and i relaunched the system.
I got this listing :
Welcome to Fiasco(ia32)!
DD-L4(v2)/x86 microkernel (C) 1998-2005 TU Dresden
Rev: Sun Jun 5 18:10:52 2005 compiled with gcc 3.4.2 for AMD Athlon
Performance-critical config option(s) detected:
CONFIG_NDEBUG is off
CONFIG_NO_FRAME_PTR is off
Enabling special fully nested mode for PIC
Using the PIT (i8254) on IRQ 0 for scheduling
CPU: AuthenticAMD (6:4:2:0) Model: Athlon (Thunderbird) at 1000 MHz
16/256 Entry I TLB (4K pages) 8 Entry I TLB (4M pages)
24/256 Entry D TLB (4K pages) 8 Entry D TLB (4M pages)
64 KB L1 I Cache (2-way associative, 64 bytes per line)
64 KB L1 D Cache (2-way associative, 64 bytes per line)
256 KB L2 U Cache (8-way associative, 64 bytes per line)
Freeing init code/data: 20480 bytes (5 pages)
SIGMA0: Hello!
Found Fiasco: KIP syscalls: no.
Allocated 324kB for maintenance structures.
RMGR: Stage2
running on Fiasco
bootloader loaded 11 modules at 02064000-0333c98b
total RAM size = 1048191 KB (reported by bootloader)
received 985260 KB RAM from sigma0
808 KB reserved for RMGR
My symbols at 3c3ac000-3c3af000 (12kB), lines at 3c39f000-3c3ac000 (52kB)
received no I/O ports
attached irqs = [ <!0> 1 <!2> 3 <!4> 5 6 7 8 9 a b c d e f ]
RMGR: Parsing config.
configured task 0x0d: [ m:0,ffffffff,ffffffff hm:0,ffffffff,ffffffff
t:0,ffff,ffff i:ffff lmcp:ffff s:0,ff,ff mcp:ff prio:10 small:ff ]
configured task 0x0a: [ m:0,ffffffff,ffffffff hm:0,ffffffff,ffffffff
t:0,ffff,ffff i:ffff lmcp:ffff s:0,ff,ff mcp:ff prio:10 small:ff ]
log_mask: 00000000, log_types: 00000000
RMGR: Starting tasks.
#05: loading "/l4linux/names"
from 02064000-02092ae2 to [ 00240000-002472c0 00248000-00251000 ]
starting at entry 00240000 via trampoline page code 00056154
symbols at 3c39d000-3c39f000 (8kB), lines at 3c397000-3c39d000 (24kB)
#06: loading "/l4linux/log"
from 02093000-020be9e1 to [ 00400000-00407520 00408000-0043d000 ]
starting at entry 00400000 via trampoline page code 00057154
symbols at 3c395000-3c397000 (8kB), lines at 3c38f000-3c395000 (24kB)
#07: loading "/l4linux/dm_phys"
from 020bf000-02125322 to [ 01500000-01513b40 01514000-0151e000 ]
starting at entry 01500000 via trampoline page code 00058158
symbols at 3c38a000-3c38f000 (20kB), lines at 3c37d000-3c38a000 (52kB)
#08: loading "/l4linux/simple_ts -t 300"
from 02126000-0215abb8 to [ 01400000-01408c40 01409000-01417000 ]
starting at entry 01400000 via trampoline page code 00059160
symbols at 3c37b000-3c37d000 (8kB), lines at 3c374000-3c37b000 (28kB)
#09: loading "/l4linux/l4io --noirq"
from 0215b000-02327a5d to [ 00b70000-00b93fc2 00b94000-00bc7000 ]
starting at entry 00b70000 via trampoline page code 0005a15c
symbols at 3c33c000-3c374000 (224kB), lines at 3c325000-3c33c000 (92kB)
#0a: loading "/l4linux/bmodfs"
from 02328000-023b7fc3 to [ 01220000-01238750 01239000-01241000 ]
passing module /l4linux/libloader.s.so [ 023b8000-02443acb ]
passing module /l4linux/run-l4 [ 02444000-0245e829 ]
passing module /l4linux/vmlinuz26 [ 0245f000-0317801a ]
starting at entry 01220000 via trampoline page code 0005b154
symbols at 3c320000-3c325000 (20kB), lines at 3c310000-3c320000 (64kB)
#0e: loading "/l4linux/l4exec"
from 03179000-0327108d to [ 01100000-01129f8a 0112a000-01134000 ]
starting at entry 01100000 via trampoline page code 0005c154
symbols at 3c308000-3c310000 (32kB), lines at 3c2ef000-3c308000 (100kB)
#0f: loading "/l4linux/loader --fprov=BMODFS run-l4"
from 03272000-0333c98a to [ 01300000-01328662 01329000-01339000 ]
starting at entry 01300000 via trampoline page code 0005d16c
symbols at 3c2e8000-3c2ef000 (28kB), lines at 3c2d1000-3c2e8000 (92kB)
simplets| Configured for 300 tasks.
loader | L4RM: [PF] read at 0x00000000, eip 01316df5, src F.01
loader | [F.0] l4rm/lib/src/pagefault.c:78:__unknown_pf():
loader | unhandled page fault
--PANIC-------------------------------------------------EIP: 01311aca
so i did disassembled the task to find the problem and here is the result:
/home/fab/ws/l4-linux-env/l4/pkg/thread/lib/src/l4.c:113
01316df4 in (%dx),%eax
/home/fab/ws/l4-linux-env/l4/pkg/thread/lib/include/__asm.h:40
01316df1 mov %esp,%ebp
<l4th_thread_entry>:
01316de9 lea 0x0(%edi,1),%edi
<l4th_thread_entry>:
/home/fab/ws/l4-linux-env/l4/pkg/thread/lib/src/l4.c:108
01316df0 push %ebp
01316df1 mov %esp,%ebp
/home/fab/ws/l4-linux-env/l4/pkg/thread/lib/include/__asm.h:40
01316df3 xor %ebp,%ebp
/home/fab/ws/l4-linux-env/l4/pkg/thread/lib/src/l4.c:113
01316df5 leave
01316df6 jmp 0x1314980 <l4th_thread_start>
so the leave instruction lead to a page fault :
i took a look to the source and here is the fonction concerned :
void
l4th_thread_entry(void)
{
/* clear base pointer to make stack backtrace work */
l4th_clear_base_pointer();
/* nothing special to do in native L4 version, just start the thread */
l4th_thread_start();
}
thanx again for the help.
Fabien
More information about the l4-hackers
mailing list