diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2016-12-25 11:09:19 -0500 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2016-12-25 11:09:19 -0500 |
commit | af0b01563495be2071e245f0cf7eeb9cbbf824b1 (patch) | |
tree | dddefd0b8380f028ef411d48fc0661d657dfb9f8 | |
parent | 4c6bfa1f9d2a42b5921c54d3376def98a4933c4d (diff) | |
download | 4.9-rt-patches-af0b01563495be2071e245f0cf7eeb9cbbf824b1.tar.gz |
x86: drop dumpstack ; removed in mainline c8fe4609827aedc9
-rw-r--r-- | patches/dump-stack-don-t-disable-preemption-during-trace.patch | 77 | ||||
-rw-r--r-- | patches/series | 1 |
2 files changed, 0 insertions, 78 deletions
diff --git a/patches/dump-stack-don-t-disable-preemption-during-trace.patch b/patches/dump-stack-don-t-disable-preemption-during-trace.patch deleted file mode 100644 index 94597b5d8a5da..0000000000000 --- a/patches/dump-stack-don-t-disable-preemption-during-trace.patch +++ /dev/null @@ -1,77 +0,0 @@ -From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> -Date: Sun, 16 Aug 2015 14:27:50 +0200 -Subject: dump stack: don't disable preemption during trace - -I see here large latencies during a stack dump on x86. The -preempt_disable() and get_cpu() should forbid moving the task to another -CPU during a stack dump and avoiding two stack traces in parallel on the -same CPU. However a stack trace from a second CPU may still happen in -parallel. Also nesting is allowed so a stack trace happens in -process-context and we may have another one from IRQ context. With migrate -disable we keep this code preemptible and allow a second backtrace on -the same CPU by another task. - -Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> ---- - arch/x86/kernel/dumpstack_32.c | 4 ++-- - arch/x86/kernel/dumpstack_64.c | 8 ++++---- - 2 files changed, 6 insertions(+), 6 deletions(-) - ---- a/arch/x86/kernel/dumpstack_32.c -+++ b/arch/x86/kernel/dumpstack_32.c -@@ -42,7 +42,7 @@ void dump_trace(struct task_struct *task - unsigned long *stack, unsigned long bp, - const struct stacktrace_ops *ops, void *data) - { -- const unsigned cpu = get_cpu(); -+ const unsigned cpu = get_cpu_light(); - int graph = 0; - u32 *prev_esp; - -@@ -84,7 +84,7 @@ void dump_trace(struct task_struct *task - break; - touch_nmi_watchdog(); - } -- put_cpu(); -+ put_cpu_light(); - } - EXPORT_SYMBOL(dump_trace); - ---- a/arch/x86/kernel/dumpstack_64.c -+++ b/arch/x86/kernel/dumpstack_64.c -@@ -152,7 +152,7 @@ void dump_trace(struct task_struct *task - unsigned long *stack, unsigned long bp, - const struct stacktrace_ops *ops, void *data) - { -- const unsigned cpu = get_cpu(); -+ const unsigned cpu = get_cpu_light(); - unsigned long *irq_stack = (unsigned long *)per_cpu(irq_stack_ptr, cpu); - unsigned long dummy; - unsigned used = 0; -@@ -239,7 +239,7 @@ void dump_trace(struct task_struct *task - * This handles the process stack: - */ - bp = ops->walk_stack(task, stack, bp, ops, data, NULL, &graph); -- put_cpu(); -+ put_cpu_light(); - } - EXPORT_SYMBOL(dump_trace); - -@@ -253,7 +253,7 @@ show_stack_log_lvl(struct task_struct *t - int cpu; - int i; - -- preempt_disable(); -+ migrate_disable(); - cpu = smp_processor_id(); - - irq_stack_end = (unsigned long *)(per_cpu(irq_stack_ptr, cpu)); -@@ -299,7 +299,7 @@ show_stack_log_lvl(struct task_struct *t - stack++; - touch_nmi_watchdog(); - } -- preempt_enable(); -+ migrate_enable(); - - pr_cont("\n"); - show_trace_log_lvl(task, regs, sp, bp, log_lvl); diff --git a/patches/series b/patches/series index 061f61f77f22f..295380d343933 100644 --- a/patches/series +++ b/patches/series @@ -381,7 +381,6 @@ mm-vmalloc-use-get-cpu-light.patch block-mq-use-cpu_light.patch block-mq-drop-preempt-disable.patch block-mq-don-t-complete-requests-via-IPI.patch -dump-stack-don-t-disable-preemption-during-trace.patch md-raid5-percpu-handling-rt-aware.patch # CPU CHILL |