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 mailto: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 mailto: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.