Sebastian Smolorz wrote: > Hi Philippe, > > our x86 systems are unbootable with an I-pipe patched kernel since version > 2.5-00. I identified the following commit as responsible for the bug: > > commit ae1b39a521d535d6dbd61046666348c106d45f5e (ipipe: disable IRQ > recursion guard for the root domain) > > When I revert the change introduced by this commit our systems boot also > with latest I-pipe version 2.6-03 successfully. > > I have attached the boot log from an unsuccessful boot sequence. > > Sebastian > > > [ 0.000000] Linux version 2.6.34-rc5 (smol...@gcchost) (gcc version 4.2.1 > (SUSE Linux)) #5 PREEMPT Wed May 19 09:57:55 CEST 2010 > > > [ 0.000000] BIOS-provided physical RAM map: > [ 0.000000] BIOS-e820: 0000000000000000 - 000000000009ec00 (usable) > [ 0.000000] BIOS-e820: 000000000009ec00 - 00000000000a0000 (reserved) > [ 0.000000] BIOS-e820: 00000000000c0000 - 00000000000c8000 (reserved) > [ 0.000000] BIOS-e820: 00000000000dc000 - 00000000000e0000 (reserved) > [ 0.000000] BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved) > [ 0.000000] BIOS-e820: 0000000000100000 - 0000000010000000 (usable) > [ 0.000000] BIOS-e820: 00000000fffc0000 - 0000000100000000 (reserved) > [ 0.000000] Notice: NX (Execute Disable) protection missing in CPU or > disabled in BIOS! > [ 0.000000] DMI not present or invalid. > [ 0.000000] last_pfn = 0x10000 max_arch_pfn = 0x100000 > [ 0.000000] init_memory_mapping: 0000000000000000-0000000010000000 > [ 0.000000] ACPI Error: A valid RSDP was not found (20100121/tbxfroot-219) > [ 0.000000] 256MB LOWMEM available. > [ 0.000000] mapped low ram: 0 - 10000000 > [ 0.000000] low ram: 0 - 10000000 > [ 0.000000] Zone PFN ranges: > [ 0.000000] DMA 0x00000001 -> 0x00001000 > [ 0.000000] Normal 0x00001000 -> 0x00010000 > [ 0.000000] Movable zone start PFN for each node > [ 0.000000] early_node_map[2] active PFN ranges > [ 0.000000] 0: 0x00000001 -> 0x0000009e > [ 0.000000] 0: 0x00000100 -> 0x00010000 > [ 0.000000] Allocating PCI resources starting at 10000000 (gap: > 10000000:effc0000) > [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total > pages: 64925 > [ 0.000000] Kernel command line: root=/dev/sda1 ro vga=773 libata.dma=0 > console=ttyS0 > [ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes) > [ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) > [ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) > [ 0.000000] Initializing CPU#0 > [ 0.000000] Subtract (21 early reservations) > [ 0.000000] #0 [0001000000 - 0001371970] TEXT DATA BSS > [ 0.000000] #1 [000009ec00 - 0000100000] BIOS reserved > [ 0.000000] #2 [0001372000 - 0001378000] BRK > [ 0.000000] #3 [0001378000 - 0001578000] BOOTMEM > [ 0.000000] #4 [0001371980 - 0001371984] BOOTMEM > [ 0.000000] #5 [00013719c0 - 0001371a40] BOOTMEM > [ 0.000000] #6 [0001371a40 - 0001371a58] BOOTMEM > [ 0.000000] #7 [0001578000 - 0001578800] BOOTMEM > [ 0.000000] #8 [0001371a80 - 0001371b60] BOOTMEM > [ 0.000000] #9 [0001371b80 - 0001371bc0] BOOTMEM > [ 0.000000] #10 [0001371bc0 - 0001371c00] BOOTMEM > [ 0.000000] #11 [0001371c00 - 0001371c40] BOOTMEM > [ 0.000000] #12 [0001371c40 - 0001371c80] BOOTMEM > [ 0.000000] #13 [0001371c80 - 0001371cc0] BOOTMEM > [ 0.000000] #14 [0001371cc0 - 0001371d00] BOOTMEM > [ 0.000000] #15 [0001371d00 - 0001371d40] BOOTMEM > [ 0.000000] #16 [0001371d40 - 0001371d75] BOOTMEM > [ 0.000000] #17 [0001371d80 - 0001371db5] BOOTMEM > [ 0.000000] #18 [0001578800 - 0001579800] BOOTMEM > [ 0.000000] #19 [0001579800 - 0001599800] BOOTMEM > [ 0.000000] #20 [0001599800 - 00015a9800] BOOTMEM > [ 0.000000] Memory: 255948k/262144k available (2040k kernel code, 5800k > reserved, 980k data, 264k init, 0k highmem) > [ 0.000000] virtual kernel memory layout: > [ 0.000000] fixmap : 0xfffe4000 - 0xfffff000 ( 108 kB) > [ 0.000000] vmalloc : 0xd0800000 - 0xfffe2000 ( 759 MB) > [ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB) > [ 0.000000] .init : 0xc12f4000 - 0xc1336000 ( 264 kB) > [ 0.000000] .data : 0xc11fe221 - 0xc12f3300 ( 980 kB) > [ 0.000000] .text : 0xc1000000 - 0xc11fe221 (2040 kB) > [ 0.000000] Checking if this processor honours the WP bit even in > supervisor mode...Ok. > [ 0.000000] Hierarchical RCU implementation. > [ 0.000000] NR_IRQS:16 > [ 0.000000] I-pipe 2.6-03: pipeline enabled. > [ 0.000000] Console: colour dummy device 80x25 > [ 0.000000] console [ttyS0] enabled > [ 0.000000] Fast TSC calibration using PIT > [ 0.000000] Detected 267.290 MHz processor. > [ 0.012025] Calibrating delay loop (skipped), value calculated using timer > frequency.. 534.58 BogoMIPS (lpj=1069160) > [ 0.024518] Mount-cache hash table entries: 512 > [ 0.032751] Intel Pentium with F0 0F bug - workaround enabled. > [ 0.036290] Performance Events: no PMU driver, software events only. > [ 0.044016] CPU: Intel Mobile Pentium MMX stepping 01 > [ 0.060036] Checking 'hlt' instruction... OK. > [ 0.090307] NET: Registered protocol family 16 > [ 0.110904] PCI: PCI BIOS revision 2.10 entry at 0xfd900, last bus=0 > [ 0.112029] PCI: Using configuration type 1 for base access > [ 0.168873] bio: create slab <bio-0> at 0 > [ 0.173480] ACPI: Interpreter disabled. > [ 0.178407] vgaarb: loaded > [ 0.185920] SCSI subsystem initialized > [ 0.193905] PCI: Probing PCI hardware > [ 0.197833] * Found PM-Timer Bug on the chipset. Due to workarounds for a > bug, > [ 0.197857] * this clock source is slow. Consider trying other clock > sources > [ 0.200191] pci 0000:00:07.3: quirk: [io 0x1000-0x103f] claimed by PIIX4 > ACPI > [ 0.204051] pci 0000:00:07.3: quirk: [io 0x1040-0x104f] claimed by PIIX4 > SMB > [ 0.216845] vgaarb: device added: > PCI:0000:00:14.0,decodes=io+mem,owns=io+mem,locks=none > [ 0.225681] PCI: Discovered primary peer bus 01 [IRQ] > [ 0.228127] pci 0000:00:07.0: PIIX/ICH IRQ router [8086:7110] > [ 0.237509] Switching to clocksource tsc > [ 0.240347] pnp: PnP ACPI: disabled > [ 0.290574] pci 0000:00:12.0: BAR 6: assigned [mem 0x10000000-0x100fffff > pref] > [ 0.377121] pci 0000:00:14.0: BAR 6: assigned [mem 0x10100000-0x1013ffff > pref] > [ 0.464020] NET: Registered protocol family 2 > [ 0.516483] IP route cache hash table entries: 2048 (order: 1, 8192 bytes) > [ 0.600328] TCP established hash table entries: 8192 (order: 4, 65536 > bytes) > [ 0.685436] TCP bind hash table entries: 8192 (order: 3, 32768 bytes) > [ 0.762866] TCP: Hash tables configured (established 8192 bind 8192) > [ 0.838862] TCP reno registered > [ 0.876417] UDP hash table entries: 256 (order: 0, 4096 bytes) > [ 0.946237] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) > [ 1.022432] NET: Registered protocol family 1 > [ 1.074635] pci 0000:00:00.0: Limiting direct PCI/PCI transfers > [ 1.149969] platform rtc_cmos: registered platform RTC device (no PNP > device found) > [ 1.245800] I-pipe: Domain Xenomai registered. > [ 1.299043] Xenomai: hal/i386 started. > [ 1.343994] Xenomai: scheduling class idle registered. > [ 1.405431] Xenomai: scheduling class rt registered. > [ 1.466372] Xenomai: real-time nucleus v2.5.3 (Hordes Of Locusts) loaded. > [ 1.549771] NTFS driver 2.1.29 [Flags: R/O]. > [ 1.601172] msgmni has been set to 499 > [ 1.646731] alg: No test for stdrng (krng) > [ 1.695901] io scheduler noop registered > [ 1.742800] io scheduler deadline registered > [ 1.794018] io scheduler cfq registered (default) > [ 1.854811] vesafb: framebuffer at 0xfd000000, mapped to 0xd0880000, using > 1536k, total 2048k > [ 1.956840] vesafb: mode is 1024x768x8, linelength=1024, pages=0 > [ 2.028685] vesafb: protected mode interface info at c000:7560 > [ 2.098450] vesafb: pmi: set display start = c00c75b8, set palette = > c00c75d7 > [ 2.183807] vesafb: pmi: ports = 3c0 3d4 3d5 3d6 3d7 3d8 3d9 3da 3c7 3c8 > 3c9 > [ 2.269764] vesafb: scrolling: redraw > [ 2.313532] vesafb: Pseudocolor: size=6:6:6:6, shift=0:0:0:0 > [ 2.417227] Console: switching to colour frame buffer device 128x48 > [ 2.522817] fb0: VESA VGA frame buffer device > [ 3.396110] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled > [ 3.473429] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A > [ 3.547377] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A > [ 3.662038] brd: module loaded > [ 3.704340] scsi0 : ata_piix > [ 3.740375] scsi1 : ata_piix > [ 3.775868] ata1: PATA max UDMA/33 cmd 0x1f0 ctl 0x3f6 bmdma 0x1050 irq 14 > [ 3.858166] ata2: PATA max UDMA/33 cmd 0x170 ctl 0x376 bmdma 0x1058 irq 15 > [ 3.949209] PNP: No PS/2 controller found. Probing ports directly. > [ 4.041549] Clocksource tsc unstable (delta = 471093026 ns) > [ 4.108465] Switching to clocksource pit > [ 4.268305] ata1.00: CFA: SanDisk SDCFH-1024, HDX 4.04, max MWDMA2 > [ 4.271401] ata1.00: 2001888 sectors, multi 0: LBA > [ 4.276299] ata1.00: configured for PIO4 > [ 4.297080] scsi 0:0:0:0: Direct-Access ATA SanDisk SDCFH-10 HDX > PQ: 0 ANSI: 5 > [ 4.305330] sd 0:0:0:0: [sda] 2001888 512-byte logical blocks: (1.02 > GB/977 MiB) > [ 4.309344] sd 0:0:0:0: [sda] Write Protect is off > [ 4.312176] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, > doesn't support DPO or FUA > [ 4.321402] sda: sda1 sda2 < sda5 > > [ 4.353303] sd 0:0:0:0: [sda] Attached SCSI removable disk > [ 4.379791] serio: i8042 KBD port at 0x60,0x64 irq 1 > [ 4.390356] mice: PS/2 mouse device common for all mice > [ 4.396441] input: PC Speaker as /class/input/input0 > [ 4.403537] cpuidle: using governor ladder > [ 4.411578] TCP cubic registered > [ 4.415415] NET: Registered protocol family 17 > [ 4.435784] VFS: Mounted root (ext2 filesystem) readonly on device 8:1. > [ 4.439476] Freeing unused kernel memory: 264k freed > [ 4.490390] BUG: unable to handle kernel paging request at 00cfd5ce > [ 4.491348] IP: [<c117e792>] ata_sff_interrupt+0x4f/0x177 > [ 4.491348] *pde = 00000000 > [ 4.491348] Oops: 0000 [#1] PREEMPT > [ 4.491348] last sysfs file: > [ 4.491348] Modules linked in: > [ 4.491348] > [ 4.491348] Pid: 0, comm: swapper Not tainted 2.6.34-rc5 #5 / > [ 4.491348] EIP: 0060:[<c117e792>] EFLAGS: 00010007 CPU: 0 > [ 4.491348] EIP is at ata_sff_interrupt+0x4f/0x177 > [ 4.491348] EAX: cfd4dded EBX: 00000000 ECX: 00cfd5c0 EDX: cfd4ddec > [ 4.491348] ESI: 00000000 EDI: 00000000 EBP: c12c8038 ESP: c12c8014 > [ 4.491348] DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068 > [ 4.491348] Process swapper (pid: 0, ti=c12c6000 task=c12ce340 > task.ti=c12c8000) > [ 4.491348] I-pipe domain Linux > [ 4.491348] Stack: > [ 4.491348] cfd4dded 00000000 00000000 00000000 00000200 0000000e > cfd4dd60 0000000e > [ 4.491348] <0> 00000000 c12c8050 c103c9df 00000000 c12d7618 cfd4dd60 > 0000000e c12c8064 > [ 4.491348] <0> c103e6dd 0000000e 0000003e 0000000e c12c8070 c1003e46 > c12d4d9c c12c8088 > [ 4.491348] Call Trace: > [ 4.491348] [<c103c9df>] ? handle_IRQ_event+0x28/0xa7 > [ 4.491348] [<c103e6dd>] ? handle_level_irq+0x46/0xc3 > [ 4.491348] [<c1003e46>] ? handle_irq+0x1a/0x24 > [ 4.491348] [<c1003b7d>] ? do_IRQ+0x33/0x75 > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c104000c>] ? __ipipe_sync_stage+0xea/0xef > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c1040011>] ? __xirq_end+0x0/0x39 > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c10109d8>] ? __ipipe_unstall_iret_root+0x39/0x3b > [ 4.491348] [<c11fd4a0>] ? restore_ret+0x0/0xe > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c1040011>] ? __xirq_end+0x0/0x39 > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c10109d8>] ? __ipipe_unstall_iret_root+0x39/0x3b > [ 4.491348] [<c11fd4a0>] ? restore_ret+0x0/0xe > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c1040011>] ? __xirq_end+0x0/0x39 > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c10109d8>] ? __ipipe_unstall_iret_root+0x39/0x3b > [ 4.491348] [<c11fd4a0>] ? restore_ret+0x0/0xe > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c1040011>] ? __xirq_end+0x0/0x39 > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c10109d8>] ? __ipipe_unstall_iret_root+0x39/0x3b > [ 4.491348] [<c11fd4a0>] ? restore_ret+0x0/0xe > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c1040011>] ? __xirq_end+0x0/0x39 > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c10109d8>] ? __ipipe_unstall_iret_root+0x39/0x3b > [ 4.491348] [<c11fd4a0>] ? restore_ret+0x0/0xe > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c1040011>] ? __xirq_end+0x0/0x39 > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c10109d8>] ? __ipipe_unstall_iret_root+0x39/0x3b > [ 4.491348] [<c11fd4a0>] ? restore_ret+0x0/0xe > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c1040011>] ? __xirq_end+0x0/0x39 > [ 4.491348] [<c1003b4a>] ? do_IRQ+0x0/0x75 > [ 4.491348] [<c10109d8>] ? __ipipe_unstall_iret_root+0x39/0x3b > [ 4.491348] [<c11fd4a0>] ? restore_ret+0x0/0xe >
Looks like your problem is x86-32 returning from interrupts with hard IRQs enabled (and therefore flushing the pipeline already over the interrupt handler). That should ideally be unified with x86-64 now, also as x86-64 may already gain better testing than 32 bit. Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux _______________________________________________ Adeos-main mailing list [email protected] https://mail.gna.org/listinfo/adeos-main
