Hi everybody,
 
I got a problem with L4Linux but really don't know from where it comes, if I forgot to do something or if there is like a bug in L4Linux.....
 
I have updated my l4 repositories yesterday, switching to L4Linux revision 32 and tudos revision 127. When booting L4Linux with TCP/IP enabled, it blocks after printing "Registered protocol 2". When disabling TCP/IP, it blocks after IDE probe. I have observed the same behavior with revision 31, but didn't have the time at this time to investigate.
 
This time I have tried to find the reason of this loop. I have disabled TCP/IP and tried to see where L4Linux hangs. After IDE probe, L4Linux goes through wait_for_completion(), which calls schedule(), and then loops as need_resched label is always re-invocated.  The last thing displayed is the creation of the idler thread...
The problem with TCP/IP support enabled is different but maybe related to the same source. the schedule() function is also called, but it completes and so schedule. Then the idler thread is created and noting goes on.
 
I have tried with different configurations, especially with protected I/O and unprotected, but I get always the same behavior.
 
This is the output I get trough the serial line with TCP/IP disabled (l4linux also print on serial) :
 
l4lx    | ======> L4Linux 2.6 starting... <========
l4lx    | Linux version 2.6.21-l4 (clermont@L4-dev) (gcc version 3.4.4 (Gentoo
l4lx    : 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8)) #59 Tue Jul 3 19:21:07 Local tim
l4lx    : e zone must be set--see zic manu
l4lx    | Binary name: vmlinuz26
l4lx    | Kernel command line (5 args): console=ttyLv0 earlyprintk=yes mem=128M
l4lx    :  root=/dev/hda1 video=l4fb:refreshsleep:200
l4lx    | Image: 00400000 - 00681000 [2564 KiB].
l4lx    | Areas: Text:     00400000 - 005e6000 [1944kB] (a bit longer)
l4lx    |        Data:     005e6000 - 005f9f7c [79kB]
l4lx    |        Initdata: 005fc000 - 00618260 [112kB]
l4lx    |        BSS:      0061a000 - 0067e840 [402kB]
names   | 12.02: server_names_register(12.03 -> "l4lx.tamer")
l4lx    | l4lx_thread_create: Created thread 12.03 (tamer)
l4lx    | Using tamed mode.
ROOT: Sending all ports (for cli/sti) to task #0d
l4lx    | Got 65536 out of 65536 I/O ports
names   | 12.02: server_names_register(12.04 -> "l4lx.server")
l4lx    | l4lx_thread_create: Created thread 12.04 (server)
l4lx    | main thread will be 12.04
l4lx    | l4env_register_pointer_section: addr = 005e6000 size = 634880
l4lx    |      sec-w-init: virt: 0x005e6000 to 0x00680fff [620 KiB]
l4lx    |      sec-w-init: Number of physical regions: 1, 634880 Bytes
l4lx    |      sec-w-init: 1: Phys: 0x01185000 to 0x01220000, Size:   634880
l4lx    | l4env_linux_startup thread 4.
l4lx    | main thread: received startup message.
l4lx    | Main thread running, waiting...
l4lx    | setup_l4env_memory: Forcing superpages for main memory
l4lx    | Main memory size: 128MB
l4lx    | Got 2048kB of ISA DMA memory.
l4lx    |  ISA DMA memory: virt: 0x00800000 to 0x009fffff [2048 KiB]
l4lx    |  ISA DMA memory: Number of physical regions: 1, 2097152 Bytes
l4lx    |  ISA DMA memory: 1: Phys: 0x0043a000 to 0x0063a000, Size:  2097152
l4lx    |     Main memory: virt: 0x00c00000 to 0x08bfffff [131072 KiB]
l4lx    |     Main memory: Number of physical regions: 1, 134217728 Bytes
l4lx    |     Main memory: 1: Phys: 0x14400000 to 0x1c400000, Size: 134217728
l4lx    | Filling lower ptabs...
l4lx    | Done (1883 entries).
Linux version 2.6.21-l4 (clermont@L4-dev) (gcc version 3.4.4 (Gentoo 3.4.4-r1, s
sp-3.4.4-1.0, pie-8.7.8)) #59 Tue Jul 3 19:21:07 Local time zone must be set--se
e zic manu
CPU: Vendor unknown, using generic init.
CPU: Your system may be unstable.
 dm_phys: 0000000000c00000 - 0000000008c00000 (usable)
 dm_phys: 0000000000800000 - 0000000000a00000 (usable)
132MB memory available.
Zone PFN ranges:
  DMA             0 ->     2560
  Normal       2560 ->    35840
early_node_map[1] active PFN ranges
    0:        0 ->    35840
Allocating PCI resources starting at 10000000 (gap: 00a00000:ff600000)
Built 1 zonelists.  Total pages: 35560
Kernel command line: console=ttyLv0 earlyprintk=yes mem=128M root=/dev/hda1 vide
o=l4fb:refreshsleep:200
Initializing CPU#0
PID hash table entries: 1024 (order: 10, 4096 bytes)
Detected 2800.514 MHz processor.
Console: colour dummy device 80x25
l4ser_init_ports
l4ser: input not enabled!
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 131700k/143360k available (1539k kernel code, 1344k reserved, 484k data,
 112k init, 0k highmem)
virtual kernel memory layout:
    fixmap  : 0xffffc000 - 0xfffff000   (  12 kB)
    vmalloc : 0x10000000 - 0x18000000   ( 128 MB)
    lowmem  : 0x00000000 - 0x08c00000   ( 140 MB)
      .init : 0x005fc000 - 0x00618260   ( 112 kB)
      .data : 0x00580cc4 - 0x005f9f7c   ( 484 kB)
      .text : 0x00400000 - 0x00580cc4   (1539 kB)
l4lx_irq_timer_startup(0)
names   | 12.04: server_names_register(12.05 -> "l4lx.timer.i0")
l4lx    | l4lx_thread_create: Created thread 12.05 (timer.i0)
timer_irq_thread: Starting timer IRQ thread.
Calibrating delay using timer specific routine.. 5603.19 BogoMIPS (lpj=28015972)
Mount-cache hash table entries: 512
Compat vDSO mapped to 0040e000.
CPU: GenuineIntel Intel(R) Pentium(R) 4 CPU 2.80GHz stepping 09
NET: Registered protocol family 16
PCI: Using configuration type 1
Setting up standard PCI resources
SCSI subsystem initialized
PCI: Probing PCI hardware
PCI quirk: region 0400-047f claimed by ICH4 ACPI/GPIO/TCO
PCI quirk: region 0480-04bf claimed by ICH4 GPIO
PCI: Transparent bridge - 0000:00:1e.0
PCI: Ignore bogus resource 6 [0:0] of 0000:00:02.0
PCI: Bridge: 0000:00:03.0
  IO window: a000-afff
  MEM window: fa000000-fa0fffff
  PREFETCH window: disabled.
PCI: Bridge: 0000:00:1e.0
  IO window: b000-bfff
  MEM window: f8000000-f9ffffff
  PREFETCH window: 10000000-100fffff
io scheduler noop registered
Time: tsc clocksource has been installed.
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
__ioremap: Requested region at fa180000 [0x400 Bytes]
__ioremap: Mapping physaddr fa180000 [0x400 Bytes, fa180000+000400] to 08c00000+
000000
l4lx    | Starting L4FB via DOpE
names   | 12.04: server_names_register(12.06 -> "l4lx.listener")
l4dope  | SharedMem(alloc): hl.raw=100000, id=a1, size=96000
l4dope  | SharedMem(get_adr): address = 0x200000
names   | 12.04: server_names_register(12.07 -> "l4lx.DOpE refre")
l4lx    | l4lx_thread_create: Created thread 12.07 (DOpE refresher)
names   | 12.04: server_names_register(12.08 -> "l4lx.L4DOpEinpu")
l4lx    | l4lx_thread_create: Created thread 12.08 (L4DOpEinput)
input: l4input key as /class/input/input0
input: l4input mouse as /class/input/input1
l4fb: DOpE framebuffer at 0x08c05000, size 600k
l4fb: mode is 640x480x16, linelength=1280, pages=0
l4fb: directcolor: size=0:5:6:5, shift=0:11:5:0
Console: switching to colour frame buffer device 80x30
l4fb0: l4fb L4 frame buffer device (refresh: 200ms)
L4 serial driver
l4ser_init_ports
l4ser: input not enabled!
ttyLv0 at MMIO 0x1 (irq = 0) is a L4
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
names   | 12.04: server_names_register(12.09 -> "l4lx.Idler")
l4lx    | l4lx_thread_create: Created thread 12.09 (Idler)
l4dope  | SharedMem(alloc): hl.raw=100000, id=aa, size=280000
l4dope  | SharedMem(get_adr): address = 0x800000
 
Does somebody have a running L4Linux revision 32 ? Is it a known problem, or could it be specific to my configuration, etc ... ?
 
Thanks.
 
--
Nico