* [PATCH/RFC 0/7] ACCESS_ONCE and non-scalar accesses
@ 2014-11-24 13:03 Christian Borntraeger
0 siblings, 0 replies; 2+ messages in thread
From: Christian Borntraeger @ 2014-11-24 13:03 UTC (permalink / raw)
To: linux-kernel
Cc: linux-arch@vger.kernel.org, linux-mips@linux-mips.org,
linux-x86_64@vger.kernel.org, linux-s390, Paolo Bonzini, paulmck,
mingo, torvalds, Catalin Marinas, Will Deacon,
Christian Borntraeger
As discussed on LKML http://marc.info/?i=54611D86.4040306%40de.ibm.com
ACCESS_ONCE might fail with specific compiler for non-scalar accesses.
Here is a set of patches to tackle that problem. (The first patch
is already in kvm/next).
The last patch will force ACCESS_ONCE to error-out if it is used
on non-scalar accesses.
I have cross-compiled the resulting kernel with defconfig for
microblaze, m68k, alpha, s390,x86_64, i686, sparc, sparc64, mips,
ia64, arm and arm64.
So hopefully this patch set should be complete regarding the non-scalar
accesses. (As Linus pointed out, accesses > word size are a problem
on its own, but this patch set does not tackle this)
The result is also available as 0d199efcfc9875b8de17bb4fe1d87a27bd39a172
on
git://git.kernel.org/pub/scm/linux/kernel/git/borntraeger/linux.git ACCESS_ONCE
Now:
- It would be good to have the changes reviewed by component experts.
- It would also be good if architecture maintainers could double check, that
"kernel: Force ACCESS_ONCE to work only on scalar types" does not break
anything beyond defconfig.
- some comments about cc stable
Thanks
Christian
----------------------------------------------------------------
Christian Borntraeger (7):
KVM: s390: Fix ipte locking
mm: replace page table access via ACCESS_ONCE with barriers
x86: Rework ACCESS_ONCE for spinlock code
x86: Replace ACCESS_ONCE in gup with a barrier
mips: Replace ACCESS_ONCE in gup with a barrier
arm64: Replace ACCESS_ONCE for spinlock code with barriers
kernel: Force ACCESS_ONCE to work only on scalar types
arch/arm64/include/asm/spinlock.h | 7 +++++--
arch/mips/mm/gup.c | 6 ++++--
arch/s390/kvm/gaccess.c | 20 ++++++++++++++------
arch/x86/include/asm/spinlock.h | 14 +++++++++-----
arch/x86/mm/gup.c | 7 +++++--
include/linux/compiler.h | 12 +++++++++++-
mm/gup.c | 4 +++-
mm/memory.c | 3 ++-
mm/rmap.c | 3 ++-
9 files changed, 55 insertions(+), 21 deletions(-)
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH/RFC 0/7] ACCESS_ONCE and non-scalar accesses
@ 2014-11-24 13:03 Christian Borntraeger
0 siblings, 0 replies; 2+ messages in thread
From: Christian Borntraeger @ 2014-11-24 13:03 UTC (permalink / raw)
To: linux-kernel
Cc: linux-arch@vger.kernel.org, linux-mips@linux-mips.org,
linux-x86_64@vger.kernel.org, linux-s390, Paolo Bonzini, paulmck,
mingo, torvalds, Catalin Marinas, Will Deacon,
Christian Borntraeger
As discussed on LKML http://marc.info/?i=54611D86.4040306%40de.ibm.com
ACCESS_ONCE might fail with specific compiler for non-scalar accesses.
Here is a set of patches to tackle that problem. (The first patch
is already in kvm/next).
The last patch will force ACCESS_ONCE to error-out if it is used
on non-scalar accesses.
I have cross-compiled the resulting kernel with defconfig for
microblaze, m68k, alpha, s390,x86_64, i686, sparc, sparc64, mips,
ia64, arm and arm64.
So hopefully this patch set should be complete regarding the non-scalar
accesses. (As Linus pointed out, accesses > word size are a problem
on its own, but this patch set does not tackle this)
The result is also available as 0d199efcfc9875b8de17bb4fe1d87a27bd39a172
on
git://git.kernel.org/pub/scm/linux/kernel/git/borntraeger/linux.git ACCESS_ONCE
Now:
- It would be good to have the changes reviewed by component experts.
- It would also be good if architecture maintainers could double check, that
"kernel: Force ACCESS_ONCE to work only on scalar types" does not break
anything beyond defconfig.
- some comments about cc stable
Thanks
Christian
----------------------------------------------------------------
Christian Borntraeger (7):
KVM: s390: Fix ipte locking
mm: replace page table access via ACCESS_ONCE with barriers
x86: Rework ACCESS_ONCE for spinlock code
x86: Replace ACCESS_ONCE in gup with a barrier
mips: Replace ACCESS_ONCE in gup with a barrier
arm64: Replace ACCESS_ONCE for spinlock code with barriers
kernel: Force ACCESS_ONCE to work only on scalar types
arch/arm64/include/asm/spinlock.h | 7 +++++--
arch/mips/mm/gup.c | 6 ++++--
arch/s390/kvm/gaccess.c | 20 ++++++++++++++------
arch/x86/include/asm/spinlock.h | 14 +++++++++-----
arch/x86/mm/gup.c | 7 +++++--
include/linux/compiler.h | 12 +++++++++++-
mm/gup.c | 4 +++-
mm/memory.c | 3 ++-
mm/rmap.c | 3 ++-
9 files changed, 55 insertions(+), 21 deletions(-)
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-11-24 13:05 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-24 13:03 [PATCH/RFC 0/7] ACCESS_ONCE and non-scalar accesses Christian Borntraeger
2014-11-24 13:03 Christian Borntraeger
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.