mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jamie Lokier <jamie@shareable.org>
To: "Paul J.Y. Lahaie" <pjlahaie@steamballoon.com>,
	linux-kernel@vger.kernel.org
Subject: Re: x86, ARM, PARISC, PPC, MIPS and Sparc folks please run this
Date: Tue, 2 Sep 2003 06:34:15 +0100	[thread overview]
Message-ID: <20030902053415.GA7619@mail.jlokier.co.uk> (raw)
In-Reply-To: <20030901181148.C22682@flint.arm.linux.org.uk>

Russell King wrote:
> >    1. That's not necessary when the virtual addresses are separated
> >       by some multiple, is it?
> 
> Incorrect - with a VIVT, you have alias hell.  There is no multiple
> which makes it safe.

Ok.  I guess I was thinking of VIPT, but by now I am just guessing :)

> > > I've tested on several silicon revisions of StrongARM-110's:
> > > - H appears buggy (reports as rev. 2)
> > > - K appears fine (reports as rev. 2)
> > > - S appears buggy (reports as rev. 3)
> > 
> > It's possible that all of them are buggy, but the write buffer test
> > doesn't manage to get writes into the buffer with the exact timing
> > needed to trigger it.
> 
> Well, I've just generated a kernel test which does more or less the
> same thing (write to one mapping, write to other, read from first.)
> This indicates the same result.
> 
> If you take a moment to think about what should be going on -
> 
> - first write gets translated to physical address, and the address with
>   the data is placed in the write buffer.
> - second write gets translated to the same physical address, and the
>   address and data is placed into the write buffer such that we store
>   the first write then the second write to the same physical memory.
> - reading from the first mapping should return the second writes value
>   no matter what.

That is an incomplete explanation, because it should never be possible
for reads to access data from the write buffer which isn't the most
recent.  That would break ordinary programs which don't have alias mappings.

> > Unfortunately, while the write buffer test does
> > pretty much guarantee a store/store/load instruction sequence, because
> > it's generic it can't guarantee how those are executed in a
> > superscalar or out of order pipeline.
> 
> ARM doesn't do any of those tricks.

Don't some of the ARMs executed two instructions concurrently, like
the original Pentium?  The simple test is only valid if a
store/store/load sequence is guaranteed to pass through the buggy part
of the pipeline in exactly the same way, no matter which programs it
appears in.

> > > So it seems your test program finds problems which DaveM's aliastest
> > > program fails to detect...  Gah. ;(
> > 
> > Well, it's good to know it was useful :/
> 
> Well, we now have a kernel test to detect the problem, which alters our
> behaviour appropriately.  Thanks.

Fwiw, PA-RISC shows a similar problem.

-- Jamie

  reply	other threads:[~2003-09-02  5:34 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-08-29  5:35 Jamie Lokier
2003-08-29 10:03 ` J.A. Magallon
2003-08-29 10:36   ` Alan Cox
2003-09-01  4:49   ` Jamie Lokier
2003-08-29 10:04 ` Sergey S. Kostyliov
2003-08-29 10:15 ` J.A. Magallon
2003-08-29 10:21 ` J.A. Magallon
2003-08-29 10:34 ` CaT
2003-08-29 10:37 ` CaT
2003-08-29 10:49 ` Mikael Pettersson
2003-08-29 11:41 ` Gianni Tedesco
2003-08-29 11:51 ` James Morris
2003-08-29 15:41 ` Larry McVoy
2003-08-29 23:05   ` Mike Fedyk
2003-08-31  5:10     ` David S. Miller
2003-08-31 22:49       ` Jamie Lokier
2003-09-01  5:31         ` David S. Miller
2003-09-01  6:42           ` Jamie Lokier
2003-09-01  7:06             ` David S. Miller
2003-09-01  8:29               ` Jamie Lokier
2003-09-01  9:02                 ` David S. Miller
2003-09-01 10:04                   ` Jamie Lokier
2003-09-01 10:02                     ` David S. Miller
2003-09-03 17:36                   ` bill davidsen
2003-09-04 22:50                     ` Jamie Lokier
2003-09-01  5:44   ` Jamie Lokier
2003-09-01 14:43     ` Larry McVoy
2003-09-01 16:33       ` Jamie Lokier
2003-09-01 16:58         ` Larry McVoy
2003-09-02 20:29       ` Jamie Lokier
2003-08-29 15:47 ` Herbert Poetzl
2003-08-30  1:48   ` Stuart Longland
2003-08-29 16:27 ` Geert Uytterhoeven
2003-09-01  5:58   ` Jamie Lokier
2003-09-01  8:34     ` Geert Uytterhoeven
2003-09-01  9:09       ` Kars de Jong
2003-09-01 10:08         ` Jamie Lokier
2003-09-01 11:13           ` Roman Zippel
2003-09-02 20:42           ` Kars de Jong
2003-09-02 21:39             ` Jamie Lokier
2003-09-03  7:59             ` Geert Uytterhoeven
2003-09-03  9:13               ` Jamie Lokier
2003-09-03  9:26                 ` Geert Uytterhoeven
2003-09-03 12:17                   ` Roman Zippel
2003-09-03 12:36                     ` Geert Uytterhoeven
2003-09-03 13:29                       ` Jamie Lokier
2003-09-03 16:07                         ` Nagendra Singh Tomar
2003-09-04  5:03                           ` Davide Libenzi
2003-09-03 18:03                             ` Nagendra Singh Tomar
2003-09-04  6:38                               ` Davide Libenzi
2003-09-04 11:19                           ` Alan Cox
2003-09-05 21:24                             ` Pavel Machek
2003-09-06 23:09                               ` Jamie Lokier
2003-09-07 13:10                                 ` Pavel Machek
2003-09-07 13:35                                   ` Jamie Lokier
2003-09-07 13:40                                     ` Pavel Machek
2003-09-07 13:53                                       ` Jamie Lokier
2003-09-07 17:56                                         ` Alan Cox
2003-09-03 12:13               ` Jan-Benedict Glaw
2003-09-01 10:35       ` Sam Creasey
2003-09-01 10:48         ` Jamie Lokier
2003-09-01 12:23           ` Sam Creasey
2003-09-03  8:00       ` Kars de Jong
2003-09-03  8:05         ` Geert Uytterhoeven
2003-09-03  9:24           ` Kars de Jong
2003-08-29 16:31 ` Brian Jackson
2003-08-29 17:39 ` Matt Porter
2003-09-01  6:00   ` Jamie Lokier
2003-09-01 11:17     ` Alan Cox
2003-09-01 17:22     ` Roland Dreier
2003-09-02  2:16       ` Matt Porter
2003-09-02  5:40         ` Jamie Lokier
2003-08-29 19:37 ` Thorsten Kranzkowski
2003-08-29 20:03 ` Sean Neakums
2003-08-29 20:14 ` Iulian Musat
2003-08-29 20:26 ` Paul J.Y. Lahaie
2003-09-01  8:15   ` Russell King
2003-09-01 10:12     ` Jamie Lokier
2003-09-01 11:30       ` Geert Uytterhoeven
2003-09-01 14:17       ` Russell King
2003-09-01 14:51         ` Russell King
2003-09-01 19:09           ` Guennadi Liakhovetski
2003-09-01 16:52         ` Jamie Lokier
2003-09-01 17:11           ` Russell King
2003-09-02  5:34             ` Jamie Lokier [this message]
2003-09-02  8:15               ` Russell King
2003-09-02 11:57                 ` Jamie Lokier
2003-09-02 18:52                   ` Russell King
2003-09-02 23:59                     ` Larry McVoy
2003-09-03  7:31                       ` Russell King
2003-09-03  7:41                         ` Jamie Lokier
2003-09-03 18:05                           ` Russell King
2003-09-04 22:20                             ` Jamie Lokier
2003-09-04 17:37       ` Maciej W. Rozycki
2003-08-29 22:35 ` Kenneth Johansson
2003-08-29 23:47 ` Kurt Wall
2003-09-01  0:24 ` Paul Mundt
2003-09-01  0:37   ` Jamie Lokier
2003-09-01  1:00     ` Paul Mundt
2003-09-01  1:58       ` Jamie Lokier
2003-09-01  1:13 ` dean gaudet
2003-09-01  4:29   ` Jamie Lokier
2003-09-02 10:08 ` Jan Rychter
     [not found] <20030829053510.GA12663@mail.jlokier.co.uk.suse.lists.linux.kernel>
2003-08-29 11:08 ` Andi Kleen
2003-08-29 11:17   ` Russell King
2003-09-01  5:03   ` Jamie Lokier

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=20030902053415.GA7619@mail.jlokier.co.uk \
    --to=jamie@shareable.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pjlahaie@steamballoon.com \
    /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

all inboxes | Powered by JetHome®