* [rfc] disable scheduler warnings during oopses. @ 2011-12-22 21:39 Dave Jones 2011-12-23 10:19 ` Ingo Molnar 2011-12-23 13:18 ` [tip:sched/core] sched: Disable " tip-bot for Dave Jones 0 siblings, 2 replies; 5+ messages in thread From: Dave Jones @ 2011-12-22 21:39 UTC (permalink / raw) To: Linux Kernel The panic-on-framebuffer code seems to cause a schedule to occur during an oops. This causes a bunch of extra spew as can be seen in https://bugzilla.redhat.com/attachment.cgi?id=549230 Would this (untested) patch be sufficient here, or does the drm code need rearchitecting to not perform allocations during panic ? Signed-off-by: Dave Jones <davej@redhat.com> diff --git a/kernel/sched.c b/kernel/sched.c index d6b149c..627f788 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4321,6 +4321,9 @@ static noinline void __schedule_bug(struct task_struct *prev) { struct pt_regs *regs = get_irq_regs(); + if (oops_in_progress) + return; + printk(KERN_ERR "BUG: scheduling while atomic: %s/%d/0x%08x\n", prev->comm, prev->pid, preempt_count()); ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [rfc] disable scheduler warnings during oopses. 2011-12-22 21:39 [rfc] disable scheduler warnings during oopses Dave Jones @ 2011-12-23 10:19 ` Ingo Molnar 2011-12-23 12:06 ` Peter Zijlstra 2011-12-23 13:18 ` [tip:sched/core] sched: Disable " tip-bot for Dave Jones 1 sibling, 1 reply; 5+ messages in thread From: Ingo Molnar @ 2011-12-23 10:19 UTC (permalink / raw) To: Dave Jones, Linux Kernel Cc: Peter Zijlstra, Mike Galbraith, Linus Torvalds, Dave Airlie, Andrew Morton * Dave Jones <davej@redhat.com> wrote: > The panic-on-framebuffer code seems to cause a schedule > to occur during an oops. This causes a bunch of extra > spew as can be seen in https://bugzilla.redhat.com/attachment.cgi?id=549230 > > Would this (untested) patch be sufficient here, or does the drm > code need rearchitecting to not perform allocations during panic ? > > Signed-off-by: Dave Jones <davej@redhat.com> > > diff --git a/kernel/sched.c b/kernel/sched.c > index d6b149c..627f788 100644 > --- a/kernel/sched.c > +++ b/kernel/sched.c > @@ -4321,6 +4321,9 @@ static noinline void __schedule_bug(struct task_struct *prev) > { > struct pt_regs *regs = get_irq_regs(); > > + if (oops_in_progress) > + return; > + > printk(KERN_ERR "BUG: scheduling while atomic: %s/%d/0x%08x\n", > prev->comm, prev->pid, preempt_count()); > Doing that makes sense - if an oops in going on we don't want to produce recursive messages. Note that scheduler code has been moved to kernel/sched/, so i've changed the patch accordingly. Note that despite that, the DRM code *definitely* needs to be fixed to not allocate and schedule while printing on the framebuffer in KMS mode ... Thanks, Ingo ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [rfc] disable scheduler warnings during oopses. 2011-12-23 10:19 ` Ingo Molnar @ 2011-12-23 12:06 ` Peter Zijlstra 2011-12-23 13:42 ` Ingo Molnar 0 siblings, 1 reply; 5+ messages in thread From: Peter Zijlstra @ 2011-12-23 12:06 UTC (permalink / raw) To: Ingo Molnar Cc: Dave Jones, Linux Kernel, Mike Galbraith, Linus Torvalds, Dave Airlie, Andrew Morton On Fri, 2011-12-23 at 11:19 +0100, Ingo Molnar wrote: > * Dave Jones <davej@redhat.com> wrote: > > > The panic-on-framebuffer code seems to cause a schedule > > to occur during an oops. This causes a bunch of extra > > spew as can be seen in https://bugzilla.redhat.com/attachment.cgi?id=549230 > > > > Would this (untested) patch be sufficient here, or does the drm > > code need rearchitecting to not perform allocations during panic ? > > > > Signed-off-by: Dave Jones <davej@redhat.com> > > > > diff --git a/kernel/sched.c b/kernel/sched.c > > index d6b149c..627f788 100644 > > --- a/kernel/sched.c > > +++ b/kernel/sched.c > > @@ -4321,6 +4321,9 @@ static noinline void __schedule_bug(struct task_struct *prev) > > { > > struct pt_regs *regs = get_irq_regs(); > > > > + if (oops_in_progress) > > + return; > > + > > printk(KERN_ERR "BUG: scheduling while atomic: %s/%d/0x%08x\n", > > prev->comm, prev->pid, preempt_count()); > > > > Doing that makes sense - if an oops in going on we don't want to > produce recursive messages. Note that scheduler code has been > moved to kernel/sched/, so i've changed the patch accordingly. Urgh I would actually argue against merging this. What the KSM console does is horridly wrong, and simply papering over it doesn't help its cause. Its up there with USB-Serial console on wrongness. > Note that despite that, the DRM code *definitely* needs to be > fixed to not allocate and schedule while printing on the > framebuffer in KMS mode ... For sure, its plain insane and completely unreliable. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [rfc] disable scheduler warnings during oopses. 2011-12-23 12:06 ` Peter Zijlstra @ 2011-12-23 13:42 ` Ingo Molnar 0 siblings, 0 replies; 5+ messages in thread From: Ingo Molnar @ 2011-12-23 13:42 UTC (permalink / raw) To: Peter Zijlstra Cc: Dave Jones, Linux Kernel, Mike Galbraith, Linus Torvalds, Dave Airlie, Andrew Morton * Peter Zijlstra <a.p.zijlstra@chello.nl> wrote: > On Fri, 2011-12-23 at 11:19 +0100, Ingo Molnar wrote: > > * Dave Jones <davej@redhat.com> wrote: > > > > > The panic-on-framebuffer code seems to cause a schedule > > > to occur during an oops. This causes a bunch of extra > > > spew as can be seen in https://bugzilla.redhat.com/attachment.cgi?id=549230 > > > > > > Would this (untested) patch be sufficient here, or does the drm > > > code need rearchitecting to not perform allocations during panic ? > > > > > > Signed-off-by: Dave Jones <davej@redhat.com> > > > > > > diff --git a/kernel/sched.c b/kernel/sched.c > > > index d6b149c..627f788 100644 > > > --- a/kernel/sched.c > > > +++ b/kernel/sched.c > > > @@ -4321,6 +4321,9 @@ static noinline void __schedule_bug(struct task_struct *prev) > > > { > > > struct pt_regs *regs = get_irq_regs(); > > > > > > + if (oops_in_progress) > > > + return; > > > + > > > printk(KERN_ERR "BUG: scheduling while atomic: %s/%d/0x%08x\n", > > > prev->comm, prev->pid, preempt_count()); > > > > > > > Doing that makes sense - if an oops in going on we don't > > want to produce recursive messages. Note that scheduler code > > has been moved to kernel/sched/, so i've changed the patch > > accordingly. > > Urgh I would actually argue against merging this. What the KSM > console does is horridly wrong, and simply papering over it > doesn't help its cause. Its up there with USB-Serial console > on wrongness. Well, i agree in principle, but not escallating an already bad scenario would be a basic robustness rule. We do skip certain things on oops_in_progress already. Linus, Andrew, what would be your preference? Thanks, Ingo ^ permalink raw reply [flat|nested] 5+ messages in thread
* [tip:sched/core] sched: Disable scheduler warnings during oopses 2011-12-22 21:39 [rfc] disable scheduler warnings during oopses Dave Jones 2011-12-23 10:19 ` Ingo Molnar @ 2011-12-23 13:18 ` tip-bot for Dave Jones 1 sibling, 0 replies; 5+ messages in thread From: tip-bot for Dave Jones @ 2011-12-23 13:18 UTC (permalink / raw) To: linux-tip-commits; +Cc: linux-kernel, hpa, mingo, davej, tglx, mingo Commit-ID: 664dfa65e84429d0b68694483e1de7365c7c56fb Gitweb: http://git.kernel.org/tip/664dfa65e84429d0b68694483e1de7365c7c56fb Author: Dave Jones <davej@redhat.com> AuthorDate: Thu, 22 Dec 2011 16:39:30 -0500 Committer: Ingo Molnar <mingo@elte.hu> CommitDate: Fri, 23 Dec 2011 11:20:50 +0100 sched: Disable scheduler warnings during oopses The panic-on-framebuffer code seems to cause a schedule to occur during an oops. This causes a bunch of extra spew as can be seen in: https://bugzilla.redhat.com/attachment.cgi?id=549230 Don't do scheduler debug checks when we are oopsing already. Signed-off-by: Dave Jones <davej@redhat.com> Link: http://lkml.kernel.org/r/20111222213929.GA4722@redhat.com Signed-off-by: Ingo Molnar <mingo@elte.hu> --- kernel/sched/core.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 081ece2..8ffe523 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -3077,6 +3077,9 @@ static noinline void __schedule_bug(struct task_struct *prev) { struct pt_regs *regs = get_irq_regs(); + if (oops_in_progress) + return; + printk(KERN_ERR "BUG: scheduling while atomic: %s/%d/0x%08x\n", prev->comm, prev->pid, preempt_count()); ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-12-23 13:44 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-12-22 21:39 [rfc] disable scheduler warnings during oopses Dave Jones 2011-12-23 10:19 ` Ingo Molnar 2011-12-23 12:06 ` Peter Zijlstra 2011-12-23 13:42 ` Ingo Molnar 2011-12-23 13:18 ` [tip:sched/core] sched: Disable " tip-bot for Dave Jones
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.