2007-08-25 11:29:50

by David Rodriguez

[permalink] [raw]
Subject: Problem with CFS V20 and Suspend2/tuxonice

I'm using 2.6.22.5 with cfs v20.3 and suspend2 2.2.10.2.
With that combination, suspend is not working anymore (with cfs v19
was working).
Stops on suspend in "Suspending tasks"
Looking at cfs patch, I managed to change the migration_thread,
adding again the try_to_freeze() removed in last patch and now the
suspend finished, but resume not work. Of course I don't know why that
was removed, and rewriting it is not a solution, but I want to report
it.

All that in a core duo machine.


2007-08-25 12:54:17

by Fabio Comolli

[permalink] [raw]
Subject: Re: Problem with CFS V20 and Suspend2/tuxonice

Reproduced on a Intel Centrino based laptop with gentoo kamikaze7
sources (http://forums.gentoo.org/viewtopic-t-577970.html)



On 8/25/07, David Rodriguez <[email protected]> wrote:
> I'm using 2.6.22.5 with cfs v20.3 and suspend2 2.2.10.2.
> With that combination, suspend is not working anymore (with cfs v19
> was working).
> Stops on suspend in "Suspending tasks"
> Looking at cfs patch, I managed to change the migration_thread,
> adding again the try_to_freeze() removed in last patch and now the
> suspend finished, but resume not work. Of course I don't know why that
> was removed, and rewriting it is not a solution, but I want to report
> it.
>
> All that in a core duo machine.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

2007-08-25 17:14:53

by Christian Hesse

[permalink] [raw]
Subject: Re: [Suspend2-devel] Problem with CFS V20 and Suspend2/tuxonice

On Saturday 25 August 2007, Fabio Comolli wrote:
> On 8/25/07, David Rodriguez <[email protected]> wrote:
> > I'm using 2.6.22.5 with cfs v20.3 and suspend2 2.2.10.2.
> > With that combination, suspend is not working anymore (with cfs v19
> > was working).
> > Stops on suspend in "Suspending tasks"
> > Looking at cfs patch, I managed to change the migration_thread,
> > adding again the try_to_freeze() removed in last patch and now the
> > suspend finished, but resume not work. Of course I don't know why that
> > was removed, and rewriting it is not a solution, but I want to report
> > it.
>
> Reproduced on a Intel Centrino based laptop with gentoo kamikaze7
> sources (http://forums.gentoo.org/viewtopic-t-577970.html)

Same problem here: Core Duo, Kernel 2.6.22.5, Suspend 2.2.10, CFS v20.2.
--
Regards,
Chris


Attachments:
(No filename) (825.00 B)
signature.asc (189.00 B)
This is a digitally signed message part.
Download all attachments

2007-08-25 17:59:38

by Rann Bar-On

[permalink] [raw]
Subject: Re: Problem with CFS V20 and Suspend2/tuxonice

Same problem on my centrino duo. Reverting to cfs v19 fixes it.

Please personally CC me on replies, as I am not on the list.


> Reproduced on a Intel Centrino based laptop with gentoo kamikaze7
> sources (http://forums.gentoo.org/viewtopic-t-577970.html)



> On 8/25/07, David Rodriguez <[email protected]> wrote:
>> I'm using 2.6.22.5 with cfs v20.3 and suspend2 2.2.10.2.
>> With that combination, suspend is not working anymore (with cfs v19
>> was working).
>> Stops on suspend in "Suspending tasks"
>> Looking at cfs patch, I managed to change the migration_thread,
>> adding again the try_to_freeze() removed in last patch and now the
>> suspend finished, but resume not work. Of course I don't know why that
>> was removed, and rewriting it is not a solution, but I want to report
>> it.
>>
>> All that in a core duo machine.
>> -
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel"
>in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at http://www.tux.org/lkml/
>>
>-
>To unsubscribe from this list: send the line "unsubscribe linux-kernel"
>in
>the body of a message to [email protected]
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/

2007-08-25 18:49:37

by Matthias Hensler

[permalink] [raw]
Subject: Re: [Suspend2-devel] Problem with CFS V20 and Suspend2/tuxonice

Hi!

On Sat, Aug 25, 2007 at 06:52:20PM +0200, Christian Hesse wrote:
> On Saturday 25 August 2007, Fabio Comolli wrote:
> > On 8/25/07, David Rodriguez <[email protected]> wrote:
> > > I'm using 2.6.22.5 with cfs v20.3 and suspend2 2.2.10.2. With
> > > that combination, suspend is not working anymore (with cfs v19 was
> > > working). Stops on suspend in "Suspending tasks"
> > Reproduced on a Intel Centrino based laptop with gentoo kamikaze7
> > sources (http://forums.gentoo.org/viewtopic-t-577970.html)
>
> Same problem here: Core Duo, Kernel 2.6.22.5, Suspend 2.2.10, CFS
> v20.2.

Me too for 2.6.22.5, TuxOnIce 2.2.10 and Centrino based notebook.

Regards,
Matthias


Attachments:
(No filename) (680.00 B)
(No filename) (307.00 B)
Download all attachments

2007-08-25 19:02:00

by Ingo Molnar

[permalink] [raw]
Subject: Re: Problem with CFS V20 and Suspend2/tuxonice


* David Rodriguez <[email protected]> wrote:

> I'm using 2.6.22.5 with cfs v20.3 and suspend2 2.2.10.2. With that
> combination, suspend is not working anymore (with cfs v19 was
> working). Stops on suspend in "Suspending tasks" Looking at cfs patch,
> I managed to change the migration_thread, adding again the
> try_to_freeze() removed in last patch and now the suspend finished,
> but resume not work. Of course I don't know why that was removed, and
> rewriting it is not a solution, but I want to report it.

could you try the patch below, does it fix this problem?

Ingo

Index: linux-cfs-2.6.22.5.q/kernel/sched.c
===================================================================
--- linux-cfs-2.6.22.5.q.orig/kernel/sched.c
+++ linux-cfs-2.6.22.5.q/kernel/sched.c
@@ -5043,6 +5043,8 @@ static int migration_thread(void *data)
struct migration_req *req;
struct list_head *head;

+ try_to_freeze();
+
spin_lock_irq(&rq->lock);

if (cpu_is_offline(cpu)) {
@@ -5399,6 +5401,7 @@ migration_call(struct notifier_block *nf
p = kthread_create(migration_thread, hcpu, "migration/%d", cpu);
if (IS_ERR(p))
return NOTIFY_BAD;
+ p->flags |= PF_NOFREEZE;
kthread_bind(p, cpu);
/* Must be high prio: stop_machine expects to yield to it. */
rq = task_rq_lock(p, &flags);

2007-08-25 19:02:31

by Ingo Molnar

[permalink] [raw]
Subject: Re: [Suspend2-devel] Problem with CFS V20 and Suspend2/tuxonice


* Christian Hesse <[email protected]> wrote:

> > Reproduced on a Intel Centrino based laptop with gentoo kamikaze7
> > sources (http://forums.gentoo.org/viewtopic-t-577970.html)
>
> Same problem here: Core Duo, Kernel 2.6.22.5, Suspend 2.2.10, CFS v20.2.

please try the patch below - does it fix the problem?

Ingo

Index: linux-cfs-2.6.22.5.q/kernel/sched.c
===================================================================
--- linux-cfs-2.6.22.5.q.orig/kernel/sched.c
+++ linux-cfs-2.6.22.5.q/kernel/sched.c
@@ -5043,6 +5043,8 @@ static int migration_thread(void *data)
struct migration_req *req;
struct list_head *head;

+ try_to_freeze();
+
spin_lock_irq(&rq->lock);

if (cpu_is_offline(cpu)) {
@@ -5399,6 +5401,7 @@ migration_call(struct notifier_block *nf
p = kthread_create(migration_thread, hcpu, "migration/%d", cpu);
if (IS_ERR(p))
return NOTIFY_BAD;
+ p->flags |= PF_NOFREEZE;
kthread_bind(p, cpu);
/* Must be high prio: stop_machine expects to yield to it. */
rq = task_rq_lock(p, &flags);

2007-08-25 19:02:51

by Ingo Molnar

[permalink] [raw]
Subject: Re: [Suspend2-devel] Problem with CFS V20 and Suspend2/tuxonice


* Matthias Hensler <[email protected]> wrote:

> > Same problem here: Core Duo, Kernel 2.6.22.5, Suspend 2.2.10, CFS
> > v20.2.
>
> Me too for 2.6.22.5, TuxOnIce 2.2.10 and Centrino based notebook.

possible bugfix below.

Ingo

Index: linux-cfs-2.6.22.5.q/kernel/sched.c
===================================================================
--- linux-cfs-2.6.22.5.q.orig/kernel/sched.c
+++ linux-cfs-2.6.22.5.q/kernel/sched.c
@@ -5043,6 +5043,8 @@ static int migration_thread(void *data)
struct migration_req *req;
struct list_head *head;

+ try_to_freeze();
+
spin_lock_irq(&rq->lock);

if (cpu_is_offline(cpu)) {
@@ -5399,6 +5401,7 @@ migration_call(struct notifier_block *nf
p = kthread_create(migration_thread, hcpu, "migration/%d", cpu);
if (IS_ERR(p))
return NOTIFY_BAD;
+ p->flags |= PF_NOFREEZE;
kthread_bind(p, cpu);
/* Must be high prio: stop_machine expects to yield to it. */
rq = task_rq_lock(p, &flags);

2007-08-25 19:39:55

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: Problem with CFS V20 and Suspend2/tuxonice

On Saturday, 25 August 2007 21:01, Ingo Molnar wrote:
>
> * David Rodriguez <[email protected]> wrote:
>
> > I'm using 2.6.22.5 with cfs v20.3 and suspend2 2.2.10.2. With that
> > combination, suspend is not working anymore (with cfs v19 was
> > working). Stops on suspend in "Suspending tasks" Looking at cfs patch,
> > I managed to change the migration_thread, adding again the
> > try_to_freeze() removed in last patch and now the suspend finished,
> > but resume not work. Of course I don't know why that was removed, and
> > rewriting it is not a solution, but I want to report it.
>
> could you try the patch below, does it fix this problem?
>
> Ingo
>
> Index: linux-cfs-2.6.22.5.q/kernel/sched.c
> ===================================================================
> --- linux-cfs-2.6.22.5.q.orig/kernel/sched.c
> +++ linux-cfs-2.6.22.5.q/kernel/sched.c
> @@ -5043,6 +5043,8 @@ static int migration_thread(void *data)
> struct migration_req *req;
> struct list_head *head;
>
> + try_to_freeze();
> +
> spin_lock_irq(&rq->lock);
>
> if (cpu_is_offline(cpu)) {
> @@ -5399,6 +5401,7 @@ migration_call(struct notifier_block *nf
> p = kthread_create(migration_thread, hcpu, "migration/%d", cpu);
> if (IS_ERR(p))
> return NOTIFY_BAD;
> + p->flags |= PF_NOFREEZE;

Yeah.

In 2.6.23-rc all kernel threads are PF_NOFREEZE by default.

> kthread_bind(p, cpu);
> /* Must be high prio: stop_machine expects to yield to it. */
> rq = task_rq_lock(p, &flags);
> -

Greetings,
Rafael


--
"Premature optimization is the root of all evil." - Donald Knuth

2007-08-25 20:14:48

by Christian Hesse

[permalink] [raw]
Subject: Re: [Suspend2-devel] Problem with CFS V20 and Suspend2/tuxonice

On Saturday 25 August 2007, Ingo Molnar wrote:
> * Christian Hesse <[email protected]> wrote:
> > > Reproduced on a Intel Centrino based laptop with gentoo kamikaze7
> > > sources (http://forums.gentoo.org/viewtopic-t-577970.html)
> >
> > Same problem here: Core Duo, Kernel 2.6.22.5, Suspend 2.2.10, CFS v20.2.
>
> please try the patch below - does it fix the problem?

Works for me. Thanks a lot!
--
Regards,
Chris


Attachments:
(No filename) (418.00 B)
signature.asc (189.00 B)
This is a digitally signed message part.
Download all attachments

2007-08-25 20:15:37

by David Rodriguez

[permalink] [raw]
Subject: Re: Problem with CFS V20 and Suspend2/tuxonice

2007/8/25, Ingo Molnar <[email protected]>:
>
> * David Rodriguez <[email protected]> wrote:
>
> > I'm using 2.6.22.5 with cfs v20.3 and suspend2 2.2.10.2. With that
> > combination, suspend is not working anymore (with cfs v19 was
> > working). Stops on suspend in "Suspending tasks" Looking at cfs patch,
> > I managed to change the migration_thread, adding again the
> > try_to_freeze() removed in last patch and now the suspend finished,
> > but resume not work. Of course I don't know why that was removed, and
> > rewriting it is not a solution, but I want to report it.
>
> could you try the patch below, does it fix this problem?
>
> Ingo
>
> Index: linux-cfs-2.6.22.5.q/kernel/sched.c
> ===================================================================
> --- linux-cfs-2.6.22.5.q.orig/kernel/sched.c
> +++ linux-cfs-2.6.22.5.q/kernel/sched.c
> @@ -5043,6 +5043,8 @@ static int migration_thread(void *data)
> struct migration_req *req;
> struct list_head *head;
>
> + try_to_freeze();
> +
> spin_lock_irq(&rq->lock);
>
> if (cpu_is_offline(cpu)) {
> @@ -5399,6 +5401,7 @@ migration_call(struct notifier_block *nf
> p = kthread_create(migration_thread, hcpu, "migration/%d", cpu);
> if (IS_ERR(p))
> return NOTIFY_BAD;
> + p->flags |= PF_NOFREEZE;
> kthread_bind(p, cpu);
> /* Must be high prio: stop_machine expects to yield to it. */
> rq = task_rq_lock(p, &flags);
>



Yes, it fixes the problem. Thanks

2007-08-27 12:08:49

by Pavel Machek

[permalink] [raw]
Subject: Re: [Suspend2-devel] Problem with CFS V20 and Suspend2/tuxonice

Hi!

> > > Same problem here: Core Duo, Kernel 2.6.22.5, Suspend 2.2.10, CFS
> > > v20.2.
> >
> > Me too for 2.6.22.5, TuxOnIce 2.2.10 and Centrino based notebook.
>
> possible bugfix below.
>
> Ingo
>
> Index: linux-cfs-2.6.22.5.q/kernel/sched.c
> ===================================================================
> --- linux-cfs-2.6.22.5.q.orig/kernel/sched.c
> +++ linux-cfs-2.6.22.5.q/kernel/sched.c
> @@ -5043,6 +5043,8 @@ static int migration_thread(void *data)
> struct migration_req *req;
> struct list_head *head;
>
> + try_to_freeze();
> +
> spin_lock_irq(&rq->lock);
>
> if (cpu_is_offline(cpu)) {

If it is NONFREEZE, you should not be trying to freeze it.

> @@ -5399,6 +5401,7 @@ migration_call(struct notifier_block *nf
> p = kthread_create(migration_thread, hcpu, "migration/%d", cpu);
> if (IS_ERR(p))
> return NOTIFY_BAD;
> + p->flags |= PF_NOFREEZE;
> kthread_bind(p, cpu);
> /* Must be high prio: stop_machine expects to yield to it. */
> rq = task_rq_lock(p, &flags);

...plus I believe are tasks are nonfreezable by default now...? Or is
that only in 2.6.23?
Pavel


--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-08-27 12:12:09

by Ingo Molnar

[permalink] [raw]
Subject: Re: [Suspend2-devel] Problem with CFS V20 and Suspend2/tuxonice


* Pavel Machek <[email protected]> wrote:

> > > Me too for 2.6.22.5, TuxOnIce 2.2.10 and Centrino based notebook.

> > + try_to_freeze();
> > +
> > spin_lock_irq(&rq->lock);
> >
> > if (cpu_is_offline(cpu)) {
>
> If it is NONFREEZE, you should not be trying to freeze it.

that fix is for .22 - the bug is a backporting bug. (i look .23's
sched.c and stuck it into .22)

Ingo

2007-08-27 12:15:44

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [Suspend2-devel] Problem with CFS V20 and Suspend2/tuxonice

On Monday, 27 August 2007 13:41, Pavel Machek wrote:
> Hi!
>
> > > > Same problem here: Core Duo, Kernel 2.6.22.5, Suspend 2.2.10, CFS
> > > > v20.2.
> > >
> > > Me too for 2.6.22.5, TuxOnIce 2.2.10 and Centrino based notebook.
> >
> > possible bugfix below.
> >
> > Ingo
> >
> > Index: linux-cfs-2.6.22.5.q/kernel/sched.c
> > ===================================================================
> > --- linux-cfs-2.6.22.5.q.orig/kernel/sched.c
> > +++ linux-cfs-2.6.22.5.q/kernel/sched.c
> > @@ -5043,6 +5043,8 @@ static int migration_thread(void *data)
> > struct migration_req *req;
> > struct list_head *head;
> >
> > + try_to_freeze();
> > +
> > spin_lock_irq(&rq->lock);
> >
> > if (cpu_is_offline(cpu)) {
>
> If it is NONFREEZE, you should not be trying to freeze it.
>
> > @@ -5399,6 +5401,7 @@ migration_call(struct notifier_block *nf
> > p = kthread_create(migration_thread, hcpu, "migration/%d", cpu);
> > if (IS_ERR(p))
> > return NOTIFY_BAD;
> > + p->flags |= PF_NOFREEZE;
> > kthread_bind(p, cpu);
> > /* Must be high prio: stop_machine expects to yield to it. */
> > rq = task_rq_lock(p, &flags);
>
> ...plus I believe are tasks are nonfreezable by default now...? Or is
> that only in 2.6.23?

Yes, only in 2.6.23-rc.

Greetings,
Rafael