linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/10] uaccess: better might_sleep/might_fault behavior
@ 2013-05-16 11:07 Michael S. Tsirkin
  2013-05-16 11:10 ` [PATCH v2 01/10] asm-generic: uaccess s/might_sleep/might_fault/ Michael S. Tsirkin
                   ` (11 more replies)
  0 siblings, 12 replies; 42+ messages in thread
From: Michael S. Tsirkin @ 2013-05-16 11:07 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-m32r-ja, kvm, Peter Zijlstra, Catalin Marinas, Will Deacon,
	David Howells, linux-mm, Paul Mackerras, H. Peter Anvin,
	linux-arch, linux-am33-list, Hirokazu Takata, x86, Ingo Molnar,
	Arnd Bergmann, microblaze-uclinux, Chris Metcalf, Thomas Gleixner,
	linux-arm-kernel, Michal Simek, linux-m32r, Koichi Yasutake,
	linuxppc-dev

This improves the might_fault annotations used
by uaccess routines:

1. The only reason uaccess routines might sleep
   is if they fault. Make this explicit for
   all architectures.
2. Accesses (e.g through socket ops) to kernel memory
   with KERNEL_DS like net/sunrpc does will never sleep.
   Remove an unconditinal might_sleep in the inline
   might_fault in kernel.h
   (used when PROVE_LOCKING is not set).
3. Accesses with pagefault_disable return EFAULT
   but won't cause caller to sleep.
   Check for that and avoid might_sleep when
   PROVE_LOCKING is set.

I'd like these changes to go in for the benefit of
the vhost driver where we want to call socket ops
under a spinlock, and fall back on slower thread handler
on error.

Please review, and consider for 3.11.


If the changes look good, what's the best way to merge them?
Maybe core/locking makes sense?

Note on arch code updates:
I tested x86_64 code.
Other architectures were build-tested.
I don't have cross-build environment for arm64, tile, microblaze and
mn10300 architectures. The changes look safe enough
but would appreciate review/acks from arch maintainers.

Version 1 of this change was titled
	x86: uaccess s/might_sleep/might_fault/


Changes from v1:
	add more architectures
	fix might_fault() scheduling differently depending
	on CONFIG_PROVE_LOCKING, as suggested by Ingo


Michael S. Tsirkin (10):
  asm-generic: uaccess s/might_sleep/might_fault/
  arm64: uaccess s/might_sleep/might_fault/
  frv: uaccess s/might_sleep/might_fault/
  m32r: uaccess s/might_sleep/might_fault/
  microblaze: uaccess s/might_sleep/might_fault/
  mn10300: uaccess s/might_sleep/might_fault/
  powerpc: uaccess s/might_sleep/might_fault/
  tile: uaccess s/might_sleep/might_fault/
  x86: uaccess s/might_sleep/might_fault/
  kernel: might_fault does not imply might_sleep

 arch/arm64/include/asm/uaccess.h      |  4 ++--
 arch/frv/include/asm/uaccess.h        |  4 ++--
 arch/m32r/include/asm/uaccess.h       | 12 ++++++------
 arch/microblaze/include/asm/uaccess.h |  6 +++---
 arch/mn10300/include/asm/uaccess.h    |  4 ++--
 arch/powerpc/include/asm/uaccess.h    | 16 ++++++++--------
 arch/tile/include/asm/uaccess.h       |  2 +-
 arch/x86/include/asm/uaccess_64.h     |  2 +-
 include/asm-generic/uaccess.h         | 10 +++++-----
 include/linux/kernel.h                |  1 -
 mm/memory.c                           | 14 +++++++++-----
 11 files changed, 39 insertions(+), 36 deletions(-)

Thanks,

-- 
MST

^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2013-05-24 14:18 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-16 11:07 [PATCH v2 00/10] uaccess: better might_sleep/might_fault behavior Michael S. Tsirkin
2013-05-16 11:10 ` [PATCH v2 01/10] asm-generic: uaccess s/might_sleep/might_fault/ Michael S. Tsirkin
2013-05-16 11:10 ` [PATCH v2 02/10] arm64: " Michael S. Tsirkin
2013-05-16 13:29   ` Catalin Marinas
2013-05-16 11:10 ` [PATCH v2 03/10] frv: " Michael S. Tsirkin
2013-05-16 11:11 ` [PATCH v2 04/10] m32r: " Michael S. Tsirkin
2013-05-16 11:11 ` [PATCH v2 05/10] microblaze: " Michael S. Tsirkin
2013-05-16 11:12 ` [PATCH v2 06/10] mn10300: " Michael S. Tsirkin
2013-05-16 11:15 ` [PATCH v2 07/10] powerpc: " Michael S. Tsirkin
2013-05-22 13:59   ` Arnd Bergmann
2013-05-22 14:30     ` Michael S. Tsirkin
2013-05-24 13:00     ` Michael S. Tsirkin
2013-05-24 13:11       ` Michael S. Tsirkin
2013-05-24 13:30         ` Arnd Bergmann
2013-05-16 11:15 ` [PATCH v2 08/10] tile: " Michael S. Tsirkin
2013-05-16 13:33   ` Chris Metcalf
2013-05-16 11:15 ` [PATCH v2 09/10] x86: " Michael S. Tsirkin
2013-05-16 11:16 ` [PATCH v2 10/10] kernel: might_fault does not imply might_sleep Michael S. Tsirkin
2013-05-16 18:40   ` Peter Zijlstra
2013-05-19  9:35     ` Michael S. Tsirkin
2013-05-19 12:34       ` Steven Rostedt
2013-05-19 13:34         ` Michael S. Tsirkin
2013-05-19 16:06           ` Steven Rostedt
2013-05-19 16:40             ` Michael S. Tsirkin
2013-05-19 20:23               ` Steven Rostedt
2013-05-19 20:35                 ` Michael S. Tsirkin
2013-05-21 11:18               ` Peter Zijlstra
2013-05-21 11:21       ` Peter Zijlstra
2013-05-21 11:57       ` Peter Zijlstra
2013-05-22  9:47         ` Michael S. Tsirkin
2013-05-22 10:16           ` Peter Zijlstra
2013-05-22 20:38         ` Michael S. Tsirkin
2013-05-22 20:36     ` Michael S. Tsirkin
2013-05-22  9:25 ` [PATCH v2 00/10] uaccess: better might_sleep/might_fault behavior Arnd Bergmann
2013-05-22  9:58   ` Michael S. Tsirkin
2013-05-22 10:19   ` Peter Zijlstra
2013-05-22 11:07     ` Michael S. Tsirkin
2013-05-22 11:27       ` Peter Zijlstra
2013-05-22 13:41   ` Russell King - ARM Linux
2013-05-22 14:04     ` Arnd Bergmann
2013-05-22 14:44       ` Michael S. Tsirkin
2013-05-24 14:18 ` [PATCH v3 07/11] powerpc: uaccess s/might_sleep/might_fault/ Michael S. Tsirkin

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).