linux-alpha.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@kernel.org>
To: "Maciej W. Rozycki" <macro@orcam.me.uk>
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
	Arnd Bergmann <arnd@kernel.org>,
	linux-alpha@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
	Richard Henderson <richard.henderson@linaro.org>,
	Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
	Matt Turner <mattst88@gmail.com>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Marc Zyngier <maz@kernel.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	linux-kernel@vger.kernel.org, Michael Cree <mcree@orcon.net.nz>,
	Frank Scheiner <frank.scheiner@web.de>
Subject: Re: [PATCH 00/14] alpha: cleanups for 6.10
Date: Tue, 28 May 2024 07:43:34 -0700	[thread overview]
Message-ID: <aa397ad5-a08a-48a1-a9c0-75cfd5f6a3a5@paulmck-laptop> (raw)
In-Reply-To: <alpine.DEB.2.21.2405280041550.23854@angie.orcam.me.uk>

On Tue, May 28, 2024 at 12:49:16AM +0100, Maciej W. Rozycki wrote:
> On Fri, 3 May 2024, John Paul Adrian Glaubitz wrote:
> 
> > > I had investigated dropping support for alpha EV5 and earlier a while
> > > ago after noticing that this is the only supported CPU family
> > > in the kernel without native byte access and that Debian has already
> > > dropped support for this generation last year [1] after it turned
> > > out to be broken.
> > 
> > That's not quite correct. Support for older Alphas is not broken and
> > always worked when I tested it. It's just that some people wanted to
> > raise the baseline in order to improve code performance on newer machines
> > with the hope to fix some minor issues we saw on Alpha here and there.
> 
>  I'm not quite happy to see pre-EV5 support go as EV45 is all the Alpha 
> hardware I have and it's only owing to issues with the firmware of my 
> console manager hardware that I haven't deployed it at my lab yet for 
> Linux and GNU toolchain verification.  I'd rather I wasn't stuck with an 
> obsolete version of Linux.
> 
> > > This topic came up again when Paul E. McKenney noticed that
> > > parts of the RCU code already rely on byte access and do not
> > > work on alpha EV5 reliably, so I refreshed my series now for
> > > inclusion into the next merge window.
> > 
> > Hrrrm? That sounds like like Paul ran tests on EV5, did he?
> 
>  What exactly is required to make it work?

Whatever changes are needed to prevent the data corruption that can
currently result in code generated by single-byte stores.  For but one
example, consider a pair of tasks (or one task and an interrupt handler
in the CONFIG_SMP=n case) do a single-byte store to a pair of bytes
in the same machine word.  As I understand it, in code generated for
older Alphas, both "stores" will load the word containing that byte,
update their own byte, and store the updated word.

If two such single-byte stores run concurrently, one or the other of those
two stores will be lost, as in overwritten by the other.  This is a bug,
even in kernels built for single-CPU systems.  And a rare bug at that, one
that tends to disappear as you add debug code in an attempt to find it.

So if you want to run current kernels on old Alphas, you will need to
do something to fix this.

There might well be other things in need of fixing, for but one example,
it might be that the same issue will soon need to be addressed for
two-byte stores.  You will therefore need to carefully investigate this
issue to determine the full extent of work required to solve it.

							Thanx, Paul

  reply	other threads:[~2024-05-28 14:43 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-03  8:11 [PATCH 00/14] alpha: cleanups for 6.10 Arnd Bergmann
2024-05-03  8:11 ` [PATCH 01/14] alpha: sort scr_mem{cpy,move}w() out Arnd Bergmann
2024-05-03  8:11 ` [PATCH 02/14] alpha: fix modversions for strcpy() et.al Arnd Bergmann
2024-05-03  8:11 ` [PATCH 03/14] alpha: add clone3() support Arnd Bergmann
2024-05-03  8:11 ` [PATCH 04/14] alpha: don't make functions public without a reason Arnd Bergmann
2024-05-03  8:11 ` [PATCH 05/14] alpha: sys_sio: fix misspelled ifdefs Arnd Bergmann
2024-05-03  8:11 ` [PATCH 06/14] alpha: missing includes Arnd Bergmann
2024-05-03  8:11 ` [PATCH 07/14] alpha: core_lca: take the unused functions out Arnd Bergmann
2024-05-03  8:11 ` [PATCH 08/14] alpha: jensen, t2 - make __EXTERN_INLINE same as for the rest Arnd Bergmann
2024-05-03  8:11 ` [PATCH 09/14] alpha: trim the unused stuff from asm-offsets.c Arnd Bergmann
2024-05-03  8:11 ` [PATCH 10/14] alpha: remove DECpc AXP150 (Jensen) support Arnd Bergmann
2024-05-03 16:07   ` Linus Torvalds
2024-05-03 17:00   ` Al Viro
2024-05-03 20:07     ` Arnd Bergmann
2024-05-03  8:11 ` [PATCH 11/14] alpha: sable: remove early machine support Arnd Bergmann
2024-05-03  8:11 ` [PATCH 12/14] alpha: remove LCA and APECS based machines Arnd Bergmann
2024-05-03  8:11 ` [PATCH 13/14] alpha: cabriolet: remove EV5 CPU support Arnd Bergmann
2024-05-03  8:11 ` [PATCH 14/14] alpha: drop pre-EV56 support Arnd Bergmann
2024-05-04 15:00   ` Richard Henderson
2024-05-06 10:06     ` Arnd Bergmann
2024-06-03  6:02   ` Jiri Slaby
2024-06-04 13:58     ` Greg KH
2024-05-03 16:06 ` [PATCH 00/14] alpha: cleanups for 6.10 Matt Turner
2024-05-03 20:15   ` Arnd Bergmann
2024-05-06  9:16     ` Michael Cree
2024-05-06 10:11       ` Arnd Bergmann
2024-05-03 16:53 ` John Paul Adrian Glaubitz
2024-05-03 17:19   ` Paul E. McKenney
2024-05-27 23:49   ` Maciej W. Rozycki
2024-05-28 14:43     ` Paul E. McKenney [this message]
2024-05-29 18:50       ` Maciej W. Rozycki
2024-05-29 22:09         ` Paul E. McKenney
2024-05-30 22:59           ` Maciej W. Rozycki
2024-05-31  3:56           ` Maciej W. Rozycki
2024-05-31 19:33             ` Paul E. McKenney
2024-06-03 16:22               ` Maciej W. Rozycki
2024-06-03 17:08                 ` Paul E. McKenney
2024-07-01 23:50                   ` Maciej W. Rozycki
2024-05-30  1:08         ` Linus Torvalds
2024-05-30 22:57           ` Maciej W. Rozycki
2024-05-31  0:10             ` Linus Torvalds
2024-06-03 11:09               ` Maciej W. Rozycki
2024-06-03 11:36                 ` John Paul Adrian Glaubitz
2024-06-03 16:57                 ` Linus Torvalds
2024-07-01 23:48                   ` Maciej W. Rozycki
2024-05-31 15:48         ` Arnd Bergmann
2024-05-31 16:32           ` Linus Torvalds
2024-05-31 16:54             ` Arnd Bergmann
2024-06-01 13:51             ` David Laight
2024-07-01 23:48             ` Maciej W. Rozycki
2024-07-02  1:13               ` Linus Torvalds
2024-07-03  0:12                 ` Maciej W. Rozycki
2024-07-03  0:50                   ` Linus Torvalds
2024-07-04 22:21                     ` Maciej W. Rozycki
2024-06-03 11:33           ` Maciej W. Rozycki

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=aa397ad5-a08a-48a1-a9c0-75cfd5f6a3a5@paulmck-laptop \
    --to=paulmck@kernel.org \
    --cc=arnd@arndb.de \
    --cc=arnd@kernel.org \
    --cc=frank.scheiner@web.de \
    --cc=glaubitz@physik.fu-berlin.de \
    --cc=ink@jurassic.park.msu.ru \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=macro@orcam.me.uk \
    --cc=mattst88@gmail.com \
    --cc=maz@kernel.org \
    --cc=mcree@orcon.net.nz \
    --cc=richard.henderson@linaro.org \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@zeniv.linux.org.uk \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).