All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Laight <David.Laight@ACULAB.COM>
To: 'Benjamin Herrenschmidt' <benh@kernel.crashing.org>,
	Will Deacon <will.deacon@arm.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Alexander Duyck <alexander.duyck@gmail.com>,
	Sinan Kaya <okaya@codeaurora.org>, Arnd Bergmann <arnd@arndb.de>,
	Jason Gunthorpe <jgg@ziepe.ca>, 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 16:16:08 +0000	[thread overview]
Message-ID: <a0cfcb83e2c34ae399beeea65582ff99@AcuMS.aculab.com> (raw)
In-Reply-To: <1522249950.21446.23.camel@kernel.crashing.org>

From: Benjamin Herrenschmidt
> Sent: 28 March 2018 16:13
...
> > I've always wondered exactly what the twi;isync were for - always seemed
> > very heavy handed for most mmio reads.
> > Particularly if you are doing mmio reads from a data fifo.
> 
> If you do that you should use the "s" version of the accessors. Those
> will only do the above trick at the end of the access series. Also a
> FIFO needs special care about endianness anyway, so you should use
> those accessors regardless. (Hint: you never endian swap a FIFO even on
> BE on a LE device, unless something's been wired very badly in HW).

That was actually a 64 bit wide fifo connected to a 16bit wide PIO interface.
Reading the high address 'clocked' the fifo.
So the first 3 reads could happen in any order, but the 4th had to be last.
This is a small ppc and we shovel a lot of data through that fifo.

Whether it needed byteswapping depended completely on how our hardware people
had built the pcb (not made easy by some docs using the ibm bit numbering).
In fact it didn't....

While that driver only had to run on a very specific small ppc, generic drivers
might have similar issues.

I suspect that writel() is always (or should always be):
	barrier_before_writel()
	writel_relaxed()
	barrier_after_writel()
So if a driver needs to do multiple writes (without strong ordering)
it should be able to repeat the writel_relaxed() with only one set
of barriers.
Similarly for readl().
In addition a lesser barrier is probably enough between a readl_relaxed()
and a writel_relaxed() that is conditional on the read value.

	David


WARNING: multiple messages have this Message-ID (diff)
From: David Laight <David.Laight@ACULAB.COM>
To: 'Benjamin Herrenschmidt' <benh@kernel.crashing.org>,
	Will Deacon <will.deacon@arm.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Alexander Duyck <alexander.duyck@gmail.com>,
	Sinan Kaya <okaya@codeaurora.org>, Arnd Bergmann <arnd@arndb.de>,
	Jason Gunthorpe <jgg@ziepe.ca>, 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 16:16:08 +0000	[thread overview]
Message-ID: <a0cfcb83e2c34ae399beeea65582ff99@AcuMS.aculab.com> (raw)
In-Reply-To: <1522249950.21446.23.camel@kernel.crashing.org>

RnJvbTogQmVuamFtaW4gSGVycmVuc2NobWlkdA0KPiBTZW50OiAyOCBNYXJjaCAyMDE4IDE2OjEz
DQouLi4NCj4gPiBJJ3ZlIGFsd2F5cyB3b25kZXJlZCBleGFjdGx5IHdoYXQgdGhlIHR3aTtpc3lu
YyB3ZXJlIGZvciAtIGFsd2F5cyBzZWVtZWQNCj4gPiB2ZXJ5IGhlYXZ5IGhhbmRlZCBmb3IgbW9z
dCBtbWlvIHJlYWRzLg0KPiA+IFBhcnRpY3VsYXJseSBpZiB5b3UgYXJlIGRvaW5nIG1taW8gcmVh
ZHMgZnJvbSBhIGRhdGEgZmlmby4NCj4gDQo+IElmIHlvdSBkbyB0aGF0IHlvdSBzaG91bGQgdXNl
IHRoZSAicyIgdmVyc2lvbiBvZiB0aGUgYWNjZXNzb3JzLiBUaG9zZQ0KPiB3aWxsIG9ubHkgZG8g
dGhlIGFib3ZlIHRyaWNrIGF0IHRoZSBlbmQgb2YgdGhlIGFjY2VzcyBzZXJpZXMuIEFsc28gYQ0K
PiBGSUZPIG5lZWRzIHNwZWNpYWwgY2FyZSBhYm91dCBlbmRpYW5uZXNzIGFueXdheSwgc28geW91
IHNob3VsZCB1c2UNCj4gdGhvc2UgYWNjZXNzb3JzIHJlZ2FyZGxlc3MuIChIaW50OiB5b3UgbmV2
ZXIgZW5kaWFuIHN3YXAgYSBGSUZPIGV2ZW4gb24NCj4gQkUgb24gYSBMRSBkZXZpY2UsIHVubGVz
cyBzb21ldGhpbmcncyBiZWVuIHdpcmVkIHZlcnkgYmFkbHkgaW4gSFcpLg0KDQpUaGF0IHdhcyBh
Y3R1YWxseSBhIDY0IGJpdCB3aWRlIGZpZm8gY29ubmVjdGVkIHRvIGEgMTZiaXQgd2lkZSBQSU8g
aW50ZXJmYWNlLg0KUmVhZGluZyB0aGUgaGlnaCBhZGRyZXNzICdjbG9ja2VkJyB0aGUgZmlmby4N
ClNvIHRoZSBmaXJzdCAzIHJlYWRzIGNvdWxkIGhhcHBlbiBpbiBhbnkgb3JkZXIsIGJ1dCB0aGUg
NHRoIGhhZCB0byBiZSBsYXN0Lg0KVGhpcyBpcyBhIHNtYWxsIHBwYyBhbmQgd2Ugc2hvdmVsIGEg
bG90IG9mIGRhdGEgdGhyb3VnaCB0aGF0IGZpZm8uDQoNCldoZXRoZXIgaXQgbmVlZGVkIGJ5dGVz
d2FwcGluZyBkZXBlbmRlZCBjb21wbGV0ZWx5IG9uIGhvdyBvdXIgaGFyZHdhcmUgcGVvcGxlDQpo
YWQgYnVpbHQgdGhlIHBjYiAobm90IG1hZGUgZWFzeSBieSBzb21lIGRvY3MgdXNpbmcgdGhlIGli
bSBiaXQgbnVtYmVyaW5nKS4NCkluIGZhY3QgaXQgZGlkbid0Li4uLg0KDQpXaGlsZSB0aGF0IGRy
aXZlciBvbmx5IGhhZCB0byBydW4gb24gYSB2ZXJ5IHNwZWNpZmljIHNtYWxsIHBwYywgZ2VuZXJp
YyBkcml2ZXJzDQptaWdodCBoYXZlIHNpbWlsYXIgaXNzdWVzLg0KDQpJIHN1c3BlY3QgdGhhdCB3
cml0ZWwoKSBpcyBhbHdheXMgKG9yIHNob3VsZCBhbHdheXMgYmUpOg0KCWJhcnJpZXJfYmVmb3Jl
X3dyaXRlbCgpDQoJd3JpdGVsX3JlbGF4ZWQoKQ0KCWJhcnJpZXJfYWZ0ZXJfd3JpdGVsKCkNClNv
IGlmIGEgZHJpdmVyIG5lZWRzIHRvIGRvIG11bHRpcGxlIHdyaXRlcyAod2l0aG91dCBzdHJvbmcg
b3JkZXJpbmcpDQppdCBzaG91bGQgYmUgYWJsZSB0byByZXBlYXQgdGhlIHdyaXRlbF9yZWxheGVk
KCkgd2l0aCBvbmx5IG9uZSBzZXQNCm9mIGJhcnJpZXJzLg0KU2ltaWxhcmx5IGZvciByZWFkbCgp
Lg0KSW4gYWRkaXRpb24gYSBsZXNzZXIgYmFycmllciBpcyBwcm9iYWJseSBlbm91Z2ggYmV0d2Vl
biBhIHJlYWRsX3JlbGF4ZWQoKQ0KYW5kIGEgd3JpdGVsX3JlbGF4ZWQoKSB0aGF0IGlzIGNvbmRp
dGlvbmFsIG9uIHRoZSByZWFkIHZhbHVlLg0KDQoJRGF2aWQNCg0K

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

Thread overview: 216+ 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
2018-03-28  6:53                                                   ` Linus Torvalds
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 [this message]
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
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=a0cfcb83e2c34ae399beeea65582ff99@AcuMS.aculab.com \
    --to=david.laight@aculab.com \
    --cc=alexander.duyck@gmail.com \
    --cc=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --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.