From: Albert ARIBAUD <albert.u.boot@aribaud.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2] arm: Switch to -mno-unaligned-access when supported by the compiler
Date: Mon, 10 Feb 2014 15:57:51 +0100 [thread overview]
Message-ID: <20140210155751.23849fcb@lilith> (raw)
In-Reply-To: <20140210132139.GT7049@bill-the-cat>
Hi Tom,
On Mon, 10 Feb 2014 08:21:39 -0500, Tom Rini <trini@ti.com> wrote:
> On Mon, Feb 10, 2014 at 10:24:47AM +0100, Albert ARIBAUD wrote:
> > Hi Tom,
> >
> > On Tue, 4 Feb 2014 12:05:33 -0500, Tom Rini <trini@ti.com> wrote:
> >
> > > When we tell the compiler to optimize for ARMv7 it assumes a default of
> > > unaligned accesses being supported at the hardware level and can make
> > > use of this to perform what it deems as an optimization in any case,
> > > including allowing for data to become unaligned. We explicitly disallow
> > > this hardware feature so we must tell the compiler.
> > >
> > > Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
> > > Cc: Mans Rullgard <mans@mansr.com>
> > > Signed-off-by: Tom Rini <trini@ti.com>
> >
> > NAK -- the discrepancy between the compiler being told to allow native
> > unaligned accesses while at the same time telling the hardware to trap
> > them is conscious and voluntary. It was chosen to help detect unaligned
> > accesses which are rarely necessary and can be explicitly performed by
> > software on a case by case basis.
> >
> > If and when a specific file requires unaligned access which cannot be
> > made by some other mean than enabling -mno-unaligned-access, then this
> > file should have it added, not the whole of U-Boot.
>
> Right, I recall the discussion, and we chose wrong.
I am quite prepared to discuss whether we chose wrong or right, and
to change my mind when the conditions are right, but I'll need more than
such a short and simple statement. :)
> We aren't being clever and making problems that would appear on armv5
> and lower (or non-ARM never allows unaligned access platforms) problems
> to appear on more common armv7 platforms.
Agreed that we are making problems appear on ARMv7 which are not that
much of an issue on ARMv7, but are a true issue on non-ARMv7 arches;
that *is* the intent. We want to know as early as possible when some
code which runs ok on unaligned-access-friendly platforms such as
ARMv7 might cause trouble on unaligned-access-adverse platforms later,
once it gets used there too.
> We're telling the compiler it's OK to do
> one thing when it's not and then getting annoying problems such as the
> EFI partition one where the compiler looks at everything, says we can do
> $this and then fails at runtime because we lied to it. The whole
> splashguard set of options is another place where I believe we've shot
> ourselves in the foot, quite likely.
Ok, so the cause of this patch is not the apparent contradiction between
the compiler and hardware setting per se; it is that the EFI code has
issues which make it susceptible to crash on unaligned-access-adverse
platforms.
This means the trap has worked as expected and has caught some code
which does unaligned accesses. Let's analyze it: either we'll conclude
it can and should be fixed through e.g. ad hoc unaligned access macros
or we'll conclude it can't and we'll add -mno-unaligned-access to the
files which can't work otherwise.
Amicalement,
--
Albert.
next prev parent reply other threads:[~2014-02-10 14:57 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-04 17:05 [U-Boot] [PATCH v2] arm: Switch to -mno-unaligned-access when supported by the compiler Tom Rini
2014-02-04 17:35 ` Måns Rullgård
2014-02-10 9:24 ` Albert ARIBAUD
2014-02-10 13:21 ` Tom Rini
2014-02-10 14:57 ` Albert ARIBAUD [this message]
2014-02-10 15:14 ` Måns Rullgård
2014-02-10 15:40 ` Måns Rullgård
2014-02-10 16:12 ` Albert ARIBAUD
2014-02-10 16:21 ` Måns Rullgård
2014-02-10 16:24 ` Tom Rini
2014-02-10 17:26 ` Albert ARIBAUD
2014-02-10 18:54 ` Wolfgang Denk
2014-02-10 21:26 ` Tom Rini
2014-02-10 22:17 ` Wolfgang Denk
2014-02-10 22:28 ` Tom Rini
2014-02-11 8:19 ` Wolfgang Denk
2014-02-11 12:37 ` Måns Rullgård
2014-02-11 14:43 ` Wolfgang Denk
2014-02-11 15:33 ` Måns Rullgård
2014-02-11 16:37 ` Albert ARIBAUD
2014-02-11 16:44 ` Måns Rullgård
2014-02-11 17:11 ` Albert ARIBAUD
2014-02-11 17:21 ` Albert ARIBAUD
2014-02-12 14:35 ` Tom Rini
2014-02-12 16:19 ` Albert ARIBAUD
2014-02-17 15:45 ` Tom Rini
2014-02-17 15:55 ` Albert ARIBAUD
2014-02-11 18:18 ` Wolfgang Denk
2014-02-11 18:21 ` Måns Rullgård
2014-02-11 8:44 ` Albert ARIBAUD
2014-02-12 14:25 ` Tom Rini
2014-02-12 15:51 ` Wolfgang Denk
2014-02-10 15:21 ` Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140210155751.23849fcb@lilith \
--to=albert.u.boot@aribaud.net \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox