Fix for osf1 emulation in 5.0

Andrew Gallatin gallatin at cs.duke.edu
Sat Mar 29 10:27:50 PST 2003


Hi,

Some people have been having problems like the following with OSF/1
emulation on 5.0-RELEASE and 5.0-current:

 exception system: exiting due to multiple internal errors:
         out of memory trying to allocate exception system resources
         handler returned invalid disposition

It turns out that this is caused by a subtle difference in SMP and UP
kernels.  Only SMP kernels are affected by this problem. 

If you have a single CPU system, the easist fix is to remove the line
'options SMP' from your kernel config file, rebuild your kernel,
install it, and reboot.

If you have an SMP system, please apply the appended patch, rebuild
your kernel, install it, and reboot.

Another option would be to upgrade to 5.0-current, where this problem
has just been fixed (by the application of the patch below).

Cheers,

Drew


Index: alpha/include/param.h
===================================================================
RCS file: /home/ncvs/src/sys/alpha/include/param.h,v
retrieving revision 1.29
diff -u -r1.29 param.h
--- alpha/include/param.h	17 Sep 2002 01:48:54 -0000	1.29
+++ alpha/include/param.h	21 Mar 2003 20:15:47 -0000
@@ -91,8 +91,9 @@
 #include <machine/alpha_cpu.h>
 #include <machine/cpu.h>
 
+#define MAXSMPCPU	8
 #ifdef SMP
-#define MAXCPU		32
+#define MAXCPU		MAXSMPCPU
 #else
 #define MAXCPU		1
 #endif
Index: alpha/include/pmap.h
===================================================================
RCS file: /home/ncvs/src/sys/alpha/include/pmap.h,v
retrieving revision 1.21
diff -u -r1.21 pmap.h
--- alpha/include/pmap.h	16 Mar 2003 04:16:02 -0000	1.21
+++ alpha/include/pmap.h	21 Mar 2003 20:15:05 -0000
@@ -177,7 +177,7 @@
 	struct {
 		u_int32_t	asn:ASN_BITS;	/* address space number */
 		u_int32_t	gen:ASNGEN_BITS; /* generation number */
-	}			pm_asn[MAXCPU];
+	}			pm_asn[MAXSMPCPU];
 	struct pmap_statistics	pm_stats;	/* pmap statistics */
 	struct	vm_page		*pm_ptphint;	/* pmap ptp hint */
 	LIST_ENTRY(pmap)	pm_list;	/* list of all pmaps. */



More information about the freebsd-alpha mailing list