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

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] 228+ messages in thread

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

Thread overview: 228+ 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:07 ` Michael S. Tsirkin
2013-05-16 11:07 ` Michael S. Tsirkin
2013-05-16 11:07 ` Michael S. Tsirkin
2013-05-16 11:07 ` Michael S. Tsirkin
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
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 11:10 ` [PATCH v2 02/10] arm64: " Michael S. Tsirkin
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 13:29   ` Catalin Marinas
2013-05-16 13:29     ` Catalin Marinas
2013-05-16 13:29     ` Catalin Marinas
2013-05-16 13:29     ` Catalin Marinas
2013-05-16 13:29     ` Catalin Marinas
2013-05-16 13:29     ` Catalin Marinas
2013-05-16 13:29     ` Catalin Marinas
2013-05-16 11:10 ` [PATCH v2 03/10] frv: " Michael S. Tsirkin
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 11:10   ` Michael S. Tsirkin
2013-05-16 11:11 ` [PATCH v2 04/10] m32r: " Michael S. Tsirkin
2013-05-16 11:11   ` Michael S. Tsirkin
2013-05-16 11:11   ` Michael S. Tsirkin
2013-05-16 11:11   ` Michael S. Tsirkin
2013-05-16 11:11   ` Michael S. Tsirkin
2013-05-16 11:11   ` Michael S. Tsirkin
2013-05-16 11:11 ` [PATCH v2 05/10] microblaze: " Michael S. Tsirkin
2013-05-16 11:11   ` Michael S. Tsirkin
2013-05-16 11:11   ` Michael S. Tsirkin
2013-05-16 11:11   ` Michael S. Tsirkin
2013-05-16 11:11   ` Michael S. Tsirkin
2013-05-16 11:11   ` Michael S. Tsirkin
2013-05-16 11:12 ` [PATCH v2 06/10] mn10300: " Michael S. Tsirkin
2013-05-16 11:12   ` Michael S. Tsirkin
2013-05-16 11:12   ` Michael S. Tsirkin
2013-05-16 11:12   ` Michael S. Tsirkin
2013-05-16 11:12   ` Michael S. Tsirkin
2013-05-16 11:12   ` Michael S. Tsirkin
2013-05-16 11:15 ` [PATCH v2 07/10] powerpc: " Michael S. Tsirkin
2013-05-16 11:15   ` Michael S. Tsirkin
2013-05-16 11:15   ` Michael S. Tsirkin
2013-05-16 11:15   ` Michael S. Tsirkin
2013-05-16 11:15   ` Michael S. Tsirkin
2013-05-16 11:15   ` Michael S. Tsirkin
2013-05-22 13:59   ` Arnd Bergmann
2013-05-22 13:59     ` Arnd Bergmann
2013-05-22 13:59     ` Arnd Bergmann
2013-05-22 13:59     ` Arnd Bergmann
2013-05-22 14:30     ` Michael S. Tsirkin
2013-05-22 14:30       ` Michael S. Tsirkin
2013-05-22 14:30       ` Michael S. Tsirkin
2013-05-22 14:30       ` Michael S. Tsirkin
2013-05-22 14:30       ` Michael S. Tsirkin
2013-05-24 13:00     ` Michael S. Tsirkin
2013-05-24 13:00       ` Michael S. Tsirkin
2013-05-24 13:00       ` Michael S. Tsirkin
2013-05-24 13:00       ` Michael S. Tsirkin
2013-05-24 13:00       ` Michael S. Tsirkin
2013-05-24 13:11       ` Michael S. Tsirkin
2013-05-24 13:11         ` Michael S. Tsirkin
2013-05-24 13:11         ` Michael S. Tsirkin
2013-05-24 13:11         ` Michael S. Tsirkin
2013-05-24 13:11         ` Michael S. Tsirkin
2013-05-24 13:30         ` Arnd Bergmann
2013-05-24 13:30           ` Arnd Bergmann
2013-05-24 13:30           ` Arnd Bergmann
2013-05-24 13:30           ` Arnd Bergmann
2013-05-24 13:30           ` Arnd Bergmann
2013-05-16 11:15 ` [PATCH v2 08/10] tile: " Michael S. Tsirkin
2013-05-16 11:15   ` Michael S. Tsirkin
2013-05-16 11:15   ` Michael S. Tsirkin
2013-05-16 11:15   ` Michael S. Tsirkin
2013-05-16 11:15   ` Michael S. Tsirkin
2013-05-16 11:15   ` Michael S. Tsirkin
2013-05-16 13:33   ` Chris Metcalf
2013-05-16 13:33     ` Chris Metcalf
2013-05-16 13:33     ` Chris Metcalf
2013-05-16 13:33     ` Chris Metcalf
2013-05-16 13:33     ` Chris Metcalf
2013-05-16 13:33     ` Chris Metcalf
2013-05-16 11:15 ` [PATCH v2 09/10] x86: " Michael S. Tsirkin
2013-05-16 11:15   ` Michael S. Tsirkin
2013-05-16 11:15   ` Michael S. Tsirkin
2013-05-16 11:15   ` Michael S. Tsirkin
2013-05-16 11:15   ` Michael S. Tsirkin
2013-05-16 11:15   ` 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 11:16   ` Michael S. Tsirkin
2013-05-16 11:16   ` Michael S. Tsirkin
2013-05-16 11:16   ` Michael S. Tsirkin
2013-05-16 11:16   ` Michael S. Tsirkin
2013-05-16 11:16   ` Michael S. Tsirkin
2013-05-16 18:40   ` Peter Zijlstra
2013-05-16 18:40     ` Peter Zijlstra
2013-05-16 18:40     ` Peter Zijlstra
2013-05-16 18:40     ` Peter Zijlstra
2013-05-16 18:40     ` Peter Zijlstra
2013-05-19  9:35     ` Michael S. Tsirkin
2013-05-19  9:35       ` Michael S. Tsirkin
2013-05-19  9:35       ` Michael S. Tsirkin
2013-05-19  9:35       ` Michael S. Tsirkin
2013-05-19  9:35       ` Michael S. Tsirkin
2013-05-19 12:34       ` Steven Rostedt
2013-05-19 12:34         ` Steven Rostedt
2013-05-19 12:34         ` Steven Rostedt
2013-05-19 12:34         ` Steven Rostedt
2013-05-19 12:34         ` Steven Rostedt
2013-05-19 13:34         ` Michael S. Tsirkin
2013-05-19 13:34           ` Michael S. Tsirkin
2013-05-19 13:34           ` Michael S. Tsirkin
2013-05-19 13:34           ` Michael S. Tsirkin
2013-05-19 13:34           ` Michael S. Tsirkin
2013-05-19 16:06           ` Steven Rostedt
2013-05-19 16:06             ` Steven Rostedt
2013-05-19 16:06             ` Steven Rostedt
2013-05-19 16:06             ` Steven Rostedt
2013-05-19 16:06             ` Steven Rostedt
2013-05-19 16:40             ` Michael S. Tsirkin
2013-05-19 16:40               ` Michael S. Tsirkin
2013-05-19 16:40               ` Michael S. Tsirkin
2013-05-19 16:40               ` Michael S. Tsirkin
2013-05-19 16:40               ` Michael S. Tsirkin
2013-05-19 20:23               ` Steven Rostedt
2013-05-19 20:23                 ` Steven Rostedt
2013-05-19 20:23                 ` Steven Rostedt
2013-05-19 20:23                 ` Steven Rostedt
2013-05-19 20:23                 ` Steven Rostedt
2013-05-19 20:35                 ` Michael S. Tsirkin
2013-05-19 20:35                   ` Michael S. Tsirkin
2013-05-19 20:35                   ` Michael S. Tsirkin
2013-05-19 20:35                   ` Michael S. Tsirkin
2013-05-19 20:35                   ` Michael S. Tsirkin
2013-05-21 11:18               ` Peter Zijlstra
2013-05-21 11:18                 ` Peter Zijlstra
2013-05-21 11:18                 ` Peter Zijlstra
2013-05-21 11:18                 ` Peter Zijlstra
2013-05-21 11:21       ` Peter Zijlstra
2013-05-21 11:21         ` Peter Zijlstra
2013-05-21 11:21         ` Peter Zijlstra
2013-05-21 11:21         ` Peter Zijlstra
2013-05-21 11:57       ` Peter Zijlstra
2013-05-21 11:57         ` Peter Zijlstra
2013-05-21 11:57         ` Peter Zijlstra
2013-05-21 11:57         ` Peter Zijlstra
2013-05-21 13:28         ` Michael S. Tsirkin
2013-05-21 13:28           ` Michael S. Tsirkin
2013-05-22  9:47         ` Michael S. Tsirkin
2013-05-22  9:47           ` Michael S. Tsirkin
2013-05-22  9:47           ` Michael S. Tsirkin
2013-05-22  9:47           ` Michael S. Tsirkin
2013-05-22  9:47           ` Michael S. Tsirkin
2013-05-22 10:16           ` Peter Zijlstra
2013-05-22 10:16             ` Peter Zijlstra
2013-05-22 10:16             ` Peter Zijlstra
2013-05-22 10:16             ` Peter Zijlstra
2013-05-22 20:38         ` Michael S. Tsirkin
2013-05-22 20:38           ` Michael S. Tsirkin
2013-05-22 20:38           ` Michael S. Tsirkin
2013-05-22 20:38           ` Michael S. Tsirkin
2013-05-22 20:38           ` Michael S. Tsirkin
2013-05-22 20:36     ` Michael S. Tsirkin
2013-05-22 20:36       ` Michael S. Tsirkin
2013-05-22 20:36       ` Michael S. Tsirkin
2013-05-22 20:36       ` 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:25   ` Arnd Bergmann
2013-05-22  9:25   ` Arnd Bergmann
2013-05-22  9:25   ` Arnd Bergmann
2013-05-22  9:58   ` Michael S. Tsirkin
2013-05-22  9:58     ` Michael S. Tsirkin
2013-05-22  9:58     ` Michael S. Tsirkin
2013-05-22  9:58     ` Michael S. Tsirkin
2013-05-22  9:58     ` Michael S. Tsirkin
2013-05-22 10:19   ` Peter Zijlstra
2013-05-22 10:19     ` Peter Zijlstra
2013-05-22 10:19     ` Peter Zijlstra
2013-05-22 10:19     ` Peter Zijlstra
2013-05-22 11:07     ` Michael S. Tsirkin
2013-05-22 11:07       ` Michael S. Tsirkin
2013-05-22 11:07       ` Michael S. Tsirkin
2013-05-22 11:07       ` Michael S. Tsirkin
2013-05-22 11:07       ` Michael S. Tsirkin
2013-05-22 11:27       ` Peter Zijlstra
2013-05-22 11:27         ` Peter Zijlstra
2013-05-22 11:27         ` Peter Zijlstra
2013-05-22 11:27         ` Peter Zijlstra
2013-05-22 11:27         ` Peter Zijlstra
2013-05-22 13:41   ` Russell King - ARM Linux
2013-05-22 13:41     ` Russell King - ARM Linux
2013-05-22 13:41     ` Russell King - ARM Linux
2013-05-22 13:41     ` Russell King - ARM Linux
2013-05-22 14:04     ` Arnd Bergmann
2013-05-22 14:04       ` Arnd Bergmann
2013-05-22 14:04       ` Arnd Bergmann
2013-05-22 14:04       ` Arnd Bergmann
2013-05-22 14:44       ` Michael S. Tsirkin
2013-05-22 14:44         ` Michael S. Tsirkin
2013-05-22 14:44         ` Michael S. Tsirkin
2013-05-22 14:44         ` Michael S. Tsirkin
2013-05-22 14:44         ` Michael S. Tsirkin
2013-05-22 14:44         ` Michael S. Tsirkin
2013-05-24 14:17 ` [PATCH v3 01/11] asm-generic: uaccess s/might_sleep/might_fault/ Michael S. Tsirkin
2013-05-24 14:17 ` [PATCH v3 02/11] arm64: " Michael S. Tsirkin
2013-05-24 14:17   ` Michael S. Tsirkin
2013-05-24 14:17 ` [PATCH v3 03/11] frv: " Michael S. Tsirkin
2013-05-24 14:18 ` [PATCH v3 04/11] m32r: " Michael S. Tsirkin
2013-05-24 14:18 ` [PATCH v3 05/11] microblaze: " Michael S. Tsirkin
2013-05-24 14:18 ` [PATCH v3 06/11] mn10300: " Michael S. Tsirkin
2013-05-24 14:18 ` [PATCH v3 07/11] powerpc: " Michael S. Tsirkin
2013-05-24 14:18   ` Michael S. Tsirkin
2013-05-24 14:18 ` [PATCH v3 08/11] tile: " Michael S. Tsirkin
2013-05-24 14:18 ` [PATCH v3 09/11] x86: " Michael S. Tsirkin
2013-05-24 14:18 ` [PATCH v3 10/11] kernel: drop voluntary schedule from might_fault Michael S. Tsirkin
2013-05-24 14:18   ` Michael S. Tsirkin
2013-05-24 14:18 ` [PATCH v3 11/11] kernel: uaccess in atomic with pagefault_disable Michael S. Tsirkin
2013-05-24 14:18   ` Michael S. Tsirkin

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.