linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Peter Hurley <peter@hurleysoftware.com>
To: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>
Cc: Jakub Jelinek <jakub@redhat.com>,
	"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
	Tony Luck <tony.luck@intel.com>,
	"linux-ia64@vger.kernel.org" <linux-ia64@vger.kernel.org>,
	linux-alpha@vger.kernel.org, Oleg Nesterov <oleg@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	David Laight <David.Laight@ACULAB.COM>,
	Paul Mackerras <paulus@samba.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	Miroslav Franc <mfranc@redhat.com>,
	Richard Henderson <rth@twiddle.net>
Subject: Re: bit fields && data tearing
Date: Thu, 11 Sep 2014 16:01:58 -0400	[thread overview]
Message-ID: <5411FFB6.2080702@hurleysoftware.com> (raw)
In-Reply-To: <20140911110411.2de01944@alan.etchedpixels.co.uk>

On 09/11/2014 06:04 AM, One Thousand Gnomes wrote:
>>> Is *that* what we are talking about?  I was added to this conversation
>>> in the middle where it had already generalized, so I had no idea.
>>
>> No, this is just what brought this craziness to my attention.
> 
> None of it is craziness. It's the real world leaking into the crazy
> delusional world of sequential programming. Machines are going to get
> more not less parallel.
> 
>> For example, byte- and short-sized circular buffers could not possibly
>> be safe either, when the head nears the tail.
>>
>> Who has audited global storage and ensured that _every_ byte-sized write
>> doesn't happen to be adjacent to some other storage that may not happen
>> to be protected by the same (or any) lock?
> 
> Thats a meaningless question. Have you audited it all for correctness of
> any other form. Have you mathematically verified the functionality as a
> set of formal proofs ? If you can't prove its formally mathematically
> functionally correct why are you worried about this ?
> 
> Alpha works, maybe it has a near theoretical race on that point. It's not
> any worse than it was 15 years ago and nobody has really hit a problem
> with it. So from that you can usefully infer that those buffer cases are
> not proving a real problem.
>
> The tty locks together on the other hand are asking to hit it, and the
> problem you were trying to fix were the ones that need set_bit() to make
> the guarantees.

So a problem that no one has ever complained about on _any_ arch is suddenly
a problem on a subset of Alpha cpus, but a problem I know exists on Alpha
isn't important because no one's filed a bug about it?

The only Alpha person in this discussion has come out clearly in favor
of dropping EV4/5 support.

The fact is that the kernel itself is much more parallel than it was
15 years ago, and that trend is going to continue. Paired with the fact
that the Alpha is the least-parallel-friendly arch, makes improving
parallelism and correctness even harder within kernel subsystems; harder
than it has to be and harder than it should be.

Linus has repeatedly stated that non-arch code should be as
arch-independent as possible, so I believe that working around problems
created by a cpu from 1995 _which no other arch exhibits_ is ludicrous.
Especially in generic kernel code.

That said, if the Alpha community wants to keep _actively_ supporting
the Alpha arch, fine. They could be working toward solutions for
making Alpha workarounds in generic kernel code unnecessary. If that means
compiler changes, ok. If that means arch-independent macros, well, they
can float that idea.

Or if they're comfortable with the status quo, also fine. By that, I mean
the Alpha arch gets no workarounds in generic kernel code, and if something
goes a little sideways only on Alpha, that's to be expected.

As Paul pointed out, a good first step would be for the Alpha community
to contribute byte and short versions of smp_load_acquire() and
smp_store_release() so that the rest of the kernel community can make
forward progress on more parallelism without Alpha-only limitations.

Regards,
Peter Hurley

  parent reply	other threads:[~2014-09-11 20:02 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-12 18:13 bit fields && data tearing Oleg Nesterov
2014-07-12 20:51 ` Oleg Nesterov
2014-07-12 23:34   ` Benjamin Herrenschmidt
2014-07-13 12:29     ` Oleg Nesterov
2014-07-13 13:15     ` Peter Hurley
2014-07-13 22:25       ` Benjamin Herrenschmidt
2014-07-15 13:54         ` Peter Hurley
2014-07-15 15:02           ` Richard Henderson
2014-09-03 22:51 ` Peter Hurley
2014-09-03 23:11   ` Benjamin Herrenschmidt
2014-09-04  8:43     ` David Laight
2014-09-04  9:52       ` Benjamin Herrenschmidt
2014-09-04 22:14         ` H. Peter Anvin
2014-09-05  0:59           ` Peter Hurley
2014-09-05  2:08             ` H. Peter Anvin
2014-09-05 15:31               ` Peter Hurley
2014-09-05 15:41                 ` H. Peter Anvin
2014-09-08 17:52                   ` One Thousand Gnomes
2014-09-08 17:59                     ` H. Peter Anvin
2014-09-08 19:17                       ` One Thousand Gnomes
2014-09-09 11:18                         ` Peter Hurley
2014-09-08 22:47                       ` Peter Hurley
2014-09-09  1:59                         ` Paul E. McKenney
2014-09-09 11:14                         ` Peter Hurley
2014-09-11 10:04                         ` One Thousand Gnomes
2014-09-11 16:16                           ` Paul E. McKenney
2014-09-11 20:01                           ` Peter Hurley [this message]
2014-09-14 23:24                             ` One Thousand Gnomes
2014-09-22 19:51                               ` Paul E. McKenney
2014-09-23 18:19                               ` Peter Hurley
2014-09-23 18:39                                 ` One Thousand Gnomes
2014-09-08 18:13                     ` James Bottomley
2014-09-10 20:18                     ` H. Peter Anvin
2014-09-10 21:10                       ` Rob Landley
2014-09-05  2:08             ` H. Peter Anvin
2014-09-05  8:16               ` Michael Cree
2014-09-05 18:09                 ` Paul E. McKenney
2014-09-05 18:31                   ` Paul E. McKenney
2014-09-05 19:52                     ` Peter Zijlstra
2014-09-05 20:01                       ` Peter Hurley
2014-09-05 20:12                         ` Peter Zijlstra
2014-09-05 20:15                           ` H. Peter Anvin
2014-09-05 20:19                         ` Paul E. McKenney
2014-09-05 18:50                   ` Peter Hurley
2014-09-05 19:05                     ` Paul E. McKenney
2014-09-05 19:24                       ` Peter Hurley
2014-09-05 20:09                         ` Paul E. McKenney
2014-09-05 19:38                       ` Marc Gauthier
2014-09-05 20:14                         ` Peter Hurley
2014-09-05 20:34                           ` H. Peter Anvin
2014-09-05 20:42                             ` Michael Cree
2014-09-05 20:43                             ` Paul E. McKenney
2014-09-05 20:48                               ` Thomas Gleixner
2014-09-05 21:05                                 ` Paul E. McKenney
2014-09-05 20:39                           ` Michael Cree
2014-09-05 21:12                             ` Peter Hurley
2014-09-05 21:27                               ` Michael Cree
2014-09-05 20:42                           ` Paul E. McKenney
2014-09-04  8:57     ` Mikael Pettersson
2014-09-04  9:09       ` Jakub Jelinek
2014-09-04 12:24         ` Peter Hurley
2014-09-04 12:29           ` Jakub Jelinek
2014-09-04 16:50           ` One Thousand Gnomes
2014-09-04 19:42             ` Peter Hurley
2014-09-04 22:16               ` H. Peter Anvin
2014-09-05  0:17                 ` Paul E. McKenney
2014-09-05  1:57                   ` Peter Hurley
2014-09-05  2:11                   ` James Bottomley
2014-09-05  2:47                     ` Peter Hurley
2014-09-05  4:06                       ` Paul E. McKenney
2014-09-05  8:30                         ` David Laight
2014-09-05 12:31                           ` Peter Hurley
2014-09-05 12:37                             ` David Laight
2014-09-05 16:17                               ` Peter Hurley
2014-09-25 16:12                                 ` Pavel Machek
2014-09-07  5:07                         ` James Bottomley
2014-09-07 16:21                           ` Paul E. McKenney
2014-09-07 19:04                             ` James Bottomley
2014-09-07 20:41                               ` Peter Hurley
2014-09-08  5:50                                 ` James Bottomley
2014-09-08 20:45                                   ` Chris Metcalf
2014-09-08 22:43                                     ` James Bottomley
2014-09-09  2:27                                       ` H. Peter Anvin
2014-09-09  8:11                                         ` Arnd Bergmann
2014-09-08 23:30                                   ` Peter Hurley
2014-09-09  2:56                                     ` James Bottomley
2014-09-09  3:20                                       ` H. Peter Anvin
2014-09-09  4:30                                       ` H. Peter Anvin
2014-09-09 10:40                                       ` Peter Hurley
2014-09-10 21:48                                         ` James Bottomley
2014-09-10 23:50                                           ` Peter Hurley
2014-09-11 10:23                                           ` Will Deacon
2014-09-07 23:00                               ` Paul E. McKenney
2014-09-07 23:17                                 ` H. Peter Anvin
2014-09-07 23:36                                   ` Paul E. McKenney
2014-09-07 23:39                                     ` H. Peter Anvin
2014-09-08  5:56                                       ` James Bottomley
2014-09-08 18:12                                         ` H. Peter Anvin
2014-09-08 19:09                                           ` James Bottomley
2014-09-08 19:12                                             ` H. Peter Anvin
2014-09-08 22:39                                               ` James Bottomley
2014-09-09  2:30                                                 ` H. Peter Anvin
2014-09-08 19:12                                             ` H. Peter Anvin

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=5411FFB6.2080702@hurleysoftware.com \
    --to=peter@hurleysoftware.com \
    --cc=David.Laight@ACULAB.COM \
    --cc=gnomes@lxorguk.ukuu.org.uk \
    --cc=hpa@zytor.com \
    --cc=jakub@redhat.com \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mfranc@redhat.com \
    --cc=oleg@redhat.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=paulus@samba.org \
    --cc=rth@twiddle.net \
    --cc=tony.luck@intel.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;
as well as URLs for NNTP newsgroup(s).