Re: [RFC] Fix SMP brokenness for PF_FREEZE and make freezing usable for other purposes

Ray Bryant
2005-06-28T21:50:31Z

Christoph Lameter wrote:

<snip>

>
> Index: linux-2.6.12/kernel/power/process.c
> ===================================================================
> --- linux-2.6.12.orig/kernel/power/process.c 2005-06-27 05:20:15.000000000 +0000
> +++ linux-2.6.12/kernel/power/process.c 2005-06-27 05:22:00.000000000 +0000

<snip>

> @@ -69,12 +63,12 @@ int freeze_processes(void)
> unsigned long flags;
> if (!freezeable(p))
> continue;
> - if ((frozen(p)) ||
> + if ((p->flags & PF_FROZEN) ||
> (p->state == TASK_TRACED) ||
> (p->state == TASK_STOPPED))
> continue;
>
> - freeze(p);
> + set_thread_flag(TIF_FREEZE);

Shouldn't that be "set_ti_thread_flag(p->thread_info, TIF_FREEZE)"?
Otherwise you freeze current, not the thread "p".

> spin_lock_irqsave(&p->sighand->siglock, flags);
> signal_wake_up(p, 0);
> spin_unlock_irqrestore(&p->sighand->siglock, flags);
>

--
Best Regards,
Ray
-----------------------------------------------
Ray Bryant
512-453-9679 (work) 512-507-7807 (cell)
raybry@sgi.com raybry@austin.rr.com
The box said: "Requires Windows 98 or better",
so I installed Linux.
-----------------------------------------------