lkml.org 
[lkml]   [2012]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [ 17/27] Revert "sched, autogroup: Stop going ahead if autogroup is disabled"
On 12/06/2012 07:59 PM, Greg Kroah-Hartman wrote:
> 3.6-stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Mike Galbraith <efault@gmx.de>
>
> commit fd8ef11730f1d03d5d6555aa53126e9e34f52f12 upstream.
>
> This reverts commit 800d4d30c8f20bd728e5741a3b77c4859a613f7c.
>
> Between commits 8323f26ce342 ("sched: Fix race in task_group()") and
> 800d4d30c8f2 ("sched, autogroup: Stop going ahead if autogroup is
> disabled"), autogroup is a wreck.
>
> With both applied, all you have to do to crash a box is disable
> autogroup during boot up, then reboot.. boom, NULL pointer dereference
> due to commit 800d4d30c8f2 not allowing autogroup to move things, and
> commit 8323f26ce342 making that the only way to switch runqueues:
>
> BUG: unable to handle kernel NULL pointer dereference at (null)
> IP: [<ffffffff81063ac0>] effective_load.isra.43+0x50/0x90
> Pid: 7047, comm: systemd-user-se Not tainted 3.6.8-smp #7 MEDIONPC MS-7502/MS-7502
> RIP: effective_load.isra.43+0x50/0x90
> Process systemd-user-se (pid: 7047, threadinfo ffff880221dde000, task ffff88022618b3a0)
> Call Trace:
> select_task_rq_fair+0x255/0x780
> try_to_wake_up+0x156/0x2c0
> wake_up_state+0xb/0x10
> signal_wake_up+0x28/0x40
> complete_signal+0x1d6/0x250
> __send_signal+0x170/0x310
> send_signal+0x40/0x80
> do_send_sig_info+0x47/0x90
> group_send_sig_info+0x4a/0x70
> kill_pid_info+0x3a/0x60
> sys_kill+0x97/0x1a0
> ? vfs_read+0x120/0x160
> ? sys_read+0x45/0x90
> system_call_fastpath+0x16/0x1b
> Code: 49 0f af 41 50 31 d2 49 f7 f0 48 83 f8 01 48 0f 46 c6 48 2b 07 48 8b bf 40 01 00 00 48 85 ff 74 3a 45 31 c0 48 8b 8f 50 01 00 00 <48> 8b 11 4c 8b 89 80 00 00 00 49 89 d2 48 01 d0 45 8b 59 58 4c
> RIP [<ffffffff81063ac0>] effective_load.isra.43+0x50/0x90
> RSP <ffff880221ddfbd8>
> CR2: 0000000000000000
>
> Signed-off-by: Mike Galbraith <efault@gmx.de>
> Acked-by: Ingo Molnar <mingo@kernel.org>
> Cc: Yong Zhang <yong.zhang0@gmail.com>
> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>
> ---
> kernel/sched/auto_group.c | 4 ----
> kernel/sched/auto_group.h | 5 -----
> 2 files changed, 9 deletions(-)
>
> --- a/kernel/sched/auto_group.c
> +++ b/kernel/sched/auto_group.c
> @@ -143,15 +143,11 @@ autogroup_move_group(struct task_struct
>
> p->signal->autogroup = autogroup_kref_get(ag);
>
> - if (!ACCESS_ONCE(sysctl_sched_autogroup_enabled))
> - goto out;
> -
> t = p;
> do {
> sched_move_task(t);
> } while_each_thread(p, t);
>
> -out:
> unlock_task_sighand(p, &flags);
> autogroup_kref_put(prev);
> }
> --- a/kernel/sched/auto_group.h
> +++ b/kernel/sched/auto_group.h
> @@ -4,11 +4,6 @@
> #include <linux/rwsem.h>
>
> struct autogroup {
> - /*
> - * reference doesn't mean how many thread attach to this
> - * autogroup now. It just stands for the number of task
> - * could use this autogroup.
> - */
> struct kref kref;
> struct task_group *tg;
> struct rw_semaphore lock;
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
Hi Ben,

Will you also be including this patch in v3.5 stable? It has been
tested and confirmed
to resolve http://bugs.launchpad.net/bugs/1034099

Sincerely,

Joe Salisbury


\
 
 \ /
  Last update: 2012-12-07 19:01    [W:0.183 / U:0.096 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site