Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Aug 2013 17:31:35 +0100
From:      Andrew Turner <andrew@fubar.geek.nz>
To:        Ian Lepore <ian@FreeBSD.org>
Cc:        freebsd-arm@FreeBSD.org, mattia.rossi.mate@gmail.com
Subject:   Re: Kernel Panic on DREAMPLUG: Alignment Fault 1
Message-ID:  <20130803173135.76566eeb@bender.Home>
In-Reply-To: <1375538681.45247.273.camel@revolution.hippie.lan>
References:  <51F92F79.9010809@gmail.com> <1375309907.45247.185.camel@revolution.hippie.lan> <51F9C81A.7000106@gmail.com> <1375358623.45247.189.camel@revolution.hippie.lan> <51FA1D2B.9090009@gmail.com> <1375363713.45247.193.camel@revolution.hippie.lan> <51FA8946.8030301@gmail.com> <1375374521.45247.211.camel@revolution.hippie.lan> <20130803083248.342108c2@bender.Home> <1375538681.45247.273.camel@revolution.hippie.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 03 Aug 2013 08:04:41 -0600
Ian Lepore <ian@FreeBSD.org> wrote:
> On Sat, 2013-08-03 at 08:32 +0100, Andrew Turner wrote:
> > Can you try the patch at [1]. It should fix the stack alignment in
> > exceptions. I suspect gcc is working in this case because it doesn't
> > generate any instructions that rely on the stack alignment, where
> > clang does.
> > 
> > Andrew
> > 
> > [1] http://people.freebsd.org/~andrew/trapframe_align2.diff
> 
> It's actually not clang vs gcc, it's EABI vs OABI on armv5te.  EABI
> fails the same with clang and gcc.
> 
> With your patch and gcc EABI I get:
> 
> ...
> da1: 40.000MB/s transfers
> da1: 15193MB (31116288 512 byte sectors: 255H 63S/T 1936C)
> da1: quirks=0x3<NO_SYNC_CACHE,NO_6_BYTE>
> Fatal kernel mode data abort: 'Alignment Fault 1'
> trapframe: Fatal kernel mode data abort: 'Alignment Fault 1'
> trapframe: Fatal kernel mode data abort: 'Alignment Fault 1'
> trapframe: Fatal kernel mode data abort: 'Alignment Fault 1'
> [lots more lines of that]
> trapframe: Fatal kernel mode data abort: 'Alignment Fault 1'
> trapframe: Fatal kernel mode data abort: 'Alignment Fault 1'
> Fatal kernel mode prefetch abort at 0xFatal kernel mode data abort:
> 'Alignment Fault 1' trapframe: Fatal kernel mode data abort:
> 'Alignment Fault 1' trapframe: Fatal kernel mode data abort:
> 'Alignment Fault 1'
> 
> And it just continued like that for quite a while, mostly data abort
> with the occasional prefetch abort thrown in.  Eventually it locked
> hard.

It looks like I missed setting the alignment in one of the ARMv4/5
macros. I have an updated patch at [1].

[1] http://people.freebsd.org/~andrew/trapframe_align3.diff



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