All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Alexander Duyck <alexander.duyck@gmail.com>,
	Will Deacon <will.deacon@arm.com>,
	Sinan Kaya <okaya@codeaurora.org>, Arnd Bergmann <arnd@arndb.de>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	David Laight <David.Laight@aculab.com>, Oliver <oohall@gmail.com>,
	"open list:LINUX FOR POWERPC (32-BIT AND 64-BIT)"
	<linuxppc-dev@lists.ozlabs.org>,
	"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: RFC on writel and writel_relaxed
Date: Wed, 28 Mar 2018 17:42:56 +1100	[thread overview]
Message-ID: <1522219376.7364.109.camel@kernel.crashing.org> (raw)
In-Reply-To: <CA+55aFw24R3YAujir59GdG+sBBQOA9WyXySEN3AcEYK99ZHuwQ@mail.gmail.com>

On Tue, 2018-03-27 at 20:26 -1000, Linus Torvalds wrote:
> On Tue, Mar 27, 2018 at 6:33 PM, Benjamin Herrenschmidt
> <benh@kernel.crashing.org> wrote:
> > 
> > This is why, I want (with your agreement) to define clearly and once
> > and for all, that the Linux semantics of writel are that it is ordered
> > with previous writes to coherent memory (*)
> 
> Honestly, I think those are the sane semantics. In fact, make it
> "ordered with previous writes" full stop, since it's not only ordered
> wrt previous writes to memory, but also previous writel's.

Of course. It was somewhat a given that it's ordered vs. any previous
MMIO actually, but it doesn't hurt to spell it out once more.

> > Also, can I assume the above ordering with writel() equally applies to
> > readl() or not ?
> > 
> > IE:
> >         dma_buf->foo = 1;
> >         readl(STUPID_DEVICE_DMA_KICK_ON_READ);
> 
> If that KICK_ON_READ is UC, then that's definitely the case. And
> honestly, status registers like that really should always be UC.
> 
> But if somebody sets the area WC (which is crazy), then I think it
> might be at least debatable. x86 semantics does allow reads to be done
> before previous writes (or, put another way, writes to be buffered -
> the buffers are ordered so writes don't get re-ordered, but reads can
> happen during the buffering).

Right, for now I worry about UC semantics. Once we have nailed that, we
can look at WC, which is a lot more tricky as archs differs more
widely, but one thing at a time.

> But UC accesses are always  done entirely ordered, and honestly, any
> status register that starts a DMA would not make sense any other way.
> 
> Of course, you'd have to be pretty odd to want to start a DMA with a
> read anyway - partly exactly because it's bad for performance since
> reads will be synchronous and not buffered like a write).

I have bad memories of old adaptec controllers ...

That said, I think the above might not be right on ARM if we want to
make it the rule, Will, what do you reckon ?

Cheers,
Ben.

  reply	other threads:[~2018-03-28  6:42 UTC|newest]

Thread overview: 215+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-21  3:07 RFC on writel and writel_relaxed Sinan Kaya
2018-03-21  3:40 ` Oliver
2018-03-21  3:40   ` Oliver
2018-03-21 13:53   ` Sinan Kaya
2018-03-21 13:53     ` Sinan Kaya
2018-03-21 13:58     ` Sinan Kaya
2018-03-21 13:58       ` Sinan Kaya
2018-03-26 13:43       ` Arnd Bergmann
2018-03-26 13:43         ` Arnd Bergmann
2018-03-26 16:00         ` Sinan Kaya
2018-03-26 16:00           ` Sinan Kaya
2018-03-21 14:35     ` David Laight
2018-03-21 14:35       ` David Laight
2018-03-21 15:04       ` Sinan Kaya
2018-03-22  5:24       ` Oliver
2018-03-22  8:20         ` Gabriel Paubert
2018-03-22  8:20           ` Gabriel Paubert
2018-03-22  9:25           ` Oliver
2018-03-22  9:25             ` Oliver
2018-03-22 11:25             ` Gabriel Paubert
2018-03-22 11:25               ` Gabriel Paubert
2018-03-22 10:37         ` David Laight
2018-03-22 10:37           ` David Laight
2018-03-22  4:24     ` Benjamin Herrenschmidt
2018-03-22  4:24       ` Benjamin Herrenschmidt
2018-03-22 10:15       ` Oliver
2018-03-22 10:15         ` Oliver
2018-03-22 13:52         ` Benjamin Herrenschmidt
2018-03-22 13:52           ` Benjamin Herrenschmidt
2018-03-22 17:51           ` Sinan Kaya
2018-03-22 17:51             ` Sinan Kaya
2018-03-23  0:16             ` Benjamin Herrenschmidt
2018-03-23  0:16               ` Benjamin Herrenschmidt
2018-03-23 13:42               ` Sinan Kaya
2018-03-23 13:42                 ` Sinan Kaya
2018-03-24  1:22                 ` Benjamin Herrenschmidt
2018-03-24  1:22                   ` Benjamin Herrenschmidt
2018-03-24 15:06                   ` Sinan Kaya
2018-03-24 15:06                     ` Sinan Kaya
2018-03-26 11:44               ` Will Deacon
2018-03-26 11:44                 ` Will Deacon
2018-03-26 12:11                 ` okaya
2018-03-26 12:11                   ` okaya
2018-03-26 12:42                   ` Sinan Kaya
2018-03-26 12:42                     ` Sinan Kaya
2018-03-23 16:35           ` Jason Gunthorpe
2018-03-23 16:35             ` Jason Gunthorpe
2018-03-24  1:23             ` Benjamin Herrenschmidt
2018-03-24  1:23               ` Benjamin Herrenschmidt
2018-03-26 11:08               ` David Laight
2018-03-26 11:08                 ` David Laight
2018-03-26 16:54                 ` Jason Gunthorpe
2018-03-26 16:54                   ` Jason Gunthorpe
2018-03-26 19:44                   ` Arnd Bergmann
2018-03-26 19:44                     ` Arnd Bergmann
2018-03-26 20:25                     ` Jason Gunthorpe
2018-03-26 20:25                       ` Jason Gunthorpe
2018-03-26 20:43                       ` Arnd Bergmann
2018-03-26 20:43                         ` Arnd Bergmann
2018-03-26 21:09                         ` Jason Gunthorpe
2018-03-26 21:09                           ` Jason Gunthorpe
2018-03-26 21:30                           ` Arnd Bergmann
2018-03-26 21:30                             ` Arnd Bergmann
2018-03-26 21:46                             ` Sinan Kaya
2018-03-26 21:46                               ` Sinan Kaya
2018-03-26 22:01                               ` Benjamin Herrenschmidt
2018-03-26 22:01                                 ` Benjamin Herrenschmidt
2018-03-26 22:08                                 ` Sinan Kaya
2018-03-26 22:08                                   ` Sinan Kaya
2018-03-26 22:28                                   ` Benjamin Herrenschmidt
2018-03-26 22:28                                     ` Benjamin Herrenschmidt
2018-03-26 22:27                                 ` Jason Gunthorpe
2018-03-26 22:27                                   ` Jason Gunthorpe
2018-03-26 22:36                                   ` Benjamin Herrenschmidt
2018-03-26 22:36                                     ` Benjamin Herrenschmidt
2018-03-26 22:42                                     ` Benjamin Herrenschmidt
2018-03-26 22:42                                       ` Benjamin Herrenschmidt
2018-03-26 22:50                                     ` Jason Gunthorpe
2018-03-26 22:50                                       ` Jason Gunthorpe
2018-03-26 23:59                                       ` Benjamin Herrenschmidt
2018-03-26 23:59                                         ` Benjamin Herrenschmidt
2018-03-27  1:39                                         ` Jason Gunthorpe
2018-03-27  1:39                                           ` Jason Gunthorpe
2018-03-27  7:56                                   ` Arnd Bergmann
2018-03-27  7:56                                     ` Arnd Bergmann
2018-03-27  8:56                                     ` Benjamin Herrenschmidt
2018-03-27  8:56                                       ` Benjamin Herrenschmidt
2018-03-27  9:44                                       ` Arnd Bergmann
2018-03-27  9:44                                         ` Arnd Bergmann
2018-03-27 10:00                                         ` Will Deacon
2018-03-27 10:00                                           ` Will Deacon
2018-03-27 11:23                                         ` Benjamin Herrenschmidt
2018-03-27 11:23                                           ` Benjamin Herrenschmidt
2018-03-27 12:22                                           ` okaya
2018-03-27 12:22                                             ` okaya
2018-03-27 14:12                                             ` Jason Gunthorpe
2018-03-27 14:12                                               ` Jason Gunthorpe
2018-03-27 21:27                                               ` Benjamin Herrenschmidt
2018-03-27 21:27                                                 ` Benjamin Herrenschmidt
2018-03-27  9:57                                       ` Will Deacon
2018-03-27  9:57                                         ` Will Deacon
2018-03-27 10:05                                         ` Arnd Bergmann
2018-03-27 10:05                                           ` Arnd Bergmann
2018-03-27 10:09                                           ` Will Deacon
2018-03-27 10:09                                             ` Will Deacon
2018-03-27 10:53                                             ` Arnd Bergmann
2018-03-27 10:53                                               ` Arnd Bergmann
2018-03-27 11:02                                               ` Will Deacon
2018-03-27 11:02                                                 ` Will Deacon
2018-03-27 11:05                                                 ` Arnd Bergmann
2018-03-27 11:05                                                   ` Arnd Bergmann
2018-03-27 11:25                                                 ` Benjamin Herrenschmidt
2018-03-27 11:25                                                   ` Benjamin Herrenschmidt
2018-03-27 13:20                                                 ` David Laight
2018-03-27 13:20                                                   ` David Laight
2018-03-27 13:46                                                 ` Sinan Kaya
2018-03-27 13:46                                                   ` Sinan Kaya
2018-03-27 14:36                                                   ` Will Deacon
2018-03-27 14:36                                                     ` Will Deacon
2018-03-27 21:29                                                     ` Benjamin Herrenschmidt
2018-03-27 21:29                                                       ` Benjamin Herrenschmidt
2018-03-28  8:53                                                       ` Will Deacon
2018-03-28  8:53                                                         ` Will Deacon
2018-03-28  9:00                                                         ` David Laight
2018-03-28  9:00                                                           ` David Laight
2018-03-28  9:09                                                           ` Will Deacon
2018-03-28  9:09                                                             ` Will Deacon
2018-03-28  9:56                                                             ` Benjamin Herrenschmidt
2018-03-28  9:56                                                               ` Benjamin Herrenschmidt
2018-03-28  9:50                                                         ` Benjamin Herrenschmidt
2018-03-28  9:50                                                           ` Benjamin Herrenschmidt
2018-03-28  9:55                                                           ` Arnd Bergmann
2018-03-28  9:55                                                             ` Arnd Bergmann
2018-03-28 10:01                                                             ` Benjamin Herrenschmidt
2018-03-28 10:01                                                               ` Benjamin Herrenschmidt
2018-03-28 10:13                                                               ` Will Deacon
2018-03-28 10:13                                                                 ` Will Deacon
2018-03-28 16:57                                                                 ` Jason Gunthorpe
2018-03-28 16:57                                                                   ` Jason Gunthorpe
2018-03-29  9:19                                                                   ` Will Deacon
2018-03-29  9:19                                                                     ` Will Deacon
2018-03-29 14:45                                                                     ` Jason Gunthorpe
2018-03-29 14:45                                                                       ` Jason Gunthorpe
2018-03-29 14:58                                                                       ` David Laight
2018-03-29 14:58                                                                         ` David Laight
2018-03-29 16:40                                                                         ` Jason Gunthorpe
2018-03-29 16:40                                                                           ` Jason Gunthorpe
2018-03-27 21:24                                                   ` Benjamin Herrenschmidt
2018-03-27 21:24                                                     ` Benjamin Herrenschmidt
2018-03-27 11:21                                         ` Benjamin Herrenschmidt
2018-03-27 11:21                                           ` Benjamin Herrenschmidt
2018-03-27  9:42                                     ` Will Deacon
2018-03-27  9:42                                       ` Will Deacon
2018-03-27 11:20                                       ` Benjamin Herrenschmidt
2018-03-27 11:20                                         ` Benjamin Herrenschmidt
2018-03-27 11:24                                         ` Will Deacon
2018-03-27 11:24                                           ` Will Deacon
2018-03-27 14:24                                       ` Jason Gunthorpe
2018-03-27 14:24                                         ` Jason Gunthorpe
2018-03-27 14:16                                     ` Jason Gunthorpe
2018-03-27 14:16                                       ` Jason Gunthorpe
2018-03-26 22:00                             ` Benjamin Herrenschmidt
2018-03-26 22:00                               ` Benjamin Herrenschmidt
2018-03-27 14:46                               ` Sinan Kaya
2018-03-27 15:01                                 ` Jose Abreu
2018-03-27 15:10                                 ` Will Deacon
2018-03-27 18:54                                   ` Alexander Duyck
2018-03-27 19:54                                     ` Arnd Bergmann
2018-03-27 19:54                                       ` Arnd Bergmann
2018-03-27 20:46                                       ` Arnd Bergmann
2018-03-27 20:46                                         ` Arnd Bergmann
2018-03-27 21:33                                     ` Benjamin Herrenschmidt
2018-03-28  0:39                                       ` Linus Torvalds
2018-03-28  1:03                                         ` Benjamin Herrenschmidt
2018-03-28  2:51                                           ` Linus Torvalds
2018-03-28  3:24                                             ` Sinan Kaya
2018-03-28  4:41                                               ` Benjamin Herrenschmidt
2018-03-28  6:14                                               ` Linus Torvalds
2018-03-28 11:41                                                 ` okaya
2018-03-28 15:13                                                   ` Benjamin Herrenschmidt
2018-03-28 15:55                                                     ` David Miller
2018-03-28 16:23                                                       ` Nicholas Piggin
2018-03-28 21:31                                                         ` Benjamin Herrenschmidt
2018-03-28 22:09                                                           ` Nicholas Piggin
2018-03-29  9:20                                                           ` Will Deacon
2018-03-29 13:56                                                       ` Sinan Kaya
2018-03-29 14:04                                                         ` David Miller
2018-03-29 16:29                                                         ` Arnd Bergmann
2018-03-29 16:59                                                           ` Sinan Kaya
2018-03-30  1:40                                                         ` Benjamin Herrenschmidt
2018-04-02 13:01                                                           ` Sinan Kaya
2018-03-28  4:33                                             ` Benjamin Herrenschmidt
2018-03-28  6:26                                               ` Linus Torvalds
2018-03-28  6:42                                                 ` Benjamin Herrenschmidt [this message]
2018-03-28  6:53                                                   ` Linus Torvalds
2018-03-28  6:53                                                     ` Linus Torvalds
2018-03-28  6:56                                                     ` Benjamin Herrenschmidt
2018-03-28  7:11                                                       ` Arnd Bergmann
2018-03-28  7:42                                                         ` Benjamin Herrenschmidt
2018-03-28  9:07                                                   ` Will Deacon
2018-03-28  9:56                                                     ` Benjamin Herrenschmidt
2018-03-28 10:13                                                       ` Aw: " Lino Sanfilippo
2018-03-28 10:20                                                         ` Benjamin Herrenschmidt
2018-03-28 11:30                                                       ` David Laight
2018-03-28 11:30                                                         ` David Laight
2018-03-28 15:12                                                         ` Benjamin Herrenschmidt
2018-03-28 16:16                                                           ` David Laight
2018-03-28 16:16                                                             ` David Laight
2018-03-28  1:21                                   ` Benjamin Herrenschmidt
2018-03-27 21:35                                 ` Benjamin Herrenschmidt
2018-03-26 21:26                   ` Benjamin Herrenschmidt
2018-03-26 21:26                     ` Benjamin Herrenschmidt
  -- strict thread matches above, loose matches on Subject: below --
2018-03-27 21:54 Alexander Duyck
2018-03-27 22:35 ` Sinan Kaya
2018-03-27 23:43 ` Benjamin Herrenschmidt

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=1522219376.7364.109.camel@kernel.crashing.org \
    --to=benh@kernel.crashing.org \
    --cc=David.Laight@aculab.com \
    --cc=alexander.duyck@gmail.com \
    --cc=arnd@arndb.de \
    --cc=jgg@ziepe.ca \
    --cc=linux-rdma@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=netdev@vger.kernel.org \
    --cc=okaya@codeaurora.org \
    --cc=oohall@gmail.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=torvalds@linux-foundation.org \
    --cc=will.deacon@arm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.