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

Rafael J. Wysocki
2009-11-09T17:35:08Z

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.

Thanks,
Rafael