From: Mike Frysinger <vapier@gentoo.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] 8313erdb: Set guarded bit on BAT that covers the end of the address space.
Date: Tue, 17 Mar 2009 14:46:54 -0400 [thread overview]
Message-ID: <200903171446.56296.vapier@gentoo.org> (raw)
In-Reply-To: <49BFE965.40904@freescale.com>
On Tuesday 17 March 2009 14:18:13 Scott Wood wrote:
> Mike Frysinger wrote:
> >>> if C code is doing ptr checks, the compiler should make sure that
> >>> pointer is not dereferenced at all if the hardware cannot suffer the
> >>> consequences, even speculatively.
> >>
> >> There is no reasonable way for the compiler to prevent such speculative
> >> accesses. Non-memory-like mappings must have the guarded bit set. That
> >> is what the bit is there for.
> >
> > if the hardware doesnt have a way of preventing it, then the compiler
> > must nop bad accesses that are unknown.
>
> The hardware *does* have a way of preventing it. It's the guarded bit. :-)
>
> I don't know of any amount of "nop" instructions that would be
> architecturally guaranteed to avoid this -- they're no-ops, not syncs
> (despite how some other architectures use them). They can be discarded
> as fast as the chip can decode them.
right, it depends on the pipeline. some let the nops force the address decode
stages to get filled so they dont get speculatively filled and then fetched.
sounds like the ppc pipeline doesnt operate that way.
> Adding an isync instruction should avoid it, but that's a heavy
> performance penalty. Why pay it for all accesses rather than just those
> which are not memory-like (and can be flagged as such in the TLB)?
right, if the mappings allow speculative fetches to be turned off for certain
regions, that's the way to go
> > i'm not sure your example proves your position. if you have a region
> > that cannot stand speculative access, how do you handle bad pointer
> > checking if the compiler may generate code that'll speculatively hit it
> > at any time ?
>
> The compiler is not speculatively doing anything. It is the CPU -- and
> the guarded bit tells it to not do that.
i didnt mean the compiler was doing it. i meant the compiler generates dense
code that the hardware turns around and speculatively loads.
the change sounded like you were addressing a specific issue that was noticed,
but other regions could still (in general) cause problems. but i guess that
isnt the case at all.
thanks for the info
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20090317/339e2fbf/attachment.pgp
next prev parent reply other threads:[~2009-03-17 18:46 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-17 17:09 [U-Boot] [PATCH] 8313erdb: Set guarded bit on BAT that covers the end of the address space Scott Wood
2009-03-17 17:43 ` Anton Vorontsov
2009-03-17 19:49 ` Scott Wood
2009-03-17 20:12 ` Anton Vorontsov
2009-03-17 17:47 ` Mike Frysinger
2009-03-17 17:52 ` Scott Wood
2009-03-17 18:07 ` Mike Frysinger
2009-03-17 18:13 ` Kumar Gala
2009-03-17 18:38 ` Mike Frysinger
2009-03-17 18:18 ` Scott Wood
2009-03-17 18:46 ` Mike Frysinger [this message]
2009-03-17 19:11 ` Scott Wood
2009-03-18 12:53 ` Jerry Van Baren
2009-03-18 7:41 ` Norbert van Bolhuis
2009-03-23 9:51 ` Liu Dave-R63238
2009-03-30 22:56 ` Kim Phillips
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=200903171446.56296.vapier@gentoo.org \
--to=vapier@gentoo.org \
--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