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

Pavel Machek
2007-08-27T12:08:49Z

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