Re: Early boot hang on recent 2.6 kernels (> 2.6.3), on x86-64 with 16gb of RAM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tuesday 19 September 2006 08:28, Robin Lee Powell wrote:
> On Tue, Sep 19, 2006 at 08:04:14AM +0200, Andi Kleen wrote:
> > 
> > > Done; it's at
> > > http://teddyb.org/~rlpowell/media/regular/lkml/hacked-boot.txt
> > > 
> > > Note that I had to us "mce=off acpi=off pci=conf1" to get any of
> > > that hack's output to show up at all; I wasn't clear whether you
> > > intended that or not.
> > 
> > Unfortunately with mce=off we can't see which device breaks. Can
> > you please boot with the patch and just 
> > 
> > acpi=off pci=conf1 ? 
> > 
> > and send the full output?
> 
> The result is a reboot in the middle of bringing up CPU#1.  No
> output from the patch is printed.
> 
> I've printed it below anyways.


What happens when you additionally add this patch and boot with
the same options again? 

-Andi


diff -u linux-2.6.17-hack/include/asm-x86_64/pci-direct.h-o linux-2.6.17-hack/include/asm-x86_64/pci-direct.h
--- linux-2.6.17-hack/include/asm-x86_64/pci-direct.h-o	2006-03-03 08:14:00.000000000 +0100
+++ linux-2.6.17-hack/include/asm-x86_64/pci-direct.h	2006-09-19 08:38:25.000000000 +0200
@@ -7,33 +7,32 @@
 /* Direct PCI access. This is used for PCI accesses in early boot before
    the PCI subsystem works. */ 
 
-#define PDprintk(x...)
+#define PDprintk(x...) printk(x)
 
 static inline u32 read_pci_config(u8 bus, u8 slot, u8 func, u8 offset)
 {
 	u32 v; 
+	PDprintk("%x reading 4 from %x: %x\n", slot, offset, v);
 	outl(0x80000000 | (bus<<16) | (slot<<11) | (func<<8) | offset, 0xcf8);
 	v = inl(0xcfc); 
-	if (v != 0xffffffff)
-		PDprintk("%x reading 4 from %x: %x\n", slot, offset, v);
 	return v;
 }
 
 static inline u8 read_pci_config_byte(u8 bus, u8 slot, u8 func, u8 offset)
 {
 	u8 v; 
+	PDprintk("%x reading 1 from %x: %x\n", slot, offset, v);
 	outl(0x80000000 | (bus<<16) | (slot<<11) | (func<<8) | offset, 0xcf8);
 	v = inb(0xcfc + (offset&3)); 
-	PDprintk("%x reading 1 from %x: %x\n", slot, offset, v);
 	return v;
 }
 
 static inline u16 read_pci_config_16(u8 bus, u8 slot, u8 func, u8 offset)
 {
 	u16 v; 
+	PDprintk("%x reading 2 from %x: %x\n", slot, offset, v);
 	outl(0x80000000 | (bus<<16) | (slot<<11) | (func<<8) | offset, 0xcf8);
 	v = inw(0xcfc + (offset&2)); 
-	PDprintk("%x reading 2 from %x: %x\n", slot, offset, v);
 	return v;
 }
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux