* [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
* [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
* 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
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox