On Thu, Nov 05, 2015 at 06:14:19PM +0100, Gilles Chanteperdrix wrote:
> On Thu, Nov 05, 2015 at 11:57:50AM -0500, Lennart Sorensen wrote:
> > On Thu, Nov 05, 2015 at 05:25:14PM +0100, Gilles Chanteperdrix wrote:
> > > I am sure. Xenomai does not use H_DMA on armv7, so, it is not used
> > > if your code, it is not used at all.
> > 
> > Well we are using it for one allocation for talking to a network port.
> > 
> > If I remove it, I get a NULL pointer dereference, so it clearly matters
> > to something in our code.
> > 
> > > > It does appear that when LPAE is enabled H_DMA does do something on arm,
> > > > but only when LPAE is enabled since that enables ZONE_DMA.
> > > 
> > > I never said that H_DMA did nothing.
> > 
> > OK I misunderstood then.
> > 
> > Setting /proc/cpu/alignment to 0 gives the kernel message:
> > alignment: ignoring faults is unsafe on this CPU.  Defaulting to fixup mode.
> > 
> > Apparently armv6+ with CR_U set is not allowed to turn off fixups.
> 
> If you have an armv7, you want to turn off all armv6 processors in
> the kernel configuration so that the kernel does not try to be
> compatible with these obsolete processors.

I thought I had.  Maybe not quite:

# CONFIG_ARCH_MULTI_V6 is not set
CONFIG_ARCH_MULTI_V7=y
CONFIG_ARCH_MULTI_V6_V7=y

I wonder if I can turn off CONFIG_ARCH_MULTI_V6_V7 somehow, not that I
see anything in the kernel code that would change beecause of it.
Of course LPAE being on pretty much also excludes ARMv6 support.

Certainly as far as I can tell, on any armv6+ with CR_U set (which all
armv7 have hardwired), CR_A appears to always be cleared by the kernel, so I 
don't think it is causing the issue.

I think our problem is that we have allocated some memory that isn't
considered normal and hence isn't allowed unaligned accesses and with
gcc-4.6 that wasn't a problem, but with 4.9 it is (since it now does
generate unaligned accesses by default)

I just have to figure out why there was any reason to allocate 'weird'
memory.  I can't figure out why that would have been neccesary, but I
didn't write that code.  I am just trying to fix it.

-- 
Len Sorensen

_______________________________________________
Xenomai mailing list
[email protected]
http://xenomai.org/mailman/listinfo/xenomai

Reply via email to