Re: [ANNOUNCE] 3.14.3-rt5
Hi Sebastian, On 16/02/15 11:29, Sebastian Andrzej Siewior wrote: > * Juri Lelli | 2014-05-13 15:30:20 [+0200]: > >> Hi, > Hi Juri, > >> Also SCHED_DEADLINE dies without the following. >> >> Thanks, >> >> - Juri >> >> ---From 3ca5943538c728399037823e5632431bc2da707c Mon Sep 17 00:00:00 2001 >> From: Juri Lelli >> Date: Tue, 13 May 2014 15:21:16 +0200 >> Subject: [PATCH] sched/deadline: dl_task_timer has to be irqsafe > > applied. > Thanks! - Juri > Sebastian > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [ANNOUNCE] 3.14.3-rt5
* Juri Lelli | 2014-05-13 15:30:20 [+0200]: >Hi, Hi Juri, >Also SCHED_DEADLINE dies without the following. > >Thanks, > >- Juri > >---From 3ca5943538c728399037823e5632431bc2da707c Mon Sep 17 00:00:00 2001 >From: Juri Lelli >Date: Tue, 13 May 2014 15:21:16 +0200 >Subject: [PATCH] sched/deadline: dl_task_timer has to be irqsafe applied. Sebastian -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [ANNOUNCE] 3.14.3-rt5
Hi Sebastian, On 16/02/15 11:29, Sebastian Andrzej Siewior wrote: * Juri Lelli | 2014-05-13 15:30:20 [+0200]: Hi, Hi Juri, Also SCHED_DEADLINE dies without the following. Thanks, - Juri ---From 3ca5943538c728399037823e5632431bc2da707c Mon Sep 17 00:00:00 2001 From: Juri Lelli juri.le...@gmail.com Date: Tue, 13 May 2014 15:21:16 +0200 Subject: [PATCH] sched/deadline: dl_task_timer has to be irqsafe applied. Thanks! - Juri Sebastian -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [ANNOUNCE] 3.14.3-rt5
* Juri Lelli | 2014-05-13 15:30:20 [+0200]: Hi, Hi Juri, Also SCHED_DEADLINE dies without the following. Thanks, - Juri ---From 3ca5943538c728399037823e5632431bc2da707c Mon Sep 17 00:00:00 2001 From: Juri Lelli juri.le...@gmail.com Date: Tue, 13 May 2014 15:21:16 +0200 Subject: [PATCH] sched/deadline: dl_task_timer has to be irqsafe applied. Sebastian -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [ANNOUNCE] 3.14.3-rt5
On Tue, 2014-05-13 at 17:40 +0200, Sebastian Andrzej Siewior wrote: > * Mike Galbraith | 2014-05-10 06:15:03 [+0200]: > > >On Fri, 2014-05-09 at 20:12 +0200, Sebastian Andrzej Siewior wrote: > > > >> Known issues: > >> > >> - bcache is disabled. > >> > >> - lazy preempt on x86_64 leads to a crash with some load. > > > >That is only with NO_HZ_FUL enabled here. Box blows the stack during > >task exit, eyeballing hasn't spotted the why. > > Even if I disable NO_HZ_FULL it explodes as soon as hackbench starts. Well good, that makes a hell of a lot more sense. The below is with NO_HZ_FULL enabled, and hackbench exploding on exit. Every kaboom I've see has been a dead task exploding on scrambled thread_info. Accessing per-anti-cpu data doesn't work well from our universe ;-) crash> bt 6657 PID: 6657 TASK: 8801f947ac00 CPU: 1 COMMAND: "hackbench" #0 [88022fc86e00] crash_nmi_callback at 8102b8f4 #1 [88022fc86e10] nmi_handle at 8164865a #2 [88022fc86ea0] default_do_nmi at 81648883 #3 [88022fc86ed0] do_nmi at 81648b50 #4 [88022fc86ef0] end_repeat_nmi at 81647b71 [exception RIP: oops_begin+162] RIP: 816483e2 RSP: 8800b220d9d8 RFLAGS: 0097 RAX: 0010 RBX: 0010 RCX: 0097 RDX: 8800b220d9d8 RSI: 0018 RDI: 0001 RBP: 816483e2 R8: 816483e2 R9: 0018 R10: 8800b220d9d8 R11: 0097 R12: R13: 88022700bf00 R14: 0100 R15: 0001 ORIG_RAX: 0001 CS: 0010 SS: 0018 --- --- #5 [8800b220d9d8] oops_begin at 816483e2 #6 [8800b220d9f0] no_context at 8162ef25 #7 [8800b220da40] __bad_area_nosemaphore at 8162f19d #8 [8800b220daa0] bad_area_nosemaphore at 8162f1ca #9 [8800b220dab0] __do_page_fault at 8164a68e #10 [8800b220dbd0] do_page_fault at 8164ab9e #11 [8800b220dc00] page_fault at 81647808 [exception RIP: cpuacct_charge+148] RIP: 810a1874 RSP: 8800b220dcb8 RFLAGS: 00010046 RAX: 0040 RBX: dd08 RCX: 0003 RDX: 0006 RSI: 0006 RDI: 88022700bf00 RBP: 8800b220dcf8 R8: 06c0 R9: 000b R10: R11: 00013f40 R12: 81c3b180 R13: 8801f947ac00 R14: b220ddd8 R15: 1d64 ORIG_RAX: CS: 0010 SS: 0018 #12 [8800b220dd00] update_curr at 81092451 #13 [8800b220dd60] dequeue_entity at 810928f3 #14 [8800b220ddc0] dequeue_task_fair at 81092d4d #15 [8800b220de10] dequeue_task at 8108442e #16 [8800b220de40] deactivate_task at 81084f9e #17 [8800b220de50] __schedule at 816440d4 #18 [8800b220ded0] schedule at 81644899 #19 [8800b220def0] do_exit at 810530d0 #20 [8800b220df40] do_group_exit at 8105334c #21 [8800b220df70] sys_exit_group at 810533e2 #22 [8800b220df80] tracesys at 8164f109 (via system_call) RIP: 7fcc1a078ca8 RSP: 7fff62546c48 RFLAGS: 0246 RAX: ffda RBX: 8164f109 RCX: RDX: RSI: 003c RDI: RBP: 7fcc1a355840 R8: 00e7 R9: ffa8 R10: 7fcc1a969700 R11: 0246 R12: 810533e2 R13: 8800b220df78 R14: 01ad9c88 R15: 0001 ORIG_RAX: 00e7 CS: 0033 SS: 002b crash> struct thread_info 0x8800b220c000 struct thread_info { task = 0x, exec_domain = 0x811bae66 <__d_free+70>, flags = 2, status = 0, cpu = 2988498392, saved_preempt_count = -30720, preempt_lazy_count = -112742225, addr_limit = { seg = 524802 }, restart_block = { fn = 0x88022fc91358, { futex = { uaddr = 0x80202, val = 3, flags = 0, bitset = 2988490752, time = 18446744071585425101, uaddr2 = 0x88022fc91358 }, nanosleep = { clockid = 524802, rmtp = 0x3, compat_rmtp = 0x8800b220c000, expires = 18446744071585425101 }, poll = { ufds = 0x80202, nfds = 3, has_timeout = 0, tv_sec = 18446612135302709248, tv_nsec = 18446744071585425101 } } }, sysenter_return = 0x, sig_on_uaccess_error = 0, uaccess_err = 0 } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [ANNOUNCE] 3.14.3-rt5
* Pavel Vasilyev | 2014-05-10 02:54:34 [+0400]: >09.05.2014 22:12, Sebastian Andrzej Siewior пишет: > >>The delta patch against v3.14.3-rt4 is appended below and can be found > >Where delta from 3 to 4 ? I can remeber answering that question to an earlier release. The change is mostly in https://git.kernel.org/cgit/linux/kernel/git/bigeasy/rt-devel.git/commit/?id=be0f124e477586b437108e09b66153be66dad29d For more details feel free to "git diff v3.14.2-rt3..v3.14.3-rt4" in that tree. This is however just a stable fixup. Sebastian -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [ANNOUNCE] 3.14.3-rt5
* Mike Galbraith | 2014-05-10 06:15:03 [+0200]: >On Fri, 2014-05-09 at 20:12 +0200, Sebastian Andrzej Siewior wrote: > >> Known issues: >> >> - bcache is disabled. >> >> - lazy preempt on x86_64 leads to a crash with some load. > >That is only with NO_HZ_FUL enabled here. Box blows the stack during >task exit, eyeballing hasn't spotted the why. Even if I disable NO_HZ_FULL it explodes as soon as hackbench starts. >> - CPU hotplug works in general. Steven's test script however >> deadlocks usually on the second invocation. > >My 64 core box runs for up to 14 hours, and never deadlocks.. it >explodes in what looks like it should be an impossible manner instead. It deadlocks here and I haven't figured the exact root cause. From what it looks like is that the irq thread blocks on something during startup (migrate_disable() or so). One of the blocked irq thrad is disk driver. The userland tasks then block on ext4 in order to complete the requests. I also noticed that the frequent cpu up/down fails at some point and my kvm guest has just 7 out 8 CPUs. That one CPU remains dead and can't get back online. Once that happens, the deadlock is comming in a few minutes :) >-Mike Sebastian -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [ANNOUNCE] 3.14.3-rt5
Hi, On Fri, 9 May 2014 20:12:14 +0200 Sebastian Andrzej Siewior wrote: > Dear RT folks! > > I'm pleased to announce the v3.14.3-rt5 patch set. > > Changes since v3.14.3-rt4 > - remove one of the two identical rt_mutex_init() definitions. A patch > from Steven Rostedt > - use EXPORT_SYMBOL() on __rt_mutex_init() and > rt_down_write_nested_lock(). The former was dropped accidently and is > needed by some binary only modules, the latter was requsted by the f2fs > module. Patch by Joakim Hernberg. > - during v3.14 porting I accidently dropped preempt_check_resched() in > the non-preempt case which means configs non-preempt configs did not > build. Reported by Yang Honggang. > - NETCONSOLE is no longer disabled on RT. Daniel Bristot de Oliveira did > some testing and did not find anything wrong it. That means it can be > enabled if someone needs/wants it. > - rt_read_lock() uses rwlock_acquire() instead of rwlock_acquire_read() > for lockdep annotation. It was different compared to what the trylock > variant used and on RT both act the same way. Patch by Mike Galbraith. > - the tracing code wrongly disable preemption while shrinking the ring > buffer. Reported by Stanislav Meduna. > > Known issues: > > - bcache is disabled. > > - lazy preempt on x86_64 leads to a crash with some load. > > - CPU hotplug works in general. Steven's test script however > deadlocks usually on the second invocation. > Also SCHED_DEADLINE dies without the following. Thanks, - Juri ---From 3ca5943538c728399037823e5632431bc2da707c Mon Sep 17 00:00:00 2001 From: Juri Lelli Date: Tue, 13 May 2014 15:21:16 +0200 Subject: [PATCH] sched/deadline: dl_task_timer has to be irqsafe As for rt_period_timer, dl_task_timer has to be irqsafe. Signed-off-by: Juri Lelli --- kernel/sched/deadline.c |1 + 1 file changed, 1 insertion(+) diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index 6e79b3f..48b04ce 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -537,6 +537,7 @@ void init_dl_task_timer(struct sched_dl_entity *dl_se) hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); timer->function = dl_task_timer; + timer->irqsafe = 1; } static -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [ANNOUNCE] 3.14.3-rt5
Hi, On Fri, 9 May 2014 20:12:14 +0200 Sebastian Andrzej Siewior bige...@linutronix.de wrote: Dear RT folks! I'm pleased to announce the v3.14.3-rt5 patch set. Changes since v3.14.3-rt4 - remove one of the two identical rt_mutex_init() definitions. A patch from Steven Rostedt - use EXPORT_SYMBOL() on __rt_mutex_init() and rt_down_write_nested_lock(). The former was dropped accidently and is needed by some binary only modules, the latter was requsted by the f2fs module. Patch by Joakim Hernberg. - during v3.14 porting I accidently dropped preempt_check_resched() in the non-preempt case which means configs non-preempt configs did not build. Reported by Yang Honggang. - NETCONSOLE is no longer disabled on RT. Daniel Bristot de Oliveira did some testing and did not find anything wrong it. That means it can be enabled if someone needs/wants it. - rt_read_lock() uses rwlock_acquire() instead of rwlock_acquire_read() for lockdep annotation. It was different compared to what the trylock variant used and on RT both act the same way. Patch by Mike Galbraith. - the tracing code wrongly disable preemption while shrinking the ring buffer. Reported by Stanislav Meduna. Known issues: - bcache is disabled. - lazy preempt on x86_64 leads to a crash with some load. - CPU hotplug works in general. Steven's test script however deadlocks usually on the second invocation. Also SCHED_DEADLINE dies without the following. Thanks, - Juri ---From 3ca5943538c728399037823e5632431bc2da707c Mon Sep 17 00:00:00 2001 From: Juri Lelli juri.le...@gmail.com Date: Tue, 13 May 2014 15:21:16 +0200 Subject: [PATCH] sched/deadline: dl_task_timer has to be irqsafe As for rt_period_timer, dl_task_timer has to be irqsafe. Signed-off-by: Juri Lelli juri.le...@gmail.com --- kernel/sched/deadline.c |1 + 1 file changed, 1 insertion(+) diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index 6e79b3f..48b04ce 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -537,6 +537,7 @@ void init_dl_task_timer(struct sched_dl_entity *dl_se) hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); timer-function = dl_task_timer; + timer-irqsafe = 1; } static -- 1.7.10.4 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [ANNOUNCE] 3.14.3-rt5
* Mike Galbraith | 2014-05-10 06:15:03 [+0200]: On Fri, 2014-05-09 at 20:12 +0200, Sebastian Andrzej Siewior wrote: Known issues: - bcache is disabled. - lazy preempt on x86_64 leads to a crash with some load. That is only with NO_HZ_FUL enabled here. Box blows the stack during task exit, eyeballing hasn't spotted the why. Even if I disable NO_HZ_FULL it explodes as soon as hackbench starts. - CPU hotplug works in general. Steven's test script however deadlocks usually on the second invocation. My 64 core box runs for up to 14 hours, and never deadlocks.. it explodes in what looks like it should be an impossible manner instead. It deadlocks here and I haven't figured the exact root cause. From what it looks like is that the irq thread blocks on something during startup (migrate_disable() or so). One of the blocked irq thrad is disk driver. The userland tasks then block on ext4 in order to complete the requests. I also noticed that the frequent cpu up/down fails at some point and my kvm guest has just 7 out 8 CPUs. That one CPU remains dead and can't get back online. Once that happens, the deadlock is comming in a few minutes :) -Mike Sebastian -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [ANNOUNCE] 3.14.3-rt5
* Pavel Vasilyev | 2014-05-10 02:54:34 [+0400]: 09.05.2014 22:12, Sebastian Andrzej Siewior пишет: The delta patch against v3.14.3-rt4 is appended below and can be found Where delta from 3 to 4 ? I can remeber answering that question to an earlier release. The change is mostly in https://git.kernel.org/cgit/linux/kernel/git/bigeasy/rt-devel.git/commit/?id=be0f124e477586b437108e09b66153be66dad29d For more details feel free to git diff v3.14.2-rt3..v3.14.3-rt4 in that tree. This is however just a stable fixup. Sebastian -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [ANNOUNCE] 3.14.3-rt5
On Tue, 2014-05-13 at 17:40 +0200, Sebastian Andrzej Siewior wrote: * Mike Galbraith | 2014-05-10 06:15:03 [+0200]: On Fri, 2014-05-09 at 20:12 +0200, Sebastian Andrzej Siewior wrote: Known issues: - bcache is disabled. - lazy preempt on x86_64 leads to a crash with some load. That is only with NO_HZ_FUL enabled here. Box blows the stack during task exit, eyeballing hasn't spotted the why. Even if I disable NO_HZ_FULL it explodes as soon as hackbench starts. Well good, that makes a hell of a lot more sense. The below is with NO_HZ_FULL enabled, and hackbench exploding on exit. Every kaboom I've see has been a dead task exploding on scrambled thread_info. Accessing per-anti-cpu data doesn't work well from our universe ;-) crash bt 6657 PID: 6657 TASK: 8801f947ac00 CPU: 1 COMMAND: hackbench #0 [88022fc86e00] crash_nmi_callback at 8102b8f4 #1 [88022fc86e10] nmi_handle at 8164865a #2 [88022fc86ea0] default_do_nmi at 81648883 #3 [88022fc86ed0] do_nmi at 81648b50 #4 [88022fc86ef0] end_repeat_nmi at 81647b71 [exception RIP: oops_begin+162] RIP: 816483e2 RSP: 8800b220d9d8 RFLAGS: 0097 RAX: 0010 RBX: 0010 RCX: 0097 RDX: 8800b220d9d8 RSI: 0018 RDI: 0001 RBP: 816483e2 R8: 816483e2 R9: 0018 R10: 8800b220d9d8 R11: 0097 R12: R13: 88022700bf00 R14: 0100 R15: 0001 ORIG_RAX: 0001 CS: 0010 SS: 0018 --- NMI exception stack --- #5 [8800b220d9d8] oops_begin at 816483e2 #6 [8800b220d9f0] no_context at 8162ef25 #7 [8800b220da40] __bad_area_nosemaphore at 8162f19d #8 [8800b220daa0] bad_area_nosemaphore at 8162f1ca #9 [8800b220dab0] __do_page_fault at 8164a68e #10 [8800b220dbd0] do_page_fault at 8164ab9e #11 [8800b220dc00] page_fault at 81647808 [exception RIP: cpuacct_charge+148] RIP: 810a1874 RSP: 8800b220dcb8 RFLAGS: 00010046 RAX: 0040 RBX: dd08 RCX: 0003 RDX: 0006 RSI: 0006 RDI: 88022700bf00 RBP: 8800b220dcf8 R8: 06c0 R9: 000b R10: R11: 00013f40 R12: 81c3b180 R13: 8801f947ac00 R14: b220ddd8 R15: 1d64 ORIG_RAX: CS: 0010 SS: 0018 #12 [8800b220dd00] update_curr at 81092451 #13 [8800b220dd60] dequeue_entity at 810928f3 #14 [8800b220ddc0] dequeue_task_fair at 81092d4d #15 [8800b220de10] dequeue_task at 8108442e #16 [8800b220de40] deactivate_task at 81084f9e #17 [8800b220de50] __schedule at 816440d4 #18 [8800b220ded0] schedule at 81644899 #19 [8800b220def0] do_exit at 810530d0 #20 [8800b220df40] do_group_exit at 8105334c #21 [8800b220df70] sys_exit_group at 810533e2 #22 [8800b220df80] tracesys at 8164f109 (via system_call) RIP: 7fcc1a078ca8 RSP: 7fff62546c48 RFLAGS: 0246 RAX: ffda RBX: 8164f109 RCX: RDX: RSI: 003c RDI: RBP: 7fcc1a355840 R8: 00e7 R9: ffa8 R10: 7fcc1a969700 R11: 0246 R12: 810533e2 R13: 8800b220df78 R14: 01ad9c88 R15: 0001 ORIG_RAX: 00e7 CS: 0033 SS: 002b crash struct thread_info 0x8800b220c000 struct thread_info { task = 0x, exec_domain = 0x811bae66 __d_free+70, flags = 2, status = 0, cpu = 2988498392, saved_preempt_count = -30720, preempt_lazy_count = -112742225, addr_limit = { seg = 524802 }, restart_block = { fn = 0x88022fc91358, { futex = { uaddr = 0x80202, val = 3, flags = 0, bitset = 2988490752, time = 18446744071585425101, uaddr2 = 0x88022fc91358 }, nanosleep = { clockid = 524802, rmtp = 0x3, compat_rmtp = 0x8800b220c000, expires = 18446744071585425101 }, poll = { ufds = 0x80202, nfds = 3, has_timeout = 0, tv_sec = 18446612135302709248, tv_nsec = 18446744071585425101 } } }, sysenter_return = 0x, sig_on_uaccess_error = 0, uaccess_err = 0 } -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [ANNOUNCE] 3.14.3-rt5
On Fri, 2014-05-09 at 20:12 +0200, Sebastian Andrzej Siewior wrote: > Known issues: > > - bcache is disabled. > > - lazy preempt on x86_64 leads to a crash with some load. That is only with NO_HZ_FUL enabled here. Box blows the stack during task exit, eyeballing hasn't spotted the why. > - CPU hotplug works in general. Steven's test script however > deadlocks usually on the second invocation. My 64 core box runs for up to 14 hours, and never deadlocks.. it explodes in what looks like it should be an impossible manner instead. -Mike -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [ANNOUNCE] 3.14.3-rt5
09.05.2014 22:12, Sebastian Andrzej Siewior пишет: The delta patch against v3.14.3-rt4 is appended below and can be found Where delta from 3 to 4 ? -- Pavel. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[ANNOUNCE] 3.14.3-rt5
Dear RT folks! I'm pleased to announce the v3.14.3-rt5 patch set. Changes since v3.14.3-rt4 - remove one of the two identical rt_mutex_init() definitions. A patch from Steven Rostedt - use EXPORT_SYMBOL() on __rt_mutex_init() and rt_down_write_nested_lock(). The former was dropped accidently and is needed by some binary only modules, the latter was requsted by the f2fs module. Patch by Joakim Hernberg. - during v3.14 porting I accidently dropped preempt_check_resched() in the non-preempt case which means configs non-preempt configs did not build. Reported by Yang Honggang. - NETCONSOLE is no longer disabled on RT. Daniel Bristot de Oliveira did some testing and did not find anything wrong it. That means it can be enabled if someone needs/wants it. - rt_read_lock() uses rwlock_acquire() instead of rwlock_acquire_read() for lockdep annotation. It was different compared to what the trylock variant used and on RT both act the same way. Patch by Mike Galbraith. - the tracing code wrongly disable preemption while shrinking the ring buffer. Reported by Stanislav Meduna. Known issues: - bcache is disabled. - lazy preempt on x86_64 leads to a crash with some load. - CPU hotplug works in general. Steven's test script however deadlocks usually on the second invocation. The delta patch against v3.14.3-rt4 is appended below and can be found here: https://www.kernel.org/pub/linux/kernel/projects/rt/3.14/incr/patch-3.14.3-rt4-rt5.patch.xz The RT patch against 3.14.3 can be found here: https://www.kernel.org/pub/linux/kernel/projects/rt/3.14/patch-3.14.3-rt5.patch.xz The split quilt queue is available at: https://www.kernel.org/pub/linux/kernel/projects/rt/3.14/patches-3.14.3-rt5.tar.xz Sebastian diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 33a4a85..494b888 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -160,7 +160,6 @@ config VXLAN config NETCONSOLE tristate "Network console logging support" - depends on !PREEMPT_RT_FULL ---help--- If you want to log kernel messages over the network, enable this. See for details. diff --git a/include/linux/preempt.h b/include/linux/preempt.h index 5b2cdf4..66587bf 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -149,6 +149,7 @@ do { \ #define sched_preempt_enable_no_resched() barrier() #define preempt_enable_no_resched()barrier() #define preempt_enable() barrier() +#define preempt_check_resched()do { } while (0) #define preempt_disable_notrace() barrier() #define preempt_enable_no_resched_notrace()barrier() diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h index f8f3dfdd2..edb77fd 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -59,23 +59,18 @@ struct hrtimer_sleeper; # define rt_mutex_debug_check_no_locks_held(task) do { } while (0) #endif -#ifdef CONFIG_DEBUG_RT_MUTEXES -# define __DEBUG_RT_MUTEX_INITIALIZER(mutexname) \ - , .name = #mutexname, .file = __FILE__, .line = __LINE__ # define rt_mutex_init(mutex) \ do {\ raw_spin_lock_init(&(mutex)->wait_lock);\ __rt_mutex_init(mutex, #mutex); \ } while (0) +#ifdef CONFIG_DEBUG_RT_MUTEXES +# define __DEBUG_RT_MUTEX_INITIALIZER(mutexname) \ + , .name = #mutexname, .file = __FILE__, .line = __LINE__ extern void rt_mutex_debug_task_free(struct task_struct *tsk); #else # define __DEBUG_RT_MUTEX_INITIALIZER(mutexname) -# define rt_mutex_init(mutex) \ -do { \ -raw_spin_lock_init(&(mutex)->wait_lock); \ -__rt_mutex_init(mutex, #mutex);\ -} while (0) # define rt_mutex_debug_task_free(t) do { } while (0) #endif diff --git a/kernel/locking/rt.c b/kernel/locking/rt.c index 055a3df..90b8ba0 100644 --- a/kernel/locking/rt.c +++ b/kernel/locking/rt.c @@ -250,7 +250,7 @@ void __lockfunc rt_read_lock(rwlock_t *rwlock) */ if (rt_mutex_owner(lock) != current) { migrate_disable(); - rwlock_acquire_read(>dep_map, 0, 0, _RET_IP_); + rwlock_acquire(>dep_map, 0, 0, _RET_IP_); __rt_spin_lock(lock); } rwlock->read_depth++; @@ -366,6 +366,7 @@ void rt_down_write_nested_lock(struct rw_semaphore *rwsem, rwsem_acquire_nest(>dep_map, 0, 0, nest, _RET_IP_); rt_mutex_lock(>lock); } +EXPORT_SYMBOL(rt_down_write_nested_lock); int rt_down_read_trylock(struct rw_semaphore *rwsem) { diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c index 5c5cc76..fbf152b 100644 --- a/kernel/locking/rtmutex.c +++
[ANNOUNCE] 3.14.3-rt5
Dear RT folks! I'm pleased to announce the v3.14.3-rt5 patch set. Changes since v3.14.3-rt4 - remove one of the two identical rt_mutex_init() definitions. A patch from Steven Rostedt - use EXPORT_SYMBOL() on __rt_mutex_init() and rt_down_write_nested_lock(). The former was dropped accidently and is needed by some binary only modules, the latter was requsted by the f2fs module. Patch by Joakim Hernberg. - during v3.14 porting I accidently dropped preempt_check_resched() in the non-preempt case which means configs non-preempt configs did not build. Reported by Yang Honggang. - NETCONSOLE is no longer disabled on RT. Daniel Bristot de Oliveira did some testing and did not find anything wrong it. That means it can be enabled if someone needs/wants it. - rt_read_lock() uses rwlock_acquire() instead of rwlock_acquire_read() for lockdep annotation. It was different compared to what the trylock variant used and on RT both act the same way. Patch by Mike Galbraith. - the tracing code wrongly disable preemption while shrinking the ring buffer. Reported by Stanislav Meduna. Known issues: - bcache is disabled. - lazy preempt on x86_64 leads to a crash with some load. - CPU hotplug works in general. Steven's test script however deadlocks usually on the second invocation. The delta patch against v3.14.3-rt4 is appended below and can be found here: https://www.kernel.org/pub/linux/kernel/projects/rt/3.14/incr/patch-3.14.3-rt4-rt5.patch.xz The RT patch against 3.14.3 can be found here: https://www.kernel.org/pub/linux/kernel/projects/rt/3.14/patch-3.14.3-rt5.patch.xz The split quilt queue is available at: https://www.kernel.org/pub/linux/kernel/projects/rt/3.14/patches-3.14.3-rt5.tar.xz Sebastian diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 33a4a85..494b888 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -160,7 +160,6 @@ config VXLAN config NETCONSOLE tristate Network console logging support - depends on !PREEMPT_RT_FULL ---help--- If you want to log kernel messages over the network, enable this. See file:Documentation/networking/netconsole.txt for details. diff --git a/include/linux/preempt.h b/include/linux/preempt.h index 5b2cdf4..66587bf 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -149,6 +149,7 @@ do { \ #define sched_preempt_enable_no_resched() barrier() #define preempt_enable_no_resched()barrier() #define preempt_enable() barrier() +#define preempt_check_resched()do { } while (0) #define preempt_disable_notrace() barrier() #define preempt_enable_no_resched_notrace()barrier() diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h index f8f3dfdd2..edb77fd 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -59,23 +59,18 @@ struct hrtimer_sleeper; # define rt_mutex_debug_check_no_locks_held(task) do { } while (0) #endif -#ifdef CONFIG_DEBUG_RT_MUTEXES -# define __DEBUG_RT_MUTEX_INITIALIZER(mutexname) \ - , .name = #mutexname, .file = __FILE__, .line = __LINE__ # define rt_mutex_init(mutex) \ do {\ raw_spin_lock_init((mutex)-wait_lock);\ __rt_mutex_init(mutex, #mutex); \ } while (0) +#ifdef CONFIG_DEBUG_RT_MUTEXES +# define __DEBUG_RT_MUTEX_INITIALIZER(mutexname) \ + , .name = #mutexname, .file = __FILE__, .line = __LINE__ extern void rt_mutex_debug_task_free(struct task_struct *tsk); #else # define __DEBUG_RT_MUTEX_INITIALIZER(mutexname) -# define rt_mutex_init(mutex) \ -do { \ -raw_spin_lock_init((mutex)-wait_lock); \ -__rt_mutex_init(mutex, #mutex);\ -} while (0) # define rt_mutex_debug_task_free(t) do { } while (0) #endif diff --git a/kernel/locking/rt.c b/kernel/locking/rt.c index 055a3df..90b8ba0 100644 --- a/kernel/locking/rt.c +++ b/kernel/locking/rt.c @@ -250,7 +250,7 @@ void __lockfunc rt_read_lock(rwlock_t *rwlock) */ if (rt_mutex_owner(lock) != current) { migrate_disable(); - rwlock_acquire_read(rwlock-dep_map, 0, 0, _RET_IP_); + rwlock_acquire(rwlock-dep_map, 0, 0, _RET_IP_); __rt_spin_lock(lock); } rwlock-read_depth++; @@ -366,6 +366,7 @@ void rt_down_write_nested_lock(struct rw_semaphore *rwsem, rwsem_acquire_nest(rwsem-dep_map, 0, 0, nest, _RET_IP_); rt_mutex_lock(rwsem-lock); } +EXPORT_SYMBOL(rt_down_write_nested_lock); int rt_down_read_trylock(struct rw_semaphore *rwsem) { diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c index
Re: [ANNOUNCE] 3.14.3-rt5
09.05.2014 22:12, Sebastian Andrzej Siewior пишет: The delta patch against v3.14.3-rt4 is appended below and can be found Where delta from 3 to 4 ? -- Pavel. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [ANNOUNCE] 3.14.3-rt5
On Fri, 2014-05-09 at 20:12 +0200, Sebastian Andrzej Siewior wrote: Known issues: - bcache is disabled. - lazy preempt on x86_64 leads to a crash with some load. That is only with NO_HZ_FUL enabled here. Box blows the stack during task exit, eyeballing hasn't spotted the why. - CPU hotplug works in general. Steven's test script however deadlocks usually on the second invocation. My 64 core box runs for up to 14 hours, and never deadlocks.. it explodes in what looks like it should be an impossible manner instead. -Mike -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/