search for: warn_single_copy_alignment

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

2016 Nov 25
2
[PATCH 0/3] virtio/vringh: kill off ACCESS_ONCE()
On Fri, Nov 25, 2016 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()
On Fri, Nov 25, 2016 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()
...roblematic; calling them ATOMIC_* makes tham sound like > they work on atomic_t. That and I have no idea how to ensure correct > usage tree-wide; I'm not sure if/how Coccinelle can help. > > Peter, thoughts? Something like so perhaps? --- #ifdef CONFIG_DEBUG_ATOMIC_SLEEP #define WARN_SINGLE_COPY_ALIGNMENT(ptr) \ WARN_ON_ONCE(((unsigned long)(ptr)) & (sizeof(*(ptr))-1)) #else #define WARN_SINGLE_COPY_ALIGNMENT(ptr) #endif /* * Provide accessors for Single-Copy atomicy. * * That is, ensure that machine word sized loads/stores to naturally * aligned variables are single instructions. * * By...
2016 Nov 25
0
[PATCH 0/3] virtio/vringh: kill off ACCESS_ONCE()
...00, Peter Zijlstra wrote: > On Fri, Nov 25, 2016 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)); \ Do we need to worry 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...
2016 Nov 25
2
[PATCH 0/3] virtio/vringh: kill off ACCESS_ONCE()
...\ >> > {( \ >> > compiletime_assert_atomic_type(typeof(x)); \ >> >> Should be: >> >> compiletime_assert_atomic_type(x); >> >> > WARN_SINGLE_COPY_ALIGNMENT(&(x)); \ > > Do we need to worry about the side effect on x? Maybe > > #define SINGLE_LOAD(x) \ > ({ \ > typeof(x) *_____ptr; \ >...
2016 Nov 25
2
[PATCH 0/3] virtio/vringh: kill off ACCESS_ONCE()
...\ >> > {( \ >> > compiletime_assert_atomic_type(typeof(x)); \ >> >> Should be: >> >> compiletime_assert_atomic_type(x); >> >> > WARN_SINGLE_COPY_ALIGNMENT(&(x)); \ > > Do we need to worry about the side effect on x? Maybe > > #define SINGLE_LOAD(x) \ > ({ \ > typeof(x) *_____ptr; \ >...