Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Nov 2014 08:12:23 -0700
From:      Ian Lepore <ian@FreeBSD.org>
To:        Tony Moseby <tsmoseby@yahoo.no>
Cc:        "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>
Subject:   Re: VM FAULT
Message-ID:  <1417187543.1047.9.camel@revolution.hippie.lan>
In-Reply-To: <103098674.2514784.1417176312748.JavaMail.yahoo@jws11120.mail.ir2.yahoo.com>
References:  <103098674.2514784.1417176312748.JavaMail.yahoo@jws11120.mail.ir2.yahoo.com>

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

--=-c0CuVJoStb+q+PCqABL3
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit

On Fri, 2014-11-28 at 12:05 +0000, Tony Moseby wrote:
> Hello,
> Now and then my system crashes at boot, sometimes freezes , sometimes I get following information (see below).I am running FreeBsd 8.2 with a marvel ethernet switch, someone who have seen orcan explain this?
> 
> vm_fault(0xc0bd4914, b82d3000, 1, 0) -> 1Fatal kernel mode data abort: 'Translation Fault (S)'trapframe: 0xd663edecFSR=00000005, FAR=b82d37a8, spsr=00000013r0 =c0bd40b8, r1 =0001bb40, r2 =feedfeed, r3 =00000040r4 =0000009c, r5 =c0bd4070, r6 =b82d3530, r7 =c4e72c00r8 =c0bd3d2c, r9 =c0bd3a30, r10=c0bdad60, r11=d663ee64r12=7ab16e37, ssp=d663ee38, slr=c091a844, pc =c0950118
> 

There's not really enough info in that panic output to figure out the
problem.  When it happens again, a backtrace (just enter bt at the
debugger prompt) might help.

I'm attaching a patch we used at $work when running 8.2 on a
marvell-based Dreamplug.  Maybe it will help, although the problem it
fixed for us was IO corruption on disk and network reads, so it doesn't
seem all that related.

-- Ian




--=-c0CuVJoStb+q+PCqABL3
Content-Disposition: inline; filename="dp_cache_wralloc.diff"
Content-Type: text/x-patch; name="dp_cache_wralloc.diff"; charset="us-ascii"
Content-Transfer-Encoding: 7bit

Do not enable allocating a cache line on write access.  Instead, leave that
feature in whatever state the bootloader set it to, on the theory that the
firmware that comes with the unit knows best.  This fixes intermittant cache
line corruptions during bulk network data flow.

diff -r df572d6d53cd -r a142512ee876 sys/arm/arm/cpufunc.c
--- sys/arm/arm/cpufunc.c	Thu Nov 22 16:46:06 2012 -0700
+++ sys/arm/arm/cpufunc.c	Sat Dec 01 15:38:59 2012 -0700
@@ -1067,13 +1067,13 @@ set_cpufuncs()
 			 */
 			if (cputype == CPU_ID_MV88FR571_VD ||
 			    cputype == CPU_ID_MV88FR571_41) {
-				sheeva_control_ext(0xffffffff,
-				    FC_DCACHE_STREAM_EN | FC_WR_ALLOC_EN |
+				sheeva_control_ext(0xffffffff & ~FC_WR_ALLOC_EN,
+				    FC_DCACHE_STREAM_EN |
 				    FC_BRANCH_TARG_BUF_DIS | FC_L2CACHE_EN |
 				    FC_L2_PREF_DIS);
 			} else {
-				sheeva_control_ext(0xffffffff,
-				    FC_DCACHE_STREAM_EN | FC_WR_ALLOC_EN |
+				sheeva_control_ext(0xffffffff & ~FC_WR_ALLOC_EN,
+				    FC_DCACHE_STREAM_EN |
 				    FC_BRANCH_TARG_BUF_DIS | FC_L2CACHE_EN);
 			}
 

--=-c0CuVJoStb+q+PCqABL3--




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