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

Re: Alpha SMP status



On Tue, Dec 12, 2006 at 11:26:18AM +0530, Aneesh Kumar K.V wrote:
> On Tue, 2006-12-12 at 10:23 +0900, James Andrewartha wrote:
> > Hi all,
> > 
> > Some of you may be aware that SMP has been broken on Alpha for most of 
> > 2.6. As of linux-image-2.6.18-3-smp, I'm pleased to report that it boots 
> > and runs acceptably because scsi_mod is compiled in (bug 369517). However, 
> > things like ip_conntrack and ipv6 are still broken - inserting them gives 
> > errors like "Could not allocate 8 bytes percpu data". This explains why 
> > all the scsi drivers were broken - scsi_mod also couldn't allocate percpu 
> > data and so wasn't loaded. As with scsi, you can work around this by 
> > compiling them (ipv6 etc.) in to the kernel rather than as modules.
> > 
> > Anyway, this points to the core of the problem as being something to do 
> > with percpu data. Hopefully this narrows it down enough for someone 
> > familiar with the kernel to have a go at finding and fixing the problem.
> 
> May be it is running out of space for per cpu area. You can try by
> increasing the PERCPU_ENOUGH_ROOM in include/linux/percpu.h and see if
> get pass. I looked other 64 bit archs x86_64 and ia64 and they both have
> different value. May be alpha also needs a different value.

These patches have been useful for the AlphaCore-2 2.6.15-based
kernels in getting SMP working, though we seem to also need to build
part of the SCSI subsystem into the kernel as well.

 --Jay++

---------------------------------------------------------------
Jay A Estabrook                            HPTC - XC I & B
Hewlett-Packard Company - ZKO1-3/D-B.8     (603) 884-0301
110 Spit Brook Road, Nashua NH 03062       Jay.Estabrook@hp.com
---------------------------------------------------------------
--- linux-2.6.15/include/asm-alpha/percpu.h.orig	2006-01-03 06:21:10.000000000 +0300
+++ linux-2.6.15/include/asm-alpha/percpu.h	2006-03-22 16:46:05.000000000 +0300
@@ -1,6 +1,8 @@
 #ifndef __ALPHA_PERCPU_H
 #define __ALPHA_PERCPU_H
 
+#define	PERCPU_ENOUGH_ROOM	(192*1024)
+
 #include <asm-generic/percpu.h>
 
 #endif /* __ALPHA_PERCPU_H */
--- linux-2.6.15/kernel/module.c.ORIG	2006-02-28 17:09:53.000000000 -0500
+++ linux-2.6.15/kernel/module.c	2006-02-28 17:11:57.000000000 -0500
@@ -293,8 +293,8 @@
 		return ptr;
 	}
 
-	printk(KERN_WARNING "Could not allocate %lu bytes percpu data\n",
-	       size);
+	printk(KERN_WARNING "Could not allocate %lu bytes percpu data for module %s\n",
+	       size, name);
 	return NULL;
 }
 

Reply to: