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

From: Ray Bryant
Date: Tue Jun 28 2005 - 16:55:44 EST


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@xxxxxxx raybry@xxxxxxxxxxxxx
The box said: "Requires Windows 98 or better",
so I installed Linux.
-----------------------------------------------
-
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/