virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
From: Christian Borntraeger <borntraeger@de.ibm.com>
To: Mark Rutland <mark.rutland@arm.com>,
	"Michael S. Tsirkin" <mst@redhat.com>
Cc: dave@stgolabs.net, kvm@vger.kernel.org, dbueso@suse.de,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	virtualization@lists.linux-foundation.org,
	paulmck@linux.vnet.ibm.com, dvyukov@google.com
Subject: Re: [PATCH 0/3] virtio/vringh: kill off ACCESS_ONCE()
Date: Fri, 25 Nov 2016 12:33:48 +0100	[thread overview]
Message-ID: <32dfca07-59f3-b75a-3154-cf6b6c8538f0@de.ibm.com> (raw)
In-Reply-To: <20161125112203.GA26611@leverpostej>

On 11/25/2016 12:22 PM, Mark Rutland wrote:
> On Thu, Nov 24, 2016 at 10:36:58PM +0200, Michael S. Tsirkin wrote:
>> On Thu, Nov 24, 2016 at 10:25:11AM +0000, Mark Rutland wrote:
>>> For several reasons, it would be beneficial to kill off ACCESS_ONCE()
>>> tree-wide, in favour of {READ,WRITE}_ONCE(). These work with aggregate types,
>>> more obviously document their intended behaviour, and are necessary for tools
>>> like KTSAN to work correctly (as otherwise reads and writes cannot be
>>> instrumented separately).
>>>
>>> While it's possible to script the bulk of this tree-wide conversion, some cases
>>> such as the virtio code, require some manual intervention. This series moves
>>> the virtio and vringh code over to {READ,WRITE}_ONCE(), in the process fixing a
>>> bug in the virtio headers.
>>>
>>> Thanks,
>>> Mark.
>>
>> I don't have a problem with this specific patchset.
> 
> Good to hear. :)
> 
> Does that mean you're happy to queue these patches? Or would you prefer
> a new posting at some later point, with ack/review tags accumulated?
> 
>> Though I really question the whole _ONCE APIs esp with
>> aggregate types - these seem to generate a memcpy and
>> an 8-byte read/writes sometimes, and I'm pretty sure this simply
>> can't be read/written at once on all architectures.
> 
> Yes, in cases where the access is larger than the machine can perform in
> a single access, this will result in a memcpy.
> 
> My understanding is that this has always been the case with
> ACCESS_ONCE(), where multiple accesses were silently/implicitly
> generated by the compiler.
> 
> We could add some compile-time warnings for those cases. I'm not sure if
> there's a reason we avoided doing that so far; perhaps Christian has a
> some idea.

My first version had this warning, but it was removed later on as requested
by Linus

http://lkml.iu.edu/hypermail/linux/kernel/1503.3/02670.html
---snip---

Get rid of the f*cking size checks etc on READ_ONCE() and friends.

They are about - wait for it - "reading a value once".

Note how it doesn't say ANYTHING about "atomic" or anything like that.
It's about reading *ONCE*.

---snip---

  parent reply	other threads:[~2016-11-25 11:33 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1479983114-17190-1-git-send-email-mark.rutland@arm.com>
2016-11-24 10:25 ` [PATCH 1/3] tools/virtio: fix READ_ONCE() Mark Rutland
2016-11-24 10:25 ` [PATCH 2/3] vringh: kill off ACCESS_ONCE() Mark Rutland
2016-11-24 10:25 ` [PATCH 3/3] tools/virtio: use {READ,WRITE}_ONCE() in uaccess.h Mark Rutland
     [not found] ` <1479983114-17190-2-git-send-email-mark.rutland@arm.com>
2016-11-24 11:34   ` [PATCH 1/3] tools/virtio: fix READ_ONCE() Cornelia Huck
2016-11-25  2:38   ` Jason Wang
     [not found] ` <1479983114-17190-3-git-send-email-mark.rutland@arm.com>
2016-11-24 11:10   ` [PATCH 2/3] vringh: kill off ACCESS_ONCE() Christian Borntraeger
2016-11-24 11:35   ` Cornelia Huck
2016-11-25  2:40   ` Jason Wang
2016-11-24 20:36 ` [PATCH 0/3] virtio/vringh: " Michael S. Tsirkin
2016-11-25 11:22   ` Mark Rutland
     [not found]   ` <20161125112203.GA26611@leverpostej>
2016-11-25 11:33     ` Christian Borntraeger [this message]
2016-11-25 12:23       ` Mark Rutland
     [not found]       ` <20161125122356.GB26611@leverpostej>
2016-11-25 12:40         ` Peter Zijlstra
2016-11-25 12:44           ` Peter Zijlstra
2016-11-25 14:56             ` Boqun Feng
2016-11-25 15:21               ` Dmitry Vyukov via Virtualization
     [not found]               ` <CACT4Y+ZpzFhmSqOG+dG7QHSNObWatLOjPjNK2BznnRLeRQpF8A@mail.gmail.com>
2016-11-25 16:10                 ` Mark Rutland
     [not found]                 ` <20161125161004.GA30181@leverpostej>
2016-11-25 16:17                   ` Peter Zijlstra
2016-11-25 16:32                     ` Mark Rutland
2016-11-25 16:49                     ` Christian Borntraeger
2016-11-25 17:28                       ` Mark Rutland
     [not found]                       ` <20161125172624.GA30811@leverpostej>
2016-11-25 17:42                         ` Peter Zijlstra
2016-11-25 18:46                         ` Christian Borntraeger
2016-11-25 21:08                       ` Michael S. Tsirkin
2016-11-25 21:45                         ` Christian Borntraeger
2016-11-25 17:28                     ` Dmitry Vyukov via Virtualization
     [not found]                     ` <CACT4Y+YJUUjU_FCR1FOcF2DmkkcjiRFpnU7Q4=yzbgvKv0VhyQ@mail.gmail.com>
2016-11-25 17:43                       ` Mark Rutland
2016-11-25 17:52                       ` Linus Torvalds
2016-11-25 18:07                         ` Mark Rutland
     [not found]                         ` <20161125180649.GC30811@leverpostej>
2016-11-25 18:47                           ` Linus Torvalds
2016-11-25 14:35           ` Mark Rutland
     [not found] ` <1479983114-17190-4-git-send-email-mark.rutland@arm.com>
2016-11-24 11:37   ` [PATCH 3/3] tools/virtio: use {READ,WRITE}_ONCE() in uaccess.h Cornelia Huck
2016-11-25  2:40   ` Jason Wang
2016-11-24 10:25 [PATCH 0/3] virtio/vringh: kill off ACCESS_ONCE() Mark Rutland

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=32dfca07-59f3-b75a-3154-cf6b6c8538f0@de.ibm.com \
    --to=borntraeger@de.ibm.com \
    --cc=dave@stgolabs.net \
    --cc=dbueso@suse.de \
    --cc=dvyukov@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=virtualization@lists.linux-foundation.org \
    /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).