From: Chris Metcalf <cmetcalf@ezchip.com> To: Gilad Ben Yossef <giladb@ezchip.com>, Steven Rostedt <rostedt@goodmis.org>, Ingo Molnar <mingo@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Andrew Morton <akpm@linux-foundation.org>, "Rik van Riel" <riel@redhat.com>, Tejun Heo <tj@kernel.org>, Frederic Weisbecker <fweisbec@gmail.com>, Thomas Gleixner <tglx@linutronix.de>, "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>, Christoph Lameter <cl@linux.com>, Viresh Kumar <viresh.kumar@linaro.org>, <linux-doc@vger.kernel.org>, <linux-api@vger.kernel.org>, <linux-kernel@vger.kernel.org> Cc: Chris Metcalf <cmetcalf@ezchip.com> Subject: [PATCH v2 2/5] nohz: support PR_CPU_ISOLATED_STRICT mode Date: Fri, 15 May 2015 17:27:28 -0400 [thread overview] Message-ID: <1431725251-20943-2-git-send-email-cmetcalf@ezchip.com> (raw) In-Reply-To: <1431725251-20943-1-git-send-email-cmetcalf@ezchip.com> With cpu_isolated mode, the task is in principle guaranteed not to be interrupted by the kernel, but only if it behaves. In particular, if it enters the kernel via system call, page fault, or any of a number of other synchronous traps, it may be unexpectedly exposed to long latencies. Add a simple flag that puts the process into a state where any such kernel entry is fatal. To allow the state to be entered and exited, we add an internal bit to current->cpu_isolated_flags that is set when prctl() sets the flags. We check the bit on syscall entry as well as on any exception_enter(). The prctl() syscall is ignored to allow clearing the bit again later, and exit/exit_group are ignored to allow exiting the task without a pointless signal killing you as you try to do so. This change adds the syscall-detection hooks only for x86 and tile; I am happy to try to add more for additional platforms in the final version. The signature of context_tracking_exit() changes to report whether we, in fact, are exiting back to user space, so that we can track user exceptions properly separately from other kernel entries. Signed-off-by: Chris Metcalf <cmetcalf@ezchip.com> --- arch/tile/kernel/ptrace.c | 6 +++++- arch/x86/kernel/ptrace.c | 2 ++ include/linux/context_tracking.h | 11 ++++++++--- include/linux/tick.h | 16 ++++++++++++++++ include/uapi/linux/prctl.h | 1 + kernel/context_tracking.c | 9 ++++++--- kernel/time/tick-sched.c | 38 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 76 insertions(+), 7 deletions(-) diff --git a/arch/tile/kernel/ptrace.c b/arch/tile/kernel/ptrace.c index f84eed8243da..d4e43a13bab1 100644 --- a/arch/tile/kernel/ptrace.c +++ b/arch/tile/kernel/ptrace.c @@ -259,8 +259,12 @@ int do_syscall_trace_enter(struct pt_regs *regs) * If TIF_NOHZ is set, we are required to call user_exit() before * doing anything that could touch RCU. */ - if (work & _TIF_NOHZ) + if (work & _TIF_NOHZ) { user_exit(); + if (tick_nohz_cpu_isolated_strict()) + tick_nohz_cpu_isolated_syscall( + regs->regs[TREG_SYSCALL_NR]); + } if (work & _TIF_SYSCALL_TRACE) { if (tracehook_report_syscall_entry(regs)) diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c index a7bc79480719..7f784054ddea 100644 --- a/arch/x86/kernel/ptrace.c +++ b/arch/x86/kernel/ptrace.c @@ -1479,6 +1479,8 @@ unsigned long syscall_trace_enter_phase1(struct pt_regs *regs, u32 arch) if (work & _TIF_NOHZ) { user_exit(); work &= ~_TIF_NOHZ; + if (tick_nohz_cpu_isolated_strict()) + tick_nohz_cpu_isolated_syscall(regs->orig_ax); } #ifdef CONFIG_SECCOMP diff --git a/include/linux/context_tracking.h b/include/linux/context_tracking.h index 2821838256b4..d042f4cda39d 100644 --- a/include/linux/context_tracking.h +++ b/include/linux/context_tracking.h @@ -3,6 +3,7 @@ #include <linux/sched.h> #include <linux/vtime.h> +#include <linux/tick.h> #include <linux/context_tracking_state.h> #include <asm/ptrace.h> @@ -11,7 +12,7 @@ extern void context_tracking_cpu_set(int cpu); extern void context_tracking_enter(enum ctx_state state); -extern void context_tracking_exit(enum ctx_state state); +extern bool context_tracking_exit(enum ctx_state state); extern void context_tracking_user_enter(void); extern void context_tracking_user_exit(void); extern void __context_tracking_task_switch(struct task_struct *prev, @@ -37,8 +38,12 @@ static inline enum ctx_state exception_enter(void) return 0; prev_ctx = this_cpu_read(context_tracking.state); - if (prev_ctx != CONTEXT_KERNEL) - context_tracking_exit(prev_ctx); + if (prev_ctx != CONTEXT_KERNEL) { + if (context_tracking_exit(prev_ctx)) { + if (tick_nohz_cpu_isolated_strict()) + tick_nohz_cpu_isolated_exception(); + } + } return prev_ctx; } diff --git a/include/linux/tick.h b/include/linux/tick.h index ec1953474a65..b7ffb10337ba 100644 --- a/include/linux/tick.h +++ b/include/linux/tick.h @@ -147,6 +147,8 @@ extern void tick_nohz_full_kick_cpu(int cpu); extern void tick_nohz_full_kick_all(void); extern void __tick_nohz_task_switch(struct task_struct *tsk); extern void tick_nohz_cpu_isolated_enter(void); +extern void tick_nohz_cpu_isolated_syscall(int nr); +extern void tick_nohz_cpu_isolated_exception(void); #else static inline bool tick_nohz_full_enabled(void) { return false; } static inline bool tick_nohz_full_cpu(int cpu) { return false; } @@ -157,6 +159,8 @@ static inline void tick_nohz_full_kick_all(void) { } static inline void __tick_nohz_task_switch(struct task_struct *tsk) { } static inline bool tick_nohz_is_cpu_isolated(void) { return false; } static inline void tick_nohz_cpu_isolated_enter(void) { } +static inline void tick_nohz_cpu_isolated_syscall(int nr) { } +static inline void tick_nohz_cpu_isolated_exception(void) { } #endif static inline bool is_housekeeping_cpu(int cpu) @@ -189,4 +193,16 @@ static inline void tick_nohz_task_switch(struct task_struct *tsk) __tick_nohz_task_switch(tsk); } +static inline bool tick_nohz_cpu_isolated_strict(void) +{ +#ifdef CONFIG_NO_HZ_FULL + if (tick_nohz_full_cpu(smp_processor_id()) && + (current->cpu_isolated_flags & + (PR_CPU_ISOLATED_ENABLE | PR_CPU_ISOLATED_STRICT)) == + (PR_CPU_ISOLATED_ENABLE | PR_CPU_ISOLATED_STRICT)) + return true; +#endif + return false; +} + #endif diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h index edb40b6b84db..0c11238a84fb 100644 --- a/include/uapi/linux/prctl.h +++ b/include/uapi/linux/prctl.h @@ -194,5 +194,6 @@ struct prctl_mm_map { #define PR_SET_CPU_ISOLATED 47 #define PR_GET_CPU_ISOLATED 48 # define PR_CPU_ISOLATED_ENABLE (1 << 0) +# define PR_CPU_ISOLATED_STRICT (1 << 1) #endif /* _LINUX_PRCTL_H */ diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index 66739d7c1350..c82509caa42e 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -131,15 +131,16 @@ NOKPROBE_SYMBOL(context_tracking_user_enter); * This call supports re-entrancy. This way it can be called from any exception * handler without needing to know if we came from userspace or not. */ -void context_tracking_exit(enum ctx_state state) +bool context_tracking_exit(enum ctx_state state) { unsigned long flags; + bool from_user = false; if (!context_tracking_is_enabled()) - return; + return false; if (in_interrupt()) - return; + return false; local_irq_save(flags); if (__this_cpu_read(context_tracking.state) == state) { @@ -150,6 +151,7 @@ void context_tracking_exit(enum ctx_state state) */ rcu_user_exit(); if (state == CONTEXT_USER) { + from_user = true; vtime_user_exit(current); trace_user_exit(0); } @@ -157,6 +159,7 @@ void context_tracking_exit(enum ctx_state state) __this_cpu_write(context_tracking.state, CONTEXT_KERNEL); } local_irq_restore(flags); + return from_user; } NOKPROBE_SYMBOL(context_tracking_exit); EXPORT_SYMBOL_GPL(context_tracking_exit); diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index f1551c946c45..273820cd484a 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -27,6 +27,7 @@ #include <linux/swap.h> #include <asm/irq_regs.h> +#include <asm/unistd.h> #include "tick-internal.h" @@ -440,6 +441,43 @@ void tick_nohz_cpu_isolated_enter(void) } } +static void kill_cpu_isolated_strict_task(void) +{ + dump_stack(); + current->cpu_isolated_flags &= ~PR_CPU_ISOLATED_ENABLE; + send_sig(SIGKILL, current, 1); +} + +/* + * This routine is called from syscall entry (with the syscall number + * passed in) if the _STRICT flag is set. + */ +void tick_nohz_cpu_isolated_syscall(int syscall) +{ + /* Ignore prctl() syscalls or any task exit. */ + switch (syscall) { + case __NR_prctl: + case __NR_exit: + case __NR_exit_group: + return; + } + + pr_warn("%s/%d: cpu_isolated strict mode violated by syscall %d\n", + current->comm, current->pid, syscall); + kill_cpu_isolated_strict_task(); +} + +/* + * This routine is called from any userspace exception if the _STRICT + * flag is set. + */ +void tick_nohz_cpu_isolated_exception(void) +{ + pr_warn("%s/%d: cpu_isolated strict mode violated by exception\n", + current->comm, current->pid); + kill_cpu_isolated_strict_task(); +} + #endif /* -- 2.1.2
WARNING: multiple messages have this Message-ID (diff)
From: Chris Metcalf <cmetcalf@ezchip.com> To: Gilad Ben Yossef <giladb@ezchip.com>, Steven Rostedt <rostedt@goodmis.org>, Ingo Molnar <mingo@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Andrew Morton <akpm@linux-foundation.org>, Rik van Riel <riel@redhat.com>, Tejun Heo <tj@kernel.org>, Frederic Weisbecker <fweisbec@gmail.com>, Thomas Gleixner <tglx@linutronix.de>, "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>, Christoph Lameter <cl@linux.com>, Viresh Kumar <viresh.kumar@linaro.org>, linux-doc@vger.kernel.org, linux-api@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Chris Metcalf <cmetcalf@ezchip.com> Subject: [PATCH v2 2/5] nohz: support PR_CPU_ISOLATED_STRICT mode Date: Fri, 15 May 2015 17:27:28 -0400 [thread overview] Message-ID: <1431725251-20943-2-git-send-email-cmetcalf@ezchip.com> (raw) In-Reply-To: <1431725251-20943-1-git-send-email-cmetcalf@ezchip.com> With cpu_isolated mode, the task is in principle guaranteed not to be interrupted by the kernel, but only if it behaves. In particular, if it enters the kernel via system call, page fault, or any of a number of other synchronous traps, it may be unexpectedly exposed to long latencies. Add a simple flag that puts the process into a state where any such kernel entry is fatal. To allow the state to be entered and exited, we add an internal bit to current->cpu_isolated_flags that is set when prctl() sets the flags. We check the bit on syscall entry as well as on any exception_enter(). The prctl() syscall is ignored to allow clearing the bit again later, and exit/exit_group are ignored to allow exiting the task without a pointless signal killing you as you try to do so. This change adds the syscall-detection hooks only for x86 and tile; I am happy to try to add more for additional platforms in the final version. The signature of context_tracking_exit() changes to report whether we, in fact, are exiting back to user space, so that we can track user exceptions properly separately from other kernel entries. Signed-off-by: Chris Metcalf <cmetcalf@ezchip.com> --- arch/tile/kernel/ptrace.c | 6 +++++- arch/x86/kernel/ptrace.c | 2 ++ include/linux/context_tracking.h | 11 ++++++++--- include/linux/tick.h | 16 ++++++++++++++++ include/uapi/linux/prctl.h | 1 + kernel/context_tracking.c | 9 ++++++--- kernel/time/tick-sched.c | 38 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 76 insertions(+), 7 deletions(-) diff --git a/arch/tile/kernel/ptrace.c b/arch/tile/kernel/ptrace.c index f84eed8243da..d4e43a13bab1 100644 --- a/arch/tile/kernel/ptrace.c +++ b/arch/tile/kernel/ptrace.c @@ -259,8 +259,12 @@ int do_syscall_trace_enter(struct pt_regs *regs) * If TIF_NOHZ is set, we are required to call user_exit() before * doing anything that could touch RCU. */ - if (work & _TIF_NOHZ) + if (work & _TIF_NOHZ) { user_exit(); + if (tick_nohz_cpu_isolated_strict()) + tick_nohz_cpu_isolated_syscall( + regs->regs[TREG_SYSCALL_NR]); + } if (work & _TIF_SYSCALL_TRACE) { if (tracehook_report_syscall_entry(regs)) diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c index a7bc79480719..7f784054ddea 100644 --- a/arch/x86/kernel/ptrace.c +++ b/arch/x86/kernel/ptrace.c @@ -1479,6 +1479,8 @@ unsigned long syscall_trace_enter_phase1(struct pt_regs *regs, u32 arch) if (work & _TIF_NOHZ) { user_exit(); work &= ~_TIF_NOHZ; + if (tick_nohz_cpu_isolated_strict()) + tick_nohz_cpu_isolated_syscall(regs->orig_ax); } #ifdef CONFIG_SECCOMP diff --git a/include/linux/context_tracking.h b/include/linux/context_tracking.h index 2821838256b4..d042f4cda39d 100644 --- a/include/linux/context_tracking.h +++ b/include/linux/context_tracking.h @@ -3,6 +3,7 @@ #include <linux/sched.h> #include <linux/vtime.h> +#include <linux/tick.h> #include <linux/context_tracking_state.h> #include <asm/ptrace.h> @@ -11,7 +12,7 @@ extern void context_tracking_cpu_set(int cpu); extern void context_tracking_enter(enum ctx_state state); -extern void context_tracking_exit(enum ctx_state state); +extern bool context_tracking_exit(enum ctx_state state); extern void context_tracking_user_enter(void); extern void context_tracking_user_exit(void); extern void __context_tracking_task_switch(struct task_struct *prev, @@ -37,8 +38,12 @@ static inline enum ctx_state exception_enter(void) return 0; prev_ctx = this_cpu_read(context_tracking.state); - if (prev_ctx != CONTEXT_KERNEL) - context_tracking_exit(prev_ctx); + if (prev_ctx != CONTEXT_KERNEL) { + if (context_tracking_exit(prev_ctx)) { + if (tick_nohz_cpu_isolated_strict()) + tick_nohz_cpu_isolated_exception(); + } + } return prev_ctx; } diff --git a/include/linux/tick.h b/include/linux/tick.h index ec1953474a65..b7ffb10337ba 100644 --- a/include/linux/tick.h +++ b/include/linux/tick.h @@ -147,6 +147,8 @@ extern void tick_nohz_full_kick_cpu(int cpu); extern void tick_nohz_full_kick_all(void); extern void __tick_nohz_task_switch(struct task_struct *tsk); extern void tick_nohz_cpu_isolated_enter(void); +extern void tick_nohz_cpu_isolated_syscall(int nr); +extern void tick_nohz_cpu_isolated_exception(void); #else static inline bool tick_nohz_full_enabled(void) { return false; } static inline bool tick_nohz_full_cpu(int cpu) { return false; } @@ -157,6 +159,8 @@ static inline void tick_nohz_full_kick_all(void) { } static inline void __tick_nohz_task_switch(struct task_struct *tsk) { } static inline bool tick_nohz_is_cpu_isolated(void) { return false; } static inline void tick_nohz_cpu_isolated_enter(void) { } +static inline void tick_nohz_cpu_isolated_syscall(int nr) { } +static inline void tick_nohz_cpu_isolated_exception(void) { } #endif static inline bool is_housekeeping_cpu(int cpu) @@ -189,4 +193,16 @@ static inline void tick_nohz_task_switch(struct task_struct *tsk) __tick_nohz_task_switch(tsk); } +static inline bool tick_nohz_cpu_isolated_strict(void) +{ +#ifdef CONFIG_NO_HZ_FULL + if (tick_nohz_full_cpu(smp_processor_id()) && + (current->cpu_isolated_flags & + (PR_CPU_ISOLATED_ENABLE | PR_CPU_ISOLATED_STRICT)) == + (PR_CPU_ISOLATED_ENABLE | PR_CPU_ISOLATED_STRICT)) + return true; +#endif + return false; +} + #endif diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h index edb40b6b84db..0c11238a84fb 100644 --- a/include/uapi/linux/prctl.h +++ b/include/uapi/linux/prctl.h @@ -194,5 +194,6 @@ struct prctl_mm_map { #define PR_SET_CPU_ISOLATED 47 #define PR_GET_CPU_ISOLATED 48 # define PR_CPU_ISOLATED_ENABLE (1 << 0) +# define PR_CPU_ISOLATED_STRICT (1 << 1) #endif /* _LINUX_PRCTL_H */ diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index 66739d7c1350..c82509caa42e 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -131,15 +131,16 @@ NOKPROBE_SYMBOL(context_tracking_user_enter); * This call supports re-entrancy. This way it can be called from any exception * handler without needing to know if we came from userspace or not. */ -void context_tracking_exit(enum ctx_state state) +bool context_tracking_exit(enum ctx_state state) { unsigned long flags; + bool from_user = false; if (!context_tracking_is_enabled()) - return; + return false; if (in_interrupt()) - return; + return false; local_irq_save(flags); if (__this_cpu_read(context_tracking.state) == state) { @@ -150,6 +151,7 @@ void context_tracking_exit(enum ctx_state state) */ rcu_user_exit(); if (state == CONTEXT_USER) { + from_user = true; vtime_user_exit(current); trace_user_exit(0); } @@ -157,6 +159,7 @@ void context_tracking_exit(enum ctx_state state) __this_cpu_write(context_tracking.state, CONTEXT_KERNEL); } local_irq_restore(flags); + return from_user; } NOKPROBE_SYMBOL(context_tracking_exit); EXPORT_SYMBOL_GPL(context_tracking_exit); diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index f1551c946c45..273820cd484a 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -27,6 +27,7 @@ #include <linux/swap.h> #include <asm/irq_regs.h> +#include <asm/unistd.h> #include "tick-internal.h" @@ -440,6 +441,43 @@ void tick_nohz_cpu_isolated_enter(void) } } +static void kill_cpu_isolated_strict_task(void) +{ + dump_stack(); + current->cpu_isolated_flags &= ~PR_CPU_ISOLATED_ENABLE; + send_sig(SIGKILL, current, 1); +} + +/* + * This routine is called from syscall entry (with the syscall number + * passed in) if the _STRICT flag is set. + */ +void tick_nohz_cpu_isolated_syscall(int syscall) +{ + /* Ignore prctl() syscalls or any task exit. */ + switch (syscall) { + case __NR_prctl: + case __NR_exit: + case __NR_exit_group: + return; + } + + pr_warn("%s/%d: cpu_isolated strict mode violated by syscall %d\n", + current->comm, current->pid, syscall); + kill_cpu_isolated_strict_task(); +} + +/* + * This routine is called from any userspace exception if the _STRICT + * flag is set. + */ +void tick_nohz_cpu_isolated_exception(void) +{ + pr_warn("%s/%d: cpu_isolated strict mode violated by exception\n", + current->comm, current->pid); + kill_cpu_isolated_strict_task(); +} + #endif /* -- 2.1.2
next prev parent reply other threads:[~2015-05-15 21:28 UTC|newest] Thread overview: 340+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-05-08 17:58 [PATCH 0/6] support "dataplane" mode for nohz_full Chris Metcalf 2015-05-08 17:58 ` Chris Metcalf 2015-05-08 17:58 ` [PATCH 1/6] nohz_full: add support for "dataplane" mode Chris Metcalf 2015-05-08 17:58 ` Chris Metcalf 2015-05-08 17:58 ` [PATCH 2/6] nohz: dataplane: allow tick to be fully disabled for dataplane Chris Metcalf 2015-05-12 9:26 ` Peter Zijlstra 2015-05-12 13:12 ` Paul E. McKenney 2015-05-14 20:55 ` Chris Metcalf 2015-05-08 17:58 ` [PATCH 3/6] dataplane nohz: run softirqs synchronously on user entry Chris Metcalf 2015-05-09 7:04 ` Mike Galbraith 2015-05-11 20:13 ` Chris Metcalf 2015-05-12 2:21 ` Mike Galbraith 2015-05-12 9:28 ` Peter Zijlstra 2015-05-12 9:32 ` Peter Zijlstra 2015-05-12 13:08 ` Paul E. McKenney 2015-05-08 17:58 ` [PATCH 4/6] nohz: support PR_DATAPLANE_QUIESCE Chris Metcalf 2015-05-08 17:58 ` Chris Metcalf 2015-05-12 9:33 ` Peter Zijlstra 2015-05-12 9:33 ` Peter Zijlstra 2015-05-12 9:50 ` Ingo Molnar 2015-05-12 9:50 ` Ingo Molnar 2015-05-12 10:38 ` Peter Zijlstra 2015-05-12 10:38 ` Peter Zijlstra 2015-05-12 12:52 ` Ingo Molnar 2015-05-13 4:35 ` Andy Lutomirski 2015-05-13 17:51 ` Paul E. McKenney 2015-05-14 20:55 ` Chris Metcalf 2015-05-14 20:55 ` Chris Metcalf 2015-05-14 20:54 ` Chris Metcalf 2015-05-14 20:54 ` Chris Metcalf 2015-05-08 17:58 ` [PATCH 5/6] nohz: support PR_DATAPLANE_STRICT mode Chris Metcalf 2015-05-08 17:58 ` Chris Metcalf 2015-05-09 7:28 ` Andy Lutomirski 2015-05-09 10:37 ` Gilad Ben Yossef 2015-05-09 10:37 ` Gilad Ben Yossef 2015-05-11 19:13 ` Chris Metcalf 2015-05-11 19:13 ` Chris Metcalf 2015-05-11 22:28 ` Andy Lutomirski 2015-05-12 21:06 ` Chris Metcalf 2015-05-12 22:23 ` Andy Lutomirski 2015-05-15 21:25 ` Chris Metcalf 2015-05-12 9:38 ` Peter Zijlstra 2015-05-12 13:20 ` Paul E. McKenney 2015-05-12 13:20 ` Paul E. McKenney 2015-05-08 17:58 ` [PATCH 6/6] nohz: add dataplane_debug boot flag Chris Metcalf 2015-05-08 21:18 ` [PATCH 0/6] support "dataplane" mode for nohz_full Andrew Morton 2015-05-08 21:18 ` Andrew Morton 2015-05-08 21:22 ` Steven Rostedt 2015-05-08 21:22 ` Steven Rostedt 2015-05-08 23:11 ` Chris Metcalf 2015-05-08 23:11 ` Chris Metcalf 2015-05-08 23:19 ` Andrew Morton 2015-05-08 23:19 ` Andrew Morton 2015-05-09 7:05 ` Ingo Molnar 2015-05-09 7:19 ` Andy Lutomirski 2015-05-09 7:19 ` Andy Lutomirski 2015-05-11 19:54 ` Chris Metcalf 2015-05-11 19:54 ` Chris Metcalf 2015-05-11 22:15 ` Andy Lutomirski 2015-05-11 22:15 ` Andy Lutomirski [not found] ` <55510885.9070101@ezchip.com> 2015-05-12 13:18 ` Paul E. McKenney 2015-05-09 7:19 ` Mike Galbraith 2015-05-09 7:19 ` Mike Galbraith 2015-05-09 10:18 ` Gilad Ben Yossef 2015-05-09 10:18 ` Gilad Ben Yossef 2015-05-11 12:57 ` Steven Rostedt 2015-05-11 12:57 ` Steven Rostedt 2015-05-11 15:36 ` Frederic Weisbecker 2015-05-11 19:19 ` Mike Galbraith 2015-05-11 19:25 ` Chris Metcalf 2015-05-11 19:25 ` Chris Metcalf 2015-05-12 1:47 ` Mike Galbraith 2015-05-12 4:35 ` Mike Galbraith 2015-05-15 15:05 ` Chris Metcalf 2015-05-15 18:44 ` Mike Galbraith 2015-05-26 19:51 ` Chris Metcalf 2015-05-27 3:28 ` Mike Galbraith 2015-05-11 17:19 ` Paul E. McKenney 2015-05-11 17:27 ` Andrew Morton 2015-05-11 17:33 ` Frederic Weisbecker 2015-05-11 18:00 ` Steven Rostedt 2015-05-11 18:09 ` Chris Metcalf 2015-05-11 18:09 ` Chris Metcalf 2015-05-11 18:36 ` Steven Rostedt 2015-05-11 18:36 ` Steven Rostedt 2015-05-12 9:10 ` CONFIG_ISOLATION=y (was: [PATCH 0/6] support "dataplane" mode for nohz_full) Ingo Molnar 2015-05-12 11:48 ` Peter Zijlstra 2015-05-12 11:48 ` Peter Zijlstra 2015-05-12 12:34 ` Ingo Molnar 2015-05-12 12:39 ` Peter Zijlstra 2015-05-12 12:39 ` Peter Zijlstra 2015-05-12 12:43 ` Ingo Molnar 2015-05-12 12:43 ` Ingo Molnar 2015-05-12 15:36 ` Frederic Weisbecker 2015-05-12 21:05 ` CONFIG_ISOLATION=y Chris Metcalf 2015-05-12 21:05 ` CONFIG_ISOLATION=y Chris Metcalf 2015-05-12 10:46 ` [PATCH 0/6] support "dataplane" mode for nohz_full Peter Zijlstra 2015-05-12 10:46 ` Peter Zijlstra 2015-05-15 15:10 ` Chris Metcalf 2015-05-15 15:10 ` Chris Metcalf 2015-05-15 21:26 ` [PATCH v2 0/5] support "cpu_isolated" " Chris Metcalf 2015-05-15 21:26 ` Chris Metcalf 2015-05-15 21:27 ` [PATCH v2 1/5] nohz_full: add support for "cpu_isolated" mode Chris Metcalf 2015-05-15 21:27 ` Chris Metcalf 2015-05-15 21:27 ` Chris Metcalf [this message] 2015-05-15 21:27 ` [PATCH v2 2/5] nohz: support PR_CPU_ISOLATED_STRICT mode Chris Metcalf 2015-05-15 21:27 ` [PATCH v2 3/5] nohz: cpu_isolated strict mode configurable signal Chris Metcalf 2015-05-15 21:27 ` Chris Metcalf 2015-05-15 21:27 ` [PATCH v2 4/5] nohz: add cpu_isolated_debug boot flag Chris Metcalf 2015-05-15 21:27 ` [PATCH v2 5/5] nohz: cpu_isolated: allow tick to be fully disabled Chris Metcalf 2015-05-15 22:17 ` [PATCH v2 1/5] nohz_full: add support for "cpu_isolated" mode Thomas Gleixner 2015-05-15 22:17 ` Thomas Gleixner 2015-05-28 20:38 ` Chris Metcalf 2015-05-28 20:38 ` Chris Metcalf 2015-06-03 15:29 ` [PATCH v3 0/5] support "cpu_isolated" mode for nohz_full Chris Metcalf 2015-06-03 15:29 ` Chris Metcalf 2015-06-03 15:29 ` [PATCH v3 1/5] nohz_full: add support for "cpu_isolated" mode Chris Metcalf 2015-06-03 15:29 ` Chris Metcalf 2015-06-03 15:29 ` [PATCH v3 2/5] nohz: support PR_CPU_ISOLATED_STRICT mode Chris Metcalf 2015-06-03 15:29 ` Chris Metcalf 2015-06-03 15:29 ` [PATCH v3 3/5] nohz: cpu_isolated strict mode configurable signal Chris Metcalf 2015-06-03 15:29 ` Chris Metcalf 2015-06-03 15:29 ` [PATCH v3 4/5] nohz: add cpu_isolated_debug boot flag Chris Metcalf 2015-06-03 15:29 ` [PATCH v3 5/5] nohz: cpu_isolated: allow tick to be fully disabled Chris Metcalf 2015-07-13 19:57 ` [PATCH v4 0/5] support "cpu_isolated" mode for nohz_full Chris Metcalf 2015-07-13 19:57 ` Chris Metcalf 2015-07-13 19:57 ` [PATCH v4 1/5] nohz_full: add support for "cpu_isolated" mode Chris Metcalf 2015-07-13 19:57 ` Chris Metcalf 2015-07-13 20:40 ` Andy Lutomirski 2015-07-13 21:01 ` Chris Metcalf 2015-07-13 21:45 ` Andy Lutomirski 2015-07-21 19:10 ` Chris Metcalf 2015-07-21 19:26 ` Andy Lutomirski 2015-07-21 20:36 ` Paul E. McKenney 2015-07-21 20:36 ` Paul E. McKenney 2015-07-22 13:57 ` Christoph Lameter 2015-07-22 19:28 ` Paul E. McKenney 2015-07-22 19:28 ` Paul E. McKenney 2015-07-22 20:02 ` Christoph Lameter 2015-07-24 20:21 ` Chris Metcalf 2015-07-24 20:22 ` Chris Metcalf 2015-07-24 14:03 ` Frederic Weisbecker 2015-07-24 20:19 ` Chris Metcalf 2015-07-24 13:27 ` Frederic Weisbecker 2015-07-24 20:21 ` Chris Metcalf 2015-07-24 20:21 ` Chris Metcalf 2015-07-13 19:57 ` [PATCH v4 2/5] nohz: support PR_CPU_ISOLATED_STRICT mode Chris Metcalf 2015-07-13 19:57 ` Chris Metcalf 2015-07-13 21:47 ` Andy Lutomirski 2015-07-13 21:47 ` Andy Lutomirski 2015-07-21 19:34 ` Chris Metcalf 2015-07-21 19:34 ` Chris Metcalf 2015-07-21 19:42 ` Andy Lutomirski 2015-07-21 19:42 ` Andy Lutomirski 2015-07-24 20:29 ` Chris Metcalf 2015-07-13 19:57 ` [PATCH v4 3/5] nohz: cpu_isolated strict mode configurable signal Chris Metcalf 2015-07-13 19:57 ` Chris Metcalf 2015-07-13 19:58 ` [PATCH v4 4/5] nohz: add cpu_isolated_debug boot flag Chris Metcalf 2015-07-13 19:58 ` [PATCH v4 5/5] nohz: cpu_isolated: allow tick to be fully disabled Chris Metcalf 2015-07-28 19:49 ` [PATCH v5 0/6] support "cpu_isolated" mode for nohz_full Chris Metcalf 2015-07-28 19:49 ` Chris Metcalf 2015-07-28 19:49 ` [PATCH v5 1/6] vmstat: provide a function to quiet down the diff processing Chris Metcalf 2015-07-28 19:49 ` [PATCH v5 2/6] cpu_isolated: add initial support Chris Metcalf 2015-07-28 19:49 ` Chris Metcalf 2015-08-12 16:00 ` Frederic Weisbecker 2015-08-12 16:00 ` Frederic Weisbecker 2015-08-12 18:22 ` Chris Metcalf 2015-08-12 18:22 ` Chris Metcalf 2015-08-26 15:26 ` Frederic Weisbecker 2015-08-26 15:26 ` Frederic Weisbecker 2015-08-26 15:55 ` Chris Metcalf 2015-08-26 15:55 ` Chris Metcalf 2015-07-28 19:49 ` [PATCH v5 3/6] cpu_isolated: support PR_CPU_ISOLATED_STRICT mode Chris Metcalf 2015-07-28 19:49 ` Chris Metcalf 2015-07-28 19:49 ` [PATCH v5 4/6] cpu_isolated: provide strict mode configurable signal Chris Metcalf 2015-07-28 19:49 ` Chris Metcalf 2015-07-28 19:49 ` [PATCH v5 5/6] cpu_isolated: add debug boot flag Chris Metcalf 2015-07-28 19:49 ` [PATCH v5 6/6] nohz: cpu_isolated: allow tick to be fully disabled Chris Metcalf 2015-08-25 19:55 ` [PATCH v6 0/6] support "task_isolated" mode for nohz_full Chris Metcalf 2015-08-25 19:55 ` Chris Metcalf 2015-08-25 19:55 ` [PATCH v6 1/6] vmstat: provide a function to quiet down the diff processing Chris Metcalf 2015-08-25 19:55 ` [PATCH v6 2/6] task_isolation: add initial support Chris Metcalf 2015-08-25 19:55 ` Chris Metcalf 2015-08-25 19:55 ` [PATCH v6 3/6] task_isolation: support PR_TASK_ISOLATION_STRICT mode Chris Metcalf 2015-08-25 19:55 ` Chris Metcalf 2015-08-26 10:36 ` Will Deacon 2015-08-26 15:10 ` Chris Metcalf 2015-09-02 10:13 ` Will Deacon 2015-09-02 10:13 ` Will Deacon 2015-08-28 15:31 ` [PATCH v6.1 " Chris Metcalf 2015-08-28 15:31 ` Chris Metcalf 2015-08-25 19:55 ` [PATCH v6 4/6] task_isolation: provide strict mode configurable signal Chris Metcalf 2015-08-25 19:55 ` Chris Metcalf 2015-08-28 19:22 ` Andy Lutomirski 2015-09-02 18:38 ` [PATCH v6.2 3/6] task_isolation: support PR_TASK_ISOLATION_STRICT mode Chris Metcalf 2015-09-02 18:38 ` Chris Metcalf 2015-08-25 19:55 ` [PATCH v6 5/6] task_isolation: add debug boot flag Chris Metcalf 2015-08-25 19:55 ` [PATCH v6 6/6] nohz: task_isolation: allow tick to be fully disabled Chris Metcalf 2015-09-28 15:17 ` [PATCH v7 00/11] support "task_isolated" mode for nohz_full Chris Metcalf 2015-09-28 15:17 ` Chris Metcalf 2015-09-28 15:17 ` [PATCH v7 01/11] vmstat: provide a function to quiet down the diff processing Chris Metcalf 2015-09-28 15:17 ` [PATCH v7 02/11] task_isolation: add initial support Chris Metcalf 2015-09-28 15:17 ` Chris Metcalf 2015-10-01 12:14 ` Frederic Weisbecker 2015-10-01 12:18 ` Thomas Gleixner 2015-10-01 12:23 ` Frederic Weisbecker 2015-10-01 12:31 ` Thomas Gleixner 2015-10-01 17:02 ` Chris Metcalf 2015-10-01 17:02 ` Chris Metcalf 2015-10-01 21:20 ` Thomas Gleixner 2015-10-01 21:20 ` Thomas Gleixner 2015-10-02 17:15 ` Chris Metcalf 2015-10-02 17:15 ` Chris Metcalf 2015-10-02 19:02 ` Thomas Gleixner 2015-10-02 19:02 ` Thomas Gleixner 2015-10-01 19:25 ` Chris Metcalf 2015-10-01 19:25 ` Chris Metcalf 2015-09-28 15:17 ` [PATCH v7 03/11] task_isolation: support PR_TASK_ISOLATION_STRICT mode Chris Metcalf 2015-09-28 15:17 ` Chris Metcalf 2015-09-28 20:51 ` Andy Lutomirski 2015-09-28 20:51 ` Andy Lutomirski 2015-09-28 21:54 ` Chris Metcalf 2015-09-28 22:38 ` Andy Lutomirski 2015-09-29 17:35 ` Chris Metcalf 2015-09-29 17:46 ` Andy Lutomirski 2015-09-29 17:46 ` Andy Lutomirski 2015-09-29 17:57 ` Chris Metcalf 2015-09-29 17:57 ` Chris Metcalf 2015-09-29 18:00 ` Andy Lutomirski 2015-10-01 19:25 ` Chris Metcalf 2015-10-01 19:25 ` Chris Metcalf 2015-09-28 15:17 ` [PATCH v7 04/11] task_isolation: provide strict mode configurable signal Chris Metcalf 2015-09-28 15:17 ` Chris Metcalf 2015-09-28 20:54 ` Andy Lutomirski 2015-09-28 21:54 ` Chris Metcalf 2015-09-28 21:54 ` Chris Metcalf 2015-09-28 15:17 ` [PATCH v7 05/11] task_isolation: add debug boot flag Chris Metcalf 2015-09-28 20:59 ` Andy Lutomirski 2015-09-28 21:55 ` Chris Metcalf 2015-09-28 22:40 ` Andy Lutomirski 2015-09-29 17:35 ` Chris Metcalf 2015-10-05 17:07 ` Luiz Capitulino 2015-10-08 0:33 ` Chris Metcalf 2015-10-08 20:28 ` Luiz Capitulino 2015-09-28 15:17 ` [PATCH v7 06/11] nohz: task_isolation: allow tick to be fully disabled Chris Metcalf 2015-09-28 20:40 ` Andy Lutomirski 2015-10-01 13:07 ` Frederic Weisbecker 2015-10-01 14:13 ` Thomas Gleixner 2015-09-28 15:17 ` [PATCH v7 07/11] arch/x86: enable task isolation functionality Chris Metcalf 2015-09-28 20:59 ` Andy Lutomirski 2015-09-28 21:57 ` Chris Metcalf 2015-09-28 22:43 ` Andy Lutomirski 2015-09-29 17:42 ` Chris Metcalf 2015-09-29 17:57 ` Andy Lutomirski 2015-09-30 20:25 ` Thomas Gleixner 2015-09-30 20:58 ` Chris Metcalf 2015-09-30 22:02 ` Thomas Gleixner 2015-09-30 22:11 ` Andy Lutomirski 2015-10-01 8:12 ` Thomas Gleixner 2015-10-01 9:08 ` Christoph Lameter 2015-10-01 10:10 ` Thomas Gleixner 2015-10-01 19:25 ` Chris Metcalf 2015-09-28 15:17 ` [PATCH v7 08/11] arch/arm64: adopt prepare_exit_to_usermode() model from x86 Chris Metcalf 2015-09-28 15:17 ` Chris Metcalf 2015-09-28 15:17 ` [PATCH v7 09/11] arch/arm64: enable task isolation functionality Chris Metcalf 2015-09-28 15:17 ` Chris Metcalf 2015-09-28 15:17 ` [PATCH v7 10/11] arch/tile: adopt prepare_exit_to_usermode() model from x86 Chris Metcalf 2015-09-28 15:17 ` [PATCH v7 11/11] arch/tile: enable task isolation functionality Chris Metcalf 2015-10-20 20:35 ` [PATCH v8 00/14] support "task_isolation" mode for nohz_full Chris Metcalf 2015-10-20 20:35 ` Chris Metcalf 2015-10-20 20:35 ` [PATCH v8 01/14] vmstat: provide a function to quiet down the diff processing Chris Metcalf 2015-10-20 20:36 ` [PATCH v8 02/14] vmstat: add vmstat_idle function Chris Metcalf 2015-10-20 20:45 ` Christoph Lameter 2015-10-20 20:36 ` [PATCH v8 03/14] lru_add_drain_all: factor out lru_add_drain_needed Chris Metcalf 2015-10-20 20:36 ` Chris Metcalf 2015-10-20 20:36 ` [PATCH v8 04/14] task_isolation: add initial support Chris Metcalf 2015-10-20 20:36 ` Chris Metcalf 2015-10-20 20:56 ` Andy Lutomirski 2015-10-20 21:20 ` Chris Metcalf 2015-10-20 21:20 ` Chris Metcalf 2015-10-20 21:26 ` Andy Lutomirski 2015-10-20 21:26 ` Andy Lutomirski 2015-10-21 0:29 ` Steven Rostedt 2015-10-21 0:29 ` Steven Rostedt 2015-10-26 20:19 ` Chris Metcalf 2015-10-26 21:13 ` Chris Metcalf 2015-10-26 20:32 ` Chris Metcalf 2015-10-21 16:12 ` Frederic Weisbecker 2015-10-21 16:12 ` Frederic Weisbecker 2015-10-27 16:40 ` Chris Metcalf 2015-10-27 16:40 ` Chris Metcalf 2016-01-28 16:38 ` Frederic Weisbecker 2016-01-28 16:38 ` Frederic Weisbecker 2016-02-11 19:58 ` Chris Metcalf 2016-02-11 19:58 ` Chris Metcalf 2015-10-20 20:36 ` [PATCH v8 05/14] task_isolation: support PR_TASK_ISOLATION_STRICT mode Chris Metcalf 2015-10-20 20:36 ` Chris Metcalf 2015-10-20 20:36 ` [PATCH v8 06/14] task_isolation: provide strict mode configurable signal Chris Metcalf 2015-10-20 20:36 ` Chris Metcalf 2015-10-21 0:56 ` Steven Rostedt 2015-10-21 0:56 ` Steven Rostedt 2015-10-21 1:30 ` Chris Metcalf 2015-10-21 1:30 ` Chris Metcalf 2015-10-21 1:41 ` Steven Rostedt 2015-10-21 1:41 ` Steven Rostedt 2015-10-21 1:42 ` Andy Lutomirski 2015-10-21 6:41 ` Gilad Ben Yossef 2015-10-21 6:41 ` Gilad Ben Yossef 2015-10-21 18:53 ` Andy Lutomirski 2015-10-22 20:44 ` Chris Metcalf 2015-10-22 21:00 ` Andy Lutomirski 2015-10-27 19:37 ` Chris Metcalf 2015-10-27 19:37 ` Chris Metcalf 2015-10-24 9:16 ` Gilad Ben Yossef 2015-10-24 9:16 ` Gilad Ben Yossef 2015-10-20 20:36 ` [PATCH v8 07/14] task_isolation: add debug boot flag Chris Metcalf 2015-10-20 20:36 ` [PATCH v8 08/14] nohz_full: allow disabling the 1Hz minimum tick at boot Chris Metcalf 2015-10-20 21:03 ` Frederic Weisbecker 2015-10-20 21:18 ` Chris Metcalf 2015-10-21 0:59 ` Steven Rostedt 2015-10-21 6:56 ` Gilad Ben Yossef 2015-10-21 14:28 ` Christoph Lameter 2015-10-21 15:35 ` Frederic Weisbecker 2015-10-20 20:36 ` [PATCH v8 09/14] arch/x86: enable task isolation functionality Chris Metcalf 2015-10-20 20:36 ` [PATCH v8 10/14] arch/arm64: adopt prepare_exit_to_usermode() model from x86 Chris Metcalf 2015-10-20 20:36 ` Chris Metcalf 2015-10-20 20:36 ` [PATCH v8 11/14] arch/arm64: enable task isolation functionality Chris Metcalf 2015-10-20 20:36 ` Chris Metcalf 2015-10-20 20:36 ` [PATCH v8 12/14] arch/tile: adopt prepare_exit_to_usermode() model from x86 Chris Metcalf 2015-10-20 20:36 ` [PATCH v8 13/14] arch/tile: turn off timer tick for oneshot_stopped state Chris Metcalf 2015-10-20 20:36 ` [PATCH v8 14/14] arch/tile: enable task isolation functionality Chris Metcalf 2015-10-21 12:39 ` [PATCH v8 00/14] support "task_isolation" mode for nohz_full Peter Zijlstra 2015-10-22 20:31 ` Chris Metcalf 2015-10-22 20:31 ` Chris Metcalf 2015-10-23 2:33 ` Frederic Weisbecker 2015-10-23 8:49 ` Peter Zijlstra 2015-10-23 13:29 ` Frederic Weisbecker 2015-10-23 9:04 ` Peter Zijlstra 2015-10-23 9:04 ` Peter Zijlstra 2015-10-23 11:52 ` Theodore Ts'o
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=1431725251-20943-2-git-send-email-cmetcalf@ezchip.com \ --to=cmetcalf@ezchip.com \ --cc=akpm@linux-foundation.org \ --cc=cl@linux.com \ --cc=fweisbec@gmail.com \ --cc=giladb@ezchip.com \ --cc=linux-api@vger.kernel.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@kernel.org \ --cc=paulmck@linux.vnet.ibm.com \ --cc=peterz@infradead.org \ --cc=riel@redhat.com \ --cc=rostedt@goodmis.org \ --cc=tglx@linutronix.de \ --cc=tj@kernel.org \ --cc=viresh.kumar@linaro.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: linkBe 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.