Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Feb 2001 10:13:28 -0500 (EST)
From:      Andrew Gallatin <gallatin@cs.duke.edu>
To:        Yoriaki FUJIMORI <fujimori@grafin.fujimori.cache.waseda.ac.jp>
Cc:        freebsd-alpha@FreeBSD.ORG
Subject:   Re: 4.2R on up1100 
Message-ID:  <14997.11416.73311.455787@grasshopper.cs.duke.edu>
In-Reply-To: <200102221136.UAA24148@grafin.fujimori.cache.waseda.ac.jp>
References:  <200102221117.UAA24109@grafin.fujimori.cache.waseda.ac.jp> <200102221136.UAA24148@grafin.fujimori.cache.waseda.ac.jp>

next in thread | previous in thread | raw e-mail | index | archive | help

Yoriaki FUJIMORI writes:
 > Folks,
 > This is the second report.
 > I removed a hard disk from one FreeBSD/Alpha box, and connected it
 > to up1100.
 > The kernel panics at the same place.  But, when I removed one DIMM,
 > so that the system have got only 512MB, then up1100 booted properly.
 > 
 > I guess memory over 512MB on UP1000/1100 may not be properly
 > handled.

My UP1000 has only 128MB of memory, so I cannot reproduce the problem.
I think the problem is that isa bounce buffer allocation doesn't work
well on alpha for large memory machines.  Since the UP1x00 is the only
alpha w/o scatter/gather, it is the only victim of this problem.  

I'll bet the contigmalloc() is failing in alloc_bounce_pages().  Since
the alpha busdma_machdep.c was basically copied from i386, I'm going
to assume it is safe to allocate the same amount of memory, which ends
up being 1/2 the number of pages.  Can you try the appended patch,
please?   

If that doesn't work, we'll need to think harder about where the
memory < 16MB is going on your machine.

Drew



Index: alpha/alpha/busdma_machdep.c
===================================================================
RCS file: /home/ncvs/src/sys/alpha/alpha/busdma_machdep.c,v
retrieving revision 1.7.2.1
diff -u -r1.7.2.1 busdma_machdep.c
--- alpha/alpha/busdma_machdep.c	2000/07/04 01:46:11	1.7.2.1
+++ alpha/alpha/busdma_machdep.c	2001/02/22 15:08:42
@@ -39,7 +39,7 @@
 
 #define MAX(a,b) (((a) > (b)) ? (a) : (b))
 #define MIN(a,b) (((a) < (b)) ? (a) : (b))
-#define MAX_BPAGES 128
+#define MAX_BPAGES 64
 
 struct bus_dma_tag {
 	bus_dma_tag_t	  parent;



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?14997.11416.73311.455787>