search for: single_store

Displaying 8 results from an estimated 8 matches for "single_store".

2016 Nov 25
2
[PATCH 0/3] virtio/vringh: kill off ACCESS_ONCE()
...at 01:40:44PM +0100, Peter Zijlstra wrote: > #define SINGLE_LOAD(x) \ > {( \ > compiletime_assert_atomic_type(typeof(x)); \ Should be: compiletime_assert_atomic_type(x); > WARN_SINGLE_COPY_ALIGNMENT(&(x)); \ > READ_ONCE(x); \ > }) > > #define SINGLE_STORE(x, v) \ > ({ \ > compiletime_assert_atomic_type(typeof(x)); \ idem > WARN_SINGLE_COPY_ALIGNMENT(&(x)); \ > WRITE_ONCE(x, v); \ > })
2016 Nov 25
2
[PATCH 0/3] virtio/vringh: kill off ACCESS_ONCE()
...at 01:40:44PM +0100, Peter Zijlstra wrote: > #define SINGLE_LOAD(x) \ > {( \ > compiletime_assert_atomic_type(typeof(x)); \ Should be: compiletime_assert_atomic_type(x); > WARN_SINGLE_COPY_ALIGNMENT(&(x)); \ > READ_ONCE(x); \ > }) > > #define SINGLE_STORE(x, v) \ > ({ \ > compiletime_assert_atomic_type(typeof(x)); \ idem > WARN_SINGLE_COPY_ALIGNMENT(&(x)); \ > WRITE_ONCE(x, v); \ > })
2016 Nov 25
3
[PATCH 0/3] virtio/vringh: kill off ACCESS_ONCE()
On Fri, Nov 25, 2016 at 12:33:48PM +0100, Christian Borntraeger wrote: > On 11/25/2016 12:22 PM, Mark Rutland wrote: > > On Thu, Nov 24, 2016 at 10:36:58PM +0200, Michael S. Tsirkin wrote: > >> 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
2016 Nov 25
3
[PATCH 0/3] virtio/vringh: kill off ACCESS_ONCE()
On Fri, Nov 25, 2016 at 12:33:48PM +0100, Christian Borntraeger wrote: > On 11/25/2016 12:22 PM, Mark Rutland wrote: > > On Thu, Nov 24, 2016 at 10:36:58PM +0200, Michael S. Tsirkin wrote: > >> 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
2016 Nov 25
0
[PATCH 0/3] virtio/vringh: kill off ACCESS_ONCE()
...orry about the side effect on x? Maybe #define SINGLE_LOAD(x) \ ({ \ typeof(x) *_____ptr; \ \ compiletime_assert_atomic_type(typeof(x)); \ \ _____ptr = &(x); \ \ WARN_SINGLE_COPY_ALIGNMENT(_____ptr); \ \ READ_ONCE(*_____ptr); \ }) Ditto for SINGLE_STORE() Regards, Boqun > > READ_ONCE(x); \ > > }) > > > > #define SINGLE_STORE(x, v) \ > > ({ \ > > compiletime_assert_atomic_type(typeof(x)); \ > > idem > > > WARN_SINGLE_COPY_ALIGNMENT(&(x)); \ > > WRITE_ONCE(x, v)...
2016 Nov 25
2
[PATCH 0/3] virtio/vringh: kill off ACCESS_ONCE()
...\ > \ > WARN_SINGLE_COPY_ALIGNMENT(_____ptr); \ > \ > READ_ONCE(*_____ptr); \ > }) > > Ditto for SINGLE_STORE() > > Regards, > Boqun > >> > READ_ONCE(x); \ >> > }) >> > >> > #define SINGLE_STORE(x, v) \ >> > ({ \ &gt...
2016 Nov 25
2
[PATCH 0/3] virtio/vringh: kill off ACCESS_ONCE()
...\ > \ > WARN_SINGLE_COPY_ALIGNMENT(_____ptr); \ > \ > READ_ONCE(*_____ptr); \ > }) > > Ditto for SINGLE_STORE() > > Regards, > Boqun > >> > READ_ONCE(x); \ >> > }) >> > >> > #define SINGLE_STORE(x, v) \ >> > ({ \ &gt...
2016 Nov 25
0
[PATCH 0/3] virtio/vringh: kill off ACCESS_ONCE()
...ts back, it must use Single-Copy atomic loads and * stores to access them, otherwise it runs the risk of load/store * tearing. */ #define SINGLE_LOAD(x) \ {( \ compiletime_assert_atomic_type(typeof(x)); \ WARN_SINGLE_COPY_ALIGNMENT(&(x)); \ READ_ONCE(x); \ }) #define SINGLE_STORE(x, v) \ ({ \ compiletime_assert_atomic_type(typeof(x)); \ WARN_SINGLE_COPY_ALIGNMENT(&(x)); \ WRITE_ONCE(x, v); \ })