From: tip-bot for David Hildenbrand <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: tglx@linutronix.de, peterz@infradead.org, hpa@zytor.com,
mingo@kernel.org, torvalds@linux-foundation.org,
linux-kernel@vger.kernel.org, dahi@linux.vnet.ibm.com
Subject: [tip:sched/core] sched/preempt, mm/fault: Decouple preemption from the page fault logic
Date: Tue, 19 May 2015 00:22:40 -0700 [thread overview]
Message-ID: <tip-8222dbe21e79338de92d5e1956cd1e3994cc9f93@git.kernel.org> (raw)
In-Reply-To: <1431359540-32227-16-git-send-email-dahi@linux.vnet.ibm.com>
Commit-ID: 8222dbe21e79338de92d5e1956cd1e3994cc9f93
Gitweb: http://git.kernel.org/tip/8222dbe21e79338de92d5e1956cd1e3994cc9f93
Author: David Hildenbrand <dahi@linux.vnet.ibm.com>
AuthorDate: Mon, 11 May 2015 17:52:20 +0200
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Tue, 19 May 2015 08:39:18 +0200
sched/preempt, mm/fault: Decouple preemption from the page fault logic
As the fault handlers now all rely on the pagefault_disabled() checks
and implicit preempt_disable() calls by pagefault_disable() have been
made explicit, we can completely rely on the pagefault_disableD counter.
So let's no longer touch the preempt count when disabling/enabling
pagefaults. After a call to pagefault_disable(), pagefault_disabled()
will return true, but in_atomic() won't.
Reviewed-and-tested-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: David.Laight@ACULAB.COM
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: airlied@linux.ie
Cc: akpm@linux-foundation.org
Cc: benh@kernel.crashing.org
Cc: bigeasy@linutronix.de
Cc: borntraeger@de.ibm.com
Cc: daniel.vetter@intel.com
Cc: heiko.carstens@de.ibm.com
Cc: herbert@gondor.apana.org.au
Cc: hocko@suse.cz
Cc: hughd@google.com
Cc: mst@redhat.com
Cc: paulus@samba.org
Cc: ralf@linux-mips.org
Cc: schwidefsky@de.ibm.com
Cc: yang.shi@windriver.com
Link: http://lkml.kernel.org/r/1431359540-32227-16-git-send-email-dahi@linux.vnet.ibm.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
include/linux/uaccess.h | 16 ++--------------
1 file changed, 2 insertions(+), 14 deletions(-)
diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h
index 90786d2..ae572c1 100644
--- a/include/linux/uaccess.h
+++ b/include/linux/uaccess.h
@@ -1,7 +1,6 @@
#ifndef __LINUX_UACCESS_H__
#define __LINUX_UACCESS_H__
-#include <linux/preempt.h>
#include <linux/sched.h>
#include <asm/uaccess.h>
@@ -20,17 +19,11 @@ static __always_inline void pagefault_disabled_dec(void)
* These routines enable/disable the pagefault handler. If disabled, it will
* not take any locks and go straight to the fixup table.
*
- * We increase the preempt and the pagefault count, to be able to distinguish
- * whether we run in simple atomic context or in a real pagefault_disable()
- * context.
- *
- * For now, after pagefault_disabled() has been called, we run in atomic
- * context. User access methods will not sleep.
- *
+ * User access methods will not sleep when called from a pagefault_disabled()
+ * environment.
*/
static inline void pagefault_disable(void)
{
- preempt_count_inc();
pagefault_disabled_inc();
/*
* make sure to have issued the store before a pagefault
@@ -47,11 +40,6 @@ static inline void pagefault_enable(void)
*/
barrier();
pagefault_disabled_dec();
-#ifndef CONFIG_PREEMPT
- preempt_count_dec();
-#else
- preempt_enable();
-#endif
}
/*
next prev parent reply other threads:[~2015-05-19 7:23 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-11 15:52 [PATCH v1 00/15] decouple pagefault_disable() from preempt_disable() David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 01/15] uaccess: count pagefault_disable() levels in pagefault_disabled David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-19 7:18 ` [tip:sched/core] sched/preempt, mm/fault: Count pagefault_disable () " tip-bot for David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 02/15] mm, uaccess: trigger might_sleep() in might_fault() with disabled pagefaults David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-19 7:18 ` [tip:sched/core] sched/preempt, mm/fault: Trigger " tip-bot for David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 03/15] uaccess: clarify that uaccess may only sleep if pagefaults are enabled David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-19 7:18 ` [tip:sched/core] mm/uaccess, mm/fault: Clarify " tip-bot for David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 04/15] mm: explicitly disable/enable preemption in kmap_atomic_* David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-19 7:19 ` [tip:sched/core] sched/preempt, mm/kmap: Explicitly disable/ enable " tip-bot for David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 05/15] mips: kmap_coherent relies on disabled preemption David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-19 7:19 ` [tip:sched/core] sched/preempt, mm/kmap, MIPS: Disable preemption in kmap_coherent() explicitly tip-bot for David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 06/15] mm: use pagefault_disable() to check for disabled pagefaults in the handler David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-19 7:19 ` [tip:sched/core] mm/fault, arch: Use " tip-bot for David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 07/15] drm/i915: use pagefault_disabled() to check for disabled pagefaults David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-19 7:20 ` [tip:sched/core] mm/fault, drm/i915: Use " tip-bot for David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 08/15] futex: UP futex_atomic_op_inuser() relies on disabled preemption David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-19 7:20 ` [tip:sched/core] sched/preempt, futex: Disable preemption in UP futex_atomic_op_inuser() explicitly tip-bot for David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 09/15] futex: UP futex_atomic_cmpxchg_inatomic() relies on disabled preemption David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-19 7:20 ` [tip:sched/core] sched/preempt, futex: Disable preemption in UP futex_atomic_cmpxchg_inatomic() explicitly tip-bot for David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 10/15] arm/futex: UP futex_atomic_cmpxchg_inatomic() relies on disabled preemption David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-19 7:21 ` [tip:sched/core] sched/preempt, arm/futex: Disable preemption in UP futex_atomic_cmpxchg_inatomic() explicitly tip-bot for David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 11/15] arm/futex: UP futex_atomic_op_inuser() relies on disabled preemption David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-12 19:00 ` Sebastian Andrzej Siewior
2015-05-12 19:00 ` Sebastian Andrzej Siewior
2015-05-13 7:38 ` David Hildenbrand
2015-05-13 7:38 ` David Hildenbrand
2015-05-13 8:19 ` Sebastian Andrzej Siewior
2015-05-13 8:19 ` Sebastian Andrzej Siewior
2015-05-13 8:55 ` David Hildenbrand
2015-05-13 8:55 ` David Hildenbrand
2015-05-19 7:21 ` [tip:sched/core] sched/preempt, arm/futex: Disable preemption in UP futex_atomic_op_inuser() explicitly tip-bot for David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 12/15] futex: clarify that preemption doesn't have to be disabled David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-19 7:21 ` [tip:sched/core] sched/preempt, futex: Update comments to " tip-bot for David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 13/15] powerpc: enable_kernel_altivec() requires disabled preemption David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-19 7:22 ` [tip:sched/core] sched/preempt, powerpc: Disable preemption in enable_kernel_altivec() explicitly tip-bot for David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 14/15] mips: properly lock access to the fpu David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-19 7:22 ` [tip:sched/core] sched/preempt, MIPS: Properly lock access to the FPU tip-bot for David Hildenbrand
2015-05-11 15:52 ` [PATCH v1 15/15] uaccess: decouple preemption from the pagefault logic David Hildenbrand
2015-05-11 15:52 ` David Hildenbrand
2015-05-19 7:22 ` tip-bot for David Hildenbrand [this message]
2015-05-15 14:23 ` [PATCH v1 00/15] decouple pagefault_disable() from preempt_disable() Thomas Gleixner
2015-05-15 14:23 ` Thomas Gleixner
2015-05-18 12:46 ` David Hildenbrand
2015-05-18 12:46 ` David Hildenbrand
2015-05-18 13:04 ` Peter Zijlstra
2015-05-18 13:04 ` Peter Zijlstra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-8222dbe21e79338de92d5e1956cd1e3994cc9f93@git.kernel.org \
--to=tipbot@zytor.com \
--cc=dahi@linux.vnet.ibm.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.