A pagefault at the BSS area when starting l4linux

Valery V. Sedletski _valerius at mail.ru
Fri Mar 7 13:26:04 CET 2008


hi all!

I compiled myself l4linux and tried to start it, but something goes wrong. When the linux server starts, a page 
fault occurs at the beginning of its BSS area. The log is the following:

[===============================================]

L4 Bootstrapper
  Scaning (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco -nowait -nokdb -serial -jdb_never_stop 
-tbuf_entries=32768 -jdb_cmd=JH
  Scaning (nd)/tftpboot/drops/bin/x86_586/l4v2/sigma0
  Scaning (nd)/tftpboot/drops/bin/x86_586/l4v2/roottask task sigma0 boot_priority 0xA0    task roottask 
boot_priority 0xA0    task modname "names" boot_priority 0xA0    task modname "log" boot_priority 0xA1    
task 
modname "dm_phys" boot_priority 0xA0    task modname "simple_ts" boot_priority 0xA0    task modname 
"l4io" 
allow_cli boot_priority 0xA3    task modname "rtc" allow_cli    task modname "l4con" allow_cli    task 
modname 
"l4exec" boot_priority 0xA0    task modname "loader" allow_cli boot_priority 0xA0    task modname 
"vmlinuz26"    
task modname "bmodfs" attached 4 modules
  Relocated mbi to [0x64000-0x64a22]
  Loading (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco
  Loading (nd)/tftpboot/drops/bin/x86_586/l4v2/sigma0
  Loading (nd)/tftpboot/drops/bin/x86_586/l4v2/roottask
  find kernel info page...
  found kernel info page at 0x1000
  API Version: (87) experimental
  Sigma0 config    ip:00090000 sp:00105100 [00090000-00096d44]
  Roottask config  ip:00120000 sp:00108528 [00120000-002bda14]
  [00001000-00002000) (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco
  [00002000-00055980) (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco
  [00055980-0005e290) (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco
  [0005f000-00062230) (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco
  [00062240-00064000) (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco
  [00090000-000948dc) (nd)/tftpboot/drops/bin/x86_586/l4v2/sigma0
  [000958e0-00096d44) (nd)/tftpboot/drops/bin/x86_586/l4v2/sigma0
  [0009f000-00100000) BIOS area
  [00100000-00108764) bootstrap
  [00120000-00133190) (nd)/tftpboot/drops/bin/x86_586/l4v2/roottask
  [00134000-0013e67e) (nd)/tftpboot/drops/bin/x86_586/l4v2/roottask
  [0013f680-002bda14) (nd)/tftpboot/drops/bin/x86_586/l4v2/roottask
  [00300000-00301a40) (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco
  [00302000-0038f408) (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco
  [02000000-036b3174) Modules Memory
  [10000000-ffffffff) Deep Space
  Starting kernel (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco at 00300878

Welcome to Fiasco(ia32)!
DD-L4(v2)/x86 microkernel (C) 1998-2006 TU Dresden
Rev: Mon Aug 28 08:34:51 2006 compiled with gcc 3.3.1 for Intel Pentium
Performance-critical config option(s) detected:
  CONFIG_ASSEMBLER_IPC_SHORTCUT is off
  CONFIG_NDEBUG is off

Enabling special fully nested mode for PIC
Using the PIT (i8254) on IRQ 0 for scheduling
Absolute KIP Syscalls using: Sysenter
CPU: GenuineIntel (6:3:3:0) Model: Unknown CPU at 735 MHz

   8 KB L1 I Cache (4-way associative, 32 bytes per line)

Freeing init code/data: 20480 bytes (5 pages)

SIGMA0: Hello!
  Found Fiasco: KIP syscalls: yes.
  Allocated 132kB for maintenance structures.


Roottask.
  Command line found: "(nd)/tftpboot/drops/bin/x86_586/l4v2/roottask task sigma0 boot_priority 0xA0    task 
roottask boot_priority 0xA0    task modname "names" boot_priority 0xA0    task modname "log" boot_priority 
0xA1    task modname "dm_phys" boot_priority 0xA0    task modname "simple_ts" boot_priority 0xA0    task 
modname "l4io" allow_cli boot_priority 0xA3    task modname "rtc" allow_cli    task modname "l4con" allow_cli    
task modname "l4exec" boot_priority 0xA0    task modname "loader" allow_cli boot_priority 0xA0    task 
modname "vmlinuz26"    task modname "bmodfs" attached 4 modules"

  261759kB ( 255MB) total RAM (reported by bootloader)
  215872kB ( 211MB) received RAM from Sigma0
   24376kB (  24MB) reserved RAM for RMGR
  Received I/O ports 0000-ffff
  Attached irqs = [ <!0> 1 <!2> 3 4 5 6 7 8 9 A B C D E F ]

Roottask: Parsing command line config.
  configured task 0x02 ():
    vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:a0 small:ff mods:0
  configured task 0x04 ():
    vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:a0 small:ff mods:0
  configured task 0x00 (names):
    vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:a0 small:ff mods:0
  configured task 0x00 (log):
    vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:a1 small:ff mods:0
  configured task 0x00 (dm_phys):
    vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:a0 small:ff mods:0
  configured task 0x00 (simple_ts):
    vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:a0 small:ff mods:0
  configured task 0x00 (l4io):
    vm_offs:0 irq:ffff lmcp:ffff allow_cli:1 mcp:ff prio:a3 small:ff mods:0
  configured task 0x00 (rtc):
    vm_offs:0 irq:ffff lmcp:ffff allow_cli:1 mcp:ff prio:10 small:ff mods:0
  configured task 0x00 (l4con):
    vm_offs:0 irq:ffff lmcp:ffff allow_cli:1 mcp:ff prio:10 small:ff mods:0
  configured task 0x00 (l4exec):
    vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:a0 small:ff mods:0
  configured task 0x00 (loader):
    vm_offs:0 irq:ffff lmcp:ffff allow_cli:1 mcp:ff prio:a0 small:ff mods:0
  configured task 0x00 (vmlinuz26):
  configured task 0x00 (bmodfs):
    vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:10 small:ff mods:4

Roottask: Loading 14 modules.
#05: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/names"
     from [02085000-0208e174] to [002d0000-002d616a][002d7000-002e3000]
     entry at 0005f384 via trampoline page code
#06: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/log --prio 0xA1"
     from [0208f000-02097354] to [00400000-00406c8a][00407000-00439890]
     entry at 00060390 via trampoline page code
#07: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/dm_phys --isa=0x00800000"
     from [02098000-020ac174] to [01500000-01511dea][01512000-0151c000]
     entry at 00061398 via trampoline page code
#08: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/simple_ts -t 900"
     from [020ad000-020b7354] to [01400000-0140854a][01409000-0141b050]
     entry at 00062390 via trampoline page code
#09: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/rtc"
     from [020b8000-020bf174] to [01080000-01084200][01085000-0108a000]
     entry at 00063384 via trampoline page code
#0a: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/l4io --noirq"
     from [020c0000-0210f174] to [00b80000-00ba2a32][00ba3000-00bf0000]
     entry at 0006538c via trampoline page code
#0b: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/bmodfs"
     from [02110000-02128174] to [01220000-012354ee][01236000-01256000]
     passing module (nd)/tftpboot/cfg/l4linux26.cfg       [ 02129000-021290d2 ]
     passing module drops/bin/x86_586/l4v2/libloader.s.so [ 0212a000-021c8755 ]
     passing module boot/drops/bin/x86_586/l4v2/vmlinuz26 [ 021c9000-03205e3b ]
     passing module (nd)/tftpboot/drops/bin/rd/initrd.gz  [ 03206000-03606000 ]
     entry at 00066470 via trampoline page code
#0c: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/l4con --l4io"
     from [03606000-0365a174] to [00b00000-00b4d35e][00b4e000-00b79000]
     entry at 0006738c via trampoline page code
#0d: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/l4exec"
     from [0365b000-03689174] to [01100000-0112b80a][0112c000-0114e000]
     entry at 00068384 via trampoline page code
#0e: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/loader --fprov=BMODFS l4linux26.cfg"
     from [0368a000-036b3174] to [01300000-01326272][01327000-0134f000]
     entry at 000693a4 via trampoline page code

rtc     | Date:01.03.2008 Time:23:02:14
con     | Using fast memcpy.
simplets| parse_args(): Too many tasks (900) -- limiting to 891!
simplets| Configured for 891 tasks.
io      | do_args(): Disabling internal IRQ handling.
io      | PCI: Using configuration type 1
io      | PCI: Probing PCI hardware
io      | PCI: Probing PCI hardware (bus 00)
io      | PCI: PIIX3: Enabling Passive Release on 00:01.0
io      | Limiting direct PCI/PCI transfers.
io      | Activating ISA DMA hang workarounds.
io      | 00000000-ffffffff : PCI mem
io      |   f0000000-f1ffffff : Cirrus Logic GD 5446
io      |   f2000000-f2000fff : Cirrus Logic GD 5446
io      | 0000-ffff : PCI IO
io      |   0cf8-0cff : PCI conf1
io      |   c000-c00f : Intel Corp. 82371SB PIIX3 IDE [Natoma/Triton II]
io      |   c100-c1ff : Realtek Semiconductor Co., Ltd. RTL-8029(AS)
con     | Character size is 8x14, font has 256 characters
con     | VESA reports 800x600 at 16 1600bpl (00bb) [4096kB]
con     | Color mapping: red=11:5 green=5:6 blue=0:5 res=0:0
con     | No supported accelerated graphics card detected
io      | Remapping I/O memory f0000000-f0400000 cached
con     | Mapped I/O video mem f0000000 => 02000000+000000 [4096kB] via l4io
con     | Using MMXEXT for colorspace transform
con     | L4INPUT:                !!! W A R N I N G !!!
con     | L4INPUT:  Please, do not use Fiasco's "-esc" with L4INPUT.
con     | L4INPUT:                !!! W A R N I N G !!!
con     | L4INPUT: Registered 0xb03c80 for callbacks.
con     | serio: i8042 AUX port at 0x60,0x64 irq 12
con     | serio: i8042 KBD port at 0x60,0x64 irq 1
con     | input: ImExPS/2 Generic Explorer Mouse on isa0060/serio1
con     | input: AT Translated Set 2 keyboard on isa0060/serio0
con     | input: PC Speaker
con     | input: L4 input event injector
con     | L4 input event injector: IRQ handler up
con     | connect "ImExPS/2 Generic Explorer Mouse", isa0060/serio1/input0
con     | connect "AT Translated Set 2 keyboard", isa0060/serio0/input0
con     | connect "PC Speaker", isa0061/input0
con     | connect "L4 input event injector", l4/sys
con     | Running as C.02. Video mode is 800x600 at 16.
bmodfs  | Passed the following modules:
bmodfs  |   module "(nd)/tftpboot/cfg/l4linux26.cfg" (1kB)
bmodfs  |   module "(nd)/tftpboot/drops/bin/x86_586/l4v2/libloader.s.so" (634kB
bmodfs  : )
bmodfs  |   module "(nd)/tftpboot/drops/bin/x86_586/l4v2/vmlinuz26" (16628kB)
bmodfs  |   module "(nd)/tftpboot/drops/bin/rd/initrd.gz" (4096kB)
loader  | sleeping for 2000 ms
exec    | vmlinuz26: Loading
exec    | vmlinuz26: Interpreter section found, contains "/usr/lib/libc.so.1"
exec    | vmlinuz26: Saved 910939 bytes of symbols
exec    | libloader.s.so: Loading
exec    | libloader.s.so: Saved 26701 bytes of symbols
exec    | libloader.s.so: Relocating to 00010000
exec    | libloader.s.so: Linking
exec    | libloader.s.so: Symbol mmap_normal is weak and undefined
exec    | libloader.s.so: Symbol munmap_normal is weak and undefined
exec    | libloader.s.so: Symbol mmap_normal is weak and undefined
exec    | libloader.s.so: Symbol munmap_normal is weak and undefined
exec    | libloader.s.so: Relocating entry 00005df0 => 00015df0
exec    | libloader.s.so: Setting section flag 0800
exec    | vmlinuz26: Setting section flag 0800
loader  | vmlinuz26: Starting l4env-style application
loader  | vmlinuz26,#f: Starting at l4loader_init (00016630)
exec    | vmlinuz26: Linking
exec    | vmlinuz26: Relocating entry 00400000 => 00400000
exec    | vmlinuz26: Packed 737417 bytes of symbols
exec    | vmlinuz26: Packed 1868352 bytes of lines
loader  | vmlinuz26,#f: Continue at l4env_init (00016640, libloader.s.so)
l4lx    | ======> L4Linux 2.6 starting... <========
l4lx    | Linux version 2.6.17-l4 (root at umas1) (gcc version 3.3.1 (Mandrake Lin
l4lx    : ux 9.2 3.3.1-2mdk)) #1 Thu Feb 7 22:57:26 UTC 2008
l4lx    | Binary name: vmlinuz26
l4lx    | Kernel command line (5 args): mem=128M load_ramdisk=1 ramdisk_size=40
l4lx    : 96 root=/dev/ram l4env_rd=(nd)/tftpboot/drops/bin/rd/initrd.gz
l4lx    | Image: 00400000 - 0071c000 [3184 KiB].
l4lx    | Areas: Text:     00400000 - 00631000 [2244kB] (a bit longer)
l4lx    |        Data:     00631000 - 0067b5ac [297kB]
l4lx    |        Initdata: 0067e000 - 006af000 [196kB]
l4lx    |        BSS:      006b0000 - 0071aac0 [426kB]
l4lx    | L4RM: [PF] read at 0x006b0000, ip 004019e0, src F.02
l4lx    | [F.0] l4rm/lib/src/pagefault.c:78:__unknown_pf():
l4lx    |  unhandled page fault
l4lx    | 
l4lx    | Exiting with -1
simplets| Exit F.00
[===============================================]

What must be mapped to the BSS area and why it may be unsuccessful? These page faults, as I understand, 
are handled by l4rm library and dm_phys dataspace manager, but what here can be wrong?

my grub entry is:
[===============================================]
title  loader + l4lx26 mit BMODFS
kernel $(ROOT)/bootstrap -serial
modaddr 0x02000000
module $(FIASCO) $(FIASCOARGS)
module $(P)/sigma0
module $(P)/roottask task sigma0 boot_priority 0xA0 \
  task roottask boot_priority 0xA0 \
  task modname "names" boot_priority 0xA0 \
  task modname "log" boot_priority 0xA1 \
  task modname "dm_phys" boot_priority 0xA0 \
  task modname "simple_ts" boot_priority 0xA0 \
  task modname "l4io" allow_cli boot_priority 0xA3 \
  task modname "rtc" allow_cli \
  task modname "l4con" allow_cli \
  task modname "l4exec" boot_priority 0xA0 \
  task modname "loader" allow_cli boot_priority 0xA0 \
  task modname "vmlinuz26" \
  task modname "bmodfs" attached 4 modules
module $(P)/names
module $(P)/log --prio 0xA1
module $(P)/dm_phys --isa=0x00800000
module $(P)/simple_ts -t 900
module $(P)/rtc
module $(P)/l4io --noirq
module $(P)/bmodfs
  module $(CFG)/l4linux26.cfg
  module $(P)/libloader.s.so
  module $(P)/vmlinuz26
  module $(S)/rd/initrd.gz
module $(P)/l4con --l4io
module $(P)/l4exec
module $(P)/loader --fprov=BMODFS l4linux26.cfg
vbeset $(VBEMODE)
[===============================================]

and it uses the following l4linux26.cfg:

[===============================================]
 modpath "(nd)/tftpboot/drops/bin/x86_586/l4v2"

  sleep 2
  task "vmlinuz26" "mem=32M load_ramdisk=1 ramdisk_size=4096 root=/dev/ram 
l4env_rd=(nd)/tftpboot/drops/bin/rd/initrd.gz showpfexc=1"
    all_sects_writable
[===============================================]

as you can probably see, I use a bit old l4linux and l4env sources (downloaded a year or more ago). I think I 
missed something simple, but I can't understand what. Please help.

WBR,
Valery






More information about the l4-hackers mailing list