Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1348235 > unrolled thread
| Started by | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| First post | 2016-03-02 17:00 +0100 |
| Last post | 2016-03-07 20:50 +0100 |
| Articles | 10 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH RT 00/13] Linux 3.12.54-rt74-rc1 Steven Rostedt <rostedt@goodmis.org> - 2016-03-02 17:00 +0100
[PATCH RT 12/13] kernel: sched: Fix preempt_disable_ip recodring for preempt_disable() Steven Rostedt <rostedt@goodmis.org> - 2016-03-02 17:00 +0100
[PATCH RT 01/13] ptrace: dont open IRQs in ptrace_freeze_traced() too early Steven Rostedt <rostedt@goodmis.org> - 2016-03-02 17:00 +0100
[PATCH RT 10/13] trace: Use rcuidle version for preemptoff_hist trace point Steven Rostedt <rostedt@goodmis.org> - 2016-03-02 17:00 +0100
[PATCH RT 07/13] kernel: softirq: unlock with irqs on Steven Rostedt <rostedt@goodmis.org> - 2016-03-02 17:00 +0100
[PATCH RT 05/13] latencyhist: disable jump-labels Steven Rostedt <rostedt@goodmis.org> - 2016-03-02 17:00 +0100
[PATCH RT 11/13] rcu/torture: Comment out rcu_bh ops on PREEMPT_RT_FULL Steven Rostedt <rostedt@goodmis.org> - 2016-03-02 17:00 +0100
[PATCH RT 09/13] sched,rt: __always_inline preemptible_lazy() Steven Rostedt <rostedt@goodmis.org> - 2016-03-02 17:00 +0100
[PATCH RT 14/13] tracing: Fix probe_wakeup_latency_hist_start() prototype Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-03-04 05:10 +0100
Re: [PATCH RT 14/13] tracing: Fix probe_wakeup_latency_hist_start() prototype Steven Rostedt <rostedt@goodmis.org> - 2016-03-07 20:50 +0100
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2016-03-02 17:00 +0100 |
| Subject | [PATCH RT 00/13] Linux 3.12.54-rt74-rc1 |
| Message-ID | <r8hce-1c4-17@gated-at.bofh.it> |
Dear RT Folks,
This is the RT stable review cycle of patch 3.12.54-rt74-rc1.
Please scream at me if I messed something up. Please test the patches too.
The -rc release will be uploaded to kernel.org and will be deleted when
the final release is out. This is just a review release (or release candidate).
The pre-releases will not be pushed to the git repository, only the
final release is.
If all goes well, this patch will be converted to the next main release
on 3/7/2016.
Enjoy,
-- Steve
To build 3.12.54-rt74-rc1 directly, the following patches should be applied:
http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.tar.xz
http://www.kernel.org/pub/linux/kernel/v3.x/patch-3.12.54.xz
http://www.kernel.org/pub/linux/kernel/projects/rt/3.12/patch-3.12.54-rt74-rc1.patch.xz
You can also build from 3.12.54-rt73 by applying the incremental patch:
http://www.kernel.org/pub/linux/kernel/projects/rt/3.12/incr/patch-3.12.54-rt73-rt74-rc1.patch.xz
Changes from 3.12.54-rt73:
---
Clark Williams (1):
rcu/torture: Comment out rcu_bh ops on PREEMPT_RT_FULL
Mike Galbraith (1):
sched,rt: __always_inline preemptible_lazy()
Sebastian Andrzej Siewior (9):
ptrace: don't open IRQs in ptrace_freeze_traced() too early
preempt-lazy: Add the lazy-preemption check to preempt_schedule()
softirq: split timer softirqs out of ksoftirqd
net: provide a way to delegate processing a softirq to ksoftirqd
latencyhist: disable jump-labels
kernel: migrate_disable() do fastpath in atomic & irqs-off
kernel: softirq: unlock with irqs on
kernel/stop_machine: partly revert "stop_machine: Use raw spinlocks"
kernel: sched: Fix preempt_disable_ip recodring for preempt_disable()
Steven Rostedt (Red Hat) (1):
Linux 3.12.54-rt74-rc1
Yang Shi (1):
trace: Use rcuidle version for preemptoff_hist trace point
----
arch/Kconfig | 1 +
include/linux/ftrace.h | 12 +++++
include/linux/interrupt.h | 8 ++++
include/linux/sched.h | 2 -
include/trace/events/hist.h | 1 +
kernel/ptrace.c | 6 ++-
kernel/rcutorture.c | 7 +++
kernel/sched/core.c | 52 ++++++++++++---------
kernel/softirq.c | 109 ++++++++++++++++++++++++++++++++++++++-----
kernel/stop_machine.c | 38 +++------------
kernel/trace/trace_irqsoff.c | 8 ++--
localversion-rt | 2 +-
net/core/dev.c | 2 +-
13 files changed, 173 insertions(+), 75 deletions(-)
[toc] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2016-03-02 17:00 +0100 |
| Subject | [PATCH RT 12/13] kernel: sched: Fix preempt_disable_ip recodring for preempt_disable() |
| Message-ID | <r8hlV-1fW-47@gated-at.bofh.it> |
| In reply to | #1348235 |
3.12.54-rt74-rc1 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
preempt_disable() invokes preempt_count_add() which saves the caller in
current->preempt_disable_ip. It uses CALLER_ADDR1 which does not look for its
caller but for the parent of the caller. Which means we get the correct caller
for something like spin_lock() unless the architectures inlines those
invocations. It is always wrong for preempt_disable() or local_bh_disable().
This patch makes the function get_parent_ip() which tries CALLER_ADDR0,1,2 if
the former is a locking function. This seems to record the preempt_disable()
caller properly for preempt_disable() itself as well as for get_cpu_var() or
local_bh_disable().
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
include/linux/ftrace.h | 12 ++++++++++++
include/linux/sched.h | 2 --
kernel/sched/core.c | 14 ++------------
kernel/softirq.c | 2 +-
4 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index e68db4d534cb..9b7b9341f886 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -627,6 +627,18 @@ static inline void __ftrace_enabled_restore(int enabled)
# endif
#endif /* ifndef HAVE_ARCH_CALLER_ADDR */
+static inline unsigned long get_lock_parent_ip(void)
+{
+ unsigned long addr = CALLER_ADDR0;
+
+ if (!in_lock_functions(addr))
+ return addr;
+ addr = CALLER_ADDR1;
+ if (!in_lock_functions(addr))
+ return addr;
+ return CALLER_ADDR2;
+}
+
#ifdef CONFIG_IRQSOFF_TRACER
extern void time_hardirqs_on(unsigned long a0, unsigned long a1);
extern void time_hardirqs_off(unsigned long a0, unsigned long a1);
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 3ce814c4ef42..4006703785b2 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -113,8 +113,6 @@ extern unsigned long this_cpu_load(void);
extern void calc_global_load(unsigned long ticks);
extern void update_cpu_load_nohz(void);
-extern unsigned long get_parent_ip(unsigned long addr);
-
extern void dump_cpu_task(int cpu);
struct seq_file;
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 7e56dc293669..c66db09aaf12 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2279,16 +2279,6 @@ u64 scheduler_tick_max_deferment(void)
}
#endif
-notrace unsigned long get_parent_ip(unsigned long addr)
-{
- if (in_lock_functions(addr)) {
- addr = CALLER_ADDR2;
- if (in_lock_functions(addr))
- addr = CALLER_ADDR3;
- }
- return addr;
-}
-
#if defined(CONFIG_PREEMPT) && (defined(CONFIG_DEBUG_PREEMPT) || \
defined(CONFIG_PREEMPT_TRACER))
@@ -2310,7 +2300,7 @@ void __kprobes add_preempt_count(int val)
PREEMPT_MASK - 10);
#endif
if (preempt_count() == val) {
- unsigned long ip = get_parent_ip(CALLER_ADDR1);
+ unsigned long ip = get_lock_parent_ip();
#ifdef CONFIG_DEBUG_PREEMPT
current->preempt_disable_ip = ip;
#endif
@@ -2336,7 +2326,7 @@ void __kprobes sub_preempt_count(int val)
#endif
if (preempt_count() == val)
- trace_preempt_on(CALLER_ADDR0, get_parent_ip(CALLER_ADDR1));
+ trace_preempt_on(CALLER_ADDR0, get_lock_parent_ip());
preempt_count() -= val;
}
EXPORT_SYMBOL(sub_preempt_count);
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 7c8e36bf9e2a..315b048423af 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -277,7 +277,7 @@ static void __local_bh_disable(unsigned long ip, unsigned int cnt)
raw_local_irq_restore(flags);
if (preempt_count() == cnt)
- trace_preempt_off(CALLER_ADDR0, get_parent_ip(CALLER_ADDR1));
+ trace_preempt_off(CALLER_ADDR0, get_lock_parent_ip());
}
#else /* !CONFIG_TRACE_IRQFLAGS */
static inline void __local_bh_disable(unsigned long ip, unsigned int cnt)
--
2.7.0
[toc] | [prev] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2016-03-02 17:00 +0100 |
| Subject | [PATCH RT 01/13] ptrace: dont open IRQs in ptrace_freeze_traced() too early |
| Message-ID | <r8hlV-1fW-49@gated-at.bofh.it> |
| In reply to | #1348235 |
3.12.54-rt74-rc1 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
In the non-RT case the spin_lock_irq() here disables interrupts as well
as raw_spin_lock_irq(). So in the unlock case the interrupts are enabled
too early.
Reported-by: kernel test robot <ying.huang@linux.intel.com>
Cc: stable-rt@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/ptrace.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index c8cd8ffab511..fe11653fb005 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -135,12 +135,14 @@ static bool ptrace_freeze_traced(struct task_struct *task)
spin_lock_irq(&task->sighand->siglock);
if (task_is_traced(task) && !__fatal_signal_pending(task)) {
- raw_spin_lock_irq(&task->pi_lock);
+ unsigned long flags;
+
+ raw_spin_lock_irqsave(&task->pi_lock, flags);
if (task->state & __TASK_TRACED)
task->state = __TASK_TRACED;
else
task->saved_state = __TASK_TRACED;
- raw_spin_unlock_irq(&task->pi_lock);
+ raw_spin_unlock_irqrestore(&task->pi_lock, flags);
ret = true;
}
spin_unlock_irq(&task->sighand->siglock);
--
2.7.0
[toc] | [prev] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2016-03-02 17:00 +0100 |
| Subject | [PATCH RT 10/13] trace: Use rcuidle version for preemptoff_hist trace point |
| Message-ID | <r8hlW-1fW-63@gated-at.bofh.it> |
| In reply to | #1348235 |
3.12.54-rt74-rc1 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Yang Shi <yang.shi@windriver.com>
When running -rt kernel with both PREEMPT_OFF_HIST and LOCKDEP enabled,
the below error is reported:
[ INFO: suspicious RCU usage. ]
4.4.1-rt6 #1 Not tainted
include/trace/events/hist.h:31 suspicious rcu_dereference_check() usage!
other info that might help us debug this:
RCU used illegally from idle CPU!
rcu_scheduler_active = 1, debug_locks = 0
RCU used illegally from extended quiescent state!
no locks held by swapper/0/0.
stack backtrace:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.1-rt6-WR8.0.0.0_standard #1
Stack : 0000000000000006 0000000000000000 ffffffff81ca8c38 ffffffff81c8fc80
ffffffff811bdd68 ffffffff81cb0000 0000000000000000 ffffffff81cb0000
0000000000000000 0000000000000000 0000000000000004 0000000000000000
0000000000000004 ffffffff811bdf50 0000000000000000 ffffffff82b60000
0000000000000000 ffffffff812897ac ffffffff819f0000 000000000000000b
ffffffff811be460 ffffffff81b7c588 ffffffff81c8fc80 0000000000000000
0000000000000000 ffffffff81ec7f88 ffffffff81d70000 ffffffff81b70000
ffffffff81c90000 ffffffff81c3fb00 ffffffff81c3fc28 ffffffff815e6f98
0000000000000000 ffffffff81c8fa87 ffffffff81b70958 ffffffff811bf2c4
0707fe32e8d60ca5 ffffffff81126d60 0000000000000000 0000000000000000
...
Call Trace:
[<ffffffff81126d60>] show_stack+0xe8/0x108
[<ffffffff815e6f98>] dump_stack+0x88/0xb0
[<ffffffff8124b88c>] time_hardirqs_off+0x204/0x300
[<ffffffff811aa5dc>] trace_hardirqs_off_caller+0x24/0xe8
[<ffffffff811a4ec4>] cpu_startup_entry+0x39c/0x508
[<ffffffff81d7dc68>] start_kernel+0x584/0x5a0
Replace regular trace_preemptoff_hist to rcuidle version to avoid the error.
Signed-off-by: Yang Shi <yang.shi@windriver.com>
Cc: bigeasy@linutronix.de
Cc: rostedt@goodmis.org
Cc: linux-rt-users@vger.kernel.org
Link: http://lkml.kernel.org/r/1456262603-10075-1-git-send-email-yang.shi@windriver.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
include/trace/events/hist.h | 1 +
kernel/trace/trace_irqsoff.c | 8 ++++----
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/include/trace/events/hist.h b/include/trace/events/hist.h
index 6122e4286177..f7710de1b1f3 100644
--- a/include/trace/events/hist.h
+++ b/include/trace/events/hist.h
@@ -9,6 +9,7 @@
#if !defined(CONFIG_PREEMPT_OFF_HIST) && !defined(CONFIG_INTERRUPT_OFF_HIST)
#define trace_preemptirqsoff_hist(a, b)
+#define trace_preemptirqsoff_hist_rcuidle(a, b)
#else
TRACE_EVENT(preemptirqsoff_hist,
diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c
index 2f4eb37815d8..77bdfa55ce90 100644
--- a/kernel/trace/trace_irqsoff.c
+++ b/kernel/trace/trace_irqsoff.c
@@ -440,13 +440,13 @@ void start_critical_timings(void)
{
if (preempt_trace() || irq_trace())
start_critical_timing(CALLER_ADDR0, CALLER_ADDR1);
- trace_preemptirqsoff_hist(TRACE_START, 1);
+ trace_preemptirqsoff_hist_rcuidle(TRACE_START, 1);
}
EXPORT_SYMBOL_GPL(start_critical_timings);
void stop_critical_timings(void)
{
- trace_preemptirqsoff_hist(TRACE_STOP, 0);
+ trace_preemptirqsoff_hist_rcuidle(TRACE_STOP, 0);
if (preempt_trace() || irq_trace())
stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1);
}
@@ -491,7 +491,7 @@ inline void print_irqtrace_events(struct task_struct *curr)
*/
void trace_hardirqs_on(void)
{
- trace_preemptirqsoff_hist(IRQS_ON, 0);
+ trace_preemptirqsoff_hist_rcuidle(IRQS_ON, 0);
if (!preempt_trace() && irq_trace())
stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1);
}
@@ -501,7 +501,7 @@ void trace_hardirqs_off(void)
{
if (!preempt_trace() && irq_trace())
start_critical_timing(CALLER_ADDR0, CALLER_ADDR1);
- trace_preemptirqsoff_hist(IRQS_OFF, 1);
+ trace_preemptirqsoff_hist_rcuidle(IRQS_OFF, 1);
}
EXPORT_SYMBOL(trace_hardirqs_off);
--
2.7.0
[toc] | [prev] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2016-03-02 17:00 +0100 |
| Subject | [PATCH RT 07/13] kernel: softirq: unlock with irqs on |
| Message-ID | <r8hlW-1fW-65@gated-at.bofh.it> |
| In reply to | #1348235 |
3.12.54-rt74-rc1 stable review patch. If anyone has any objections, please let me know. ------------------ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> We unlock the lock while the interrupts are off. This isn't a problem now but will get because the migrate_disable() + enable are not symmetrical in regard to the status of interrupts. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> --- kernel/softirq.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/softirq.c b/kernel/softirq.c index cce9723c5a18..7c8e36bf9e2a 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -578,8 +578,10 @@ static void do_current_softirqs(int need_rcu_bh_qs) do_single_softirq(i, need_rcu_bh_qs); } softirq_clr_runner(i); - unlock_softirq(i); WARN_ON(current->softirq_nestcnt != 1); + local_irq_enable(); + unlock_softirq(i); + local_irq_disable(); } } -- 2.7.0
[toc] | [prev] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2016-03-02 17:00 +0100 |
| Subject | [PATCH RT 05/13] latencyhist: disable jump-labels |
| Message-ID | <r8hlW-1fW-67@gated-at.bofh.it> |
| In reply to | #1348235 |
3.12.54-rt74-rc1 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Atleast on X86 we die a recursive death
|CPU: 3 PID: 585 Comm: bash Not tainted 4.4.1-rt4+ #198
|Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS Debian-1.8.2-1 04/01/2014
|task: ffff88007ab4cd00 ti: ffff88007ab94000 task.ti: ffff88007ab94000
|RIP: 0010:[<ffffffff81684870>] [<ffffffff81684870>] int3+0x0/0x10
|RSP: 0018:ffff88013c107fd8 EFLAGS: 00010082
|RAX: ffff88007ab4cd00 RBX: ffffffff8100ceab RCX: 0000000080202001
|RDX: 0000000000000000 RSI: ffffffff8100ceab RDI: ffffffff810c78b2
|RBP: ffff88007ab97c10 R08: ffffffffff57b000 R09: 0000000000000000
|R10: ffff88013bb64790 R11: ffff88007ab4cd68 R12: ffffffff8100ceab
|R13: ffffffff810c78b2 R14: ffffffff810f8158 R15: ffffffff810f9120
|FS: 0000000000000000(0000) GS:ffff88013c100000(0063) knlGS:00000000f74e3940
|CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b
|CR2: 0000000008cf6008 CR3: 000000013b169000 CR4: 00000000000006e0
|Call Trace:
| <#DB>
| [<ffffffff810f8158>] ? trace_preempt_off+0x18/0x170
| <<EOE>>
| [<ffffffff81077745>] preempt_count_add+0xa5/0xc0
| [<ffffffff810c78b2>] on_each_cpu+0x22/0x90
| [<ffffffff8100ceab>] text_poke_bp+0x5b/0xc0
| [<ffffffff8100a29c>] arch_jump_label_transform+0x8c/0xf0
| [<ffffffff8111c77c>] __jump_label_update+0x6c/0x80
| [<ffffffff8111c83a>] jump_label_update+0xaa/0xc0
| [<ffffffff8111ca54>] static_key_slow_inc+0x94/0xa0
| [<ffffffff810e0d8d>] tracepoint_probe_register_prio+0x26d/0x2c0
| [<ffffffff810e0df3>] tracepoint_probe_register+0x13/0x20
| [<ffffffff810fca78>] trace_event_reg+0x98/0xd0
| [<ffffffff810fcc8b>] __ftrace_event_enable_disable+0x6b/0x180
| [<ffffffff810fd5b8>] event_enable_write+0x78/0xc0
| [<ffffffff8117a768>] __vfs_write+0x28/0xe0
| [<ffffffff8117b025>] vfs_write+0xa5/0x180
| [<ffffffff8117bb76>] SyS_write+0x46/0xa0
| [<ffffffff81002c91>] do_fast_syscall_32+0xa1/0x1d0
| [<ffffffff81684d57>] sysenter_flags_fixed+0xd/0x17
during
echo 1 > /sys/kernel/debug/tracing/events/hist/preemptirqsoff_hist/enable
Reported-By: Christoph Mathys <eraserix@gmail.com>
Cc: stable-rt@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
arch/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/Kconfig b/arch/Kconfig
index 77e7e80963d5..b1a399585d52 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -50,6 +50,7 @@ config KPROBES
config JUMP_LABEL
bool "Optimize very unlikely/likely branches"
depends on HAVE_ARCH_JUMP_LABEL
+ depends on (!INTERRUPT_OFF_HIST && !PREEMPT_OFF_HIST && !WAKEUP_LATENCY_HIST && !MISSED_TIMER_OFFSETS_HIST)
help
This option enables a transparent branch optimization that
makes certain almost-always-true or almost-always-false branch
--
2.7.0
[toc] | [prev] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2016-03-02 17:00 +0100 |
| Subject | [PATCH RT 11/13] rcu/torture: Comment out rcu_bh ops on PREEMPT_RT_FULL |
| Message-ID | <r8hlW-1fW-73@gated-at.bofh.it> |
| In reply to | #1348235 |
3.12.54-rt74-rc1 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Clark Williams <williams@redhat.com>
RT has dropped support of rcu_bh, comment out in rcutorture.
Signed-off-by: Clark Williams <williams@redhat.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/rcutorture.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
index be63101c6175..a31bab6c70ad 100644
--- a/kernel/rcutorture.c
+++ b/kernel/rcutorture.c
@@ -473,6 +473,7 @@ static struct rcu_torture_ops rcu_ops = {
.name = "rcu"
};
+#ifndef CONFIG_PREEMPT_RT_FULL
/*
* Definitions for rcu_bh torture testing.
*/
@@ -515,6 +516,12 @@ static struct rcu_torture_ops rcu_bh_ops = {
.name = "rcu_bh"
};
+#else
+static struct rcu_torture_ops rcu_bh_ops = {
+ .ttype = INVALID_RCU_FLAVOR,
+};
+#endif
+
/*
* Definitions for srcu torture testing.
*/
--
2.7.0
[toc] | [prev] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2016-03-02 17:00 +0100 |
| Subject | [PATCH RT 09/13] sched,rt: __always_inline preemptible_lazy() |
| Message-ID | <r8hlX-1fW-77@gated-at.bofh.it> |
| In reply to | #1348235 |
3.12.54-rt74-rc1 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Mike Galbraith <umgwanakikbuti@gmail.com>
homer: # nm kernel/sched/core.o|grep preemptible_lazy
00000000000000b5 t preemptible_lazy
echo wakeup_rt > current_tracer ==> Welcome to infinity.
Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
Acked-by: Hillf Danton <hillf.zj@alibaba-inc.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: linux-rt-users <linux-rt-users@vger.kernel.org>
Link: http://lkml.kernel.org/r/1456067490.3771.2.camel@gmail.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/sched/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index d02b025f434c..7e56dc293669 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2734,7 +2734,7 @@ void __sched schedule_preempt_disabled(void)
* set by a RT task. Oterwise we try to avoid beeing scheduled out as long as
* preempt_lazy_count counter >0.
*/
-static int preemptible_lazy(void)
+static __always_inline int preemptible_lazy(void)
{
if (test_thread_flag(TIF_NEED_RESCHED))
return 1;
--
2.7.0
[toc] | [prev] | [next] | [standalone]
| From | Mike Galbraith <umgwanakikbuti@gmail.com> |
|---|---|
| Date | 2016-03-04 05:10 +0100 |
| Subject | [PATCH RT 14/13] tracing: Fix probe_wakeup_latency_hist_start() prototype |
| Message-ID | <r8PdT-10V-1@gated-at.bofh.it> |
| In reply to | #1348235 |
Drop 'success' arg from probe_wakeup_latency_hist_start().
Fixes: cf1dd658 sched: Introduce the trace_sched_waking tracepoint
Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
---
kernel/trace/latency_hist.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/trace/latency_hist.c b/kernel/trace/latency_hist.c
index 66a69eb5329c..b6c1d14b71c4 100644
--- a/kernel/trace/latency_hist.c
+++ b/kernel/trace/latency_hist.c
@@ -115,7 +115,7 @@ static DEFINE_PER_CPU(struct hist_data, wakeup_latency_hist_sharedprio);
static char *wakeup_latency_hist_dir = "wakeup";
static char *wakeup_latency_hist_dir_sharedprio = "sharedprio";
static notrace void probe_wakeup_latency_hist_start(void *v,
- struct task_struct *p, int success);
+ struct task_struct *p);
static notrace void probe_wakeup_latency_hist_stop(void *v,
struct task_struct *prev, struct task_struct *next);
static notrace void probe_sched_migrate_task(void *,
@@ -869,7 +869,7 @@ static notrace void probe_sched_migrate_task(void *v, struct task_struct *task,
}
static notrace void probe_wakeup_latency_hist_start(void *v,
- struct task_struct *p, int success)
+ struct task_struct *p)
{
unsigned long flags;
struct task_struct *curr = current;
[toc] | [prev] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2016-03-07 20:50 +0100 |
| Subject | Re: [PATCH RT 14/13] tracing: Fix probe_wakeup_latency_hist_start() prototype |
| Message-ID | <ra9kf-7bJ-47@gated-at.bofh.it> |
| In reply to | #1349824 |
On Fri, 04 Mar 2016 05:04:06 +0100
Mike Galbraith <umgwanakikbuti@gmail.com> wrote:
> Drop 'success' arg from probe_wakeup_latency_hist_start().
>
> Fixes: cf1dd658 sched: Introduce the trace_sched_waking tracepoint
> Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
Thanks, I applied this to 3.18-rt, 3.14-rt, 3.12-rt, 3.10-rt, 3.4-rt,
and 3.2-rt.
-- Steve
> ---
> kernel/trace/latency_hist.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/trace/latency_hist.c b/kernel/trace/latency_hist.c
> index 66a69eb5329c..b6c1d14b71c4 100644
> --- a/kernel/trace/latency_hist.c
> +++ b/kernel/trace/latency_hist.c
> @@ -115,7 +115,7 @@ static DEFINE_PER_CPU(struct hist_data, wakeup_latency_hist_sharedprio);
> static char *wakeup_latency_hist_dir = "wakeup";
> static char *wakeup_latency_hist_dir_sharedprio = "sharedprio";
> static notrace void probe_wakeup_latency_hist_start(void *v,
> - struct task_struct *p, int success);
> + struct task_struct *p);
> static notrace void probe_wakeup_latency_hist_stop(void *v,
> struct task_struct *prev, struct task_struct *next);
> static notrace void probe_sched_migrate_task(void *,
> @@ -869,7 +869,7 @@ static notrace void probe_sched_migrate_task(void *v, struct task_struct *task,
> }
>
> static notrace void probe_wakeup_latency_hist_start(void *v,
> - struct task_struct *p, int success)
> + struct task_struct *p)
> {
> unsigned long flags;
> struct task_struct *curr = current;
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web