diff options
author | Geoff Levand <geoff@infradead.org> | 2012-03-12 17:16:46 -0700 |
---|---|---|
committer | Viresh Kumar <viresh.kumar@linaro.org> | 2012-07-12 09:29:08 +0100 |
commit | a2dc36b0928ced4255ceb453ee160f492e0399a2 (patch) | |
tree | 899d65a23795fc1c7d0709af1563ce98985d214c | |
parent | 90ac0bae9c9b42576cef805880e301630ef2b5cf (diff) |
arm: Exit RCU idle mode when we schedule before resuming userspaceunused-nohz-adaptive-tickless-v2
When a CPU running tickless resumes userspace, it enters into
RCU idle mode. But if we are preempted on kernel exit, after we
entered RCU idle mode but before we actually resumed userspace,
through an explicit call to schedule, we need to re-enable RCU in
case this function makes use of RCU read side critical section
and also for the next task to be scheduled.
NOTE: If we are preempted while running adaptive tickless, it means
we will receive an IPI that will escape the RCU idle mode for us. So
this patch is useful only when such IPI arrives too late.
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Geoff Levand <geoff@infradead.org>
-rw-r--r-- | arch/arm/kernel/entry-common.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 4afed88d250..ee79c7baab7 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S @@ -67,7 +67,7 @@ work_pending: b ret_slow_syscall @ Check work again work_resched: - bl schedule + bl schedule_user /* * "slow" syscall return path. "why" tells us if this was a real syscall. */ |