Re: Help needed: Resume problems in 2.6.32-rc, perhaps related to preempt_count leakage in keventd

From: Rafael J. Wysocki
Date: Mon Nov 09 2009 - 15:02:50 EST


On Monday 09 November 2009, Thomas Gleixner wrote:
> On Mon, 9 Nov 2009, Rafael J. Wysocki wrote:
> > On Monday 09 November 2009, Mike Galbraith wrote:
> > > On Mon, 2009-11-09 at 16:47 +0100, Rafael J. Wysocki wrote:
> > > > On Monday 09 November 2009, Mike Galbraith wrote:
> > >
> > > > > > Very likely. What did you do to fix it?
> > > > >
> > > > > You don't really wanna know. In 31 with newidle enabled, the below
> > > > > fixed it. It won't fix 32, though it might cure the resume problem.
> > > >
> > > > OK, I'll give it a try.
> >
> > It doesn't help.
> >
> > Also, I can reproduce the issue with current -git and kernel preepmtion
> > disabled.
> >
> > > I just tried to trigger badness via high speed online/offline combined
> > > with taskset with CONFIG_PREEMPT enabled, and couldn't make it explode.
> >
> > I'm not able to do it this way too, so resume seems to be necessary to trigger
> > it. I'm going try with the suspend debug in the "core" mode.
> >
> > > (damn, wish i could s2ram this box)
> >
> > That need not suffice. I have two other boxes that suspend and resume
> > correctly with 2.6.32-rc, AFAICS.
> >
> > However, there seems to be a systematic error somewhere, since the failure
> > always happens at the same place, ie. list_del_init(cwq->worklist.next); in
> > run_workqueue(), in preemptible as well as in non-preemptible kernels.
> >
> > Which is kind of strange, given the !list_empty(&cwq->worklist) test right
> > before it.
>
> Hmm, no. list_empty() just tells you whether the list is empty or
> not. It does not care whether the list is corrupted or not. Have you
> tried to run with list debugging enabled ?

I did, but the result was exactly the same as without it.

Also, I don't seem to be able to reproduce the issue without actually
suspending the box. I tried with offlining/onlining CPU1 and with
the /sys/power/pm_test "core" test and it didn't show up.

Thanks,
Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/