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

From: Pavel Machek
Date: Sun Jun 26 2005 - 23:23:10 EST


Hi!

> > > Why do you want to specify a parameter that is never used? It was quite confusing to me
> > > and I would think that such a parameter will also be confusing to others.
> >
> > Well, yes, it is slightly confusing, but such patch can go in through
> > different maintainers, and different pieces can come in at different
> > times.
>
> The cleanup patch is already in Linus' tree so the discussion is moot. So
> I think the basic API is now stable.

Okay, good. I was worried I'll have to push it myself.

> The other outstanding issues may best be addressed in the
> following way.
>
> 1. Have a semaphore to insure that allows control over the freezing
> process. Each action involving freezing of processes needs to first
> take the semaphore. This will insure that only the suspend code or the
> process migration code (or something else in the future) are freezing processes.
>
> 2. A completion handler seems to be the right instrument in the
> refrigerator and allows the removal of a lot of code.
>
> 3. I wish there would be a better way to handle the PF_FREEZE. Its like a
> signal delivery after all. Is there any way to define an in kernel signal?
> Or a way to make a process execute a certain bit of code?

Well... but kernel threads are simply not designed to handle signals,
that's why we had to add all those try_to_freeze()s.

> The following patch will still need to be verified to be correct,
> cleaned up to move code around and do the right thing with
> CONFIG_FREEZING CONFIG_PM and CONFIG_MIGRATE???

I'm not able to test the patch now (have to get some sleep, etc), but
it looks good.

Pavel
--
Boycott Kodak -- for their patent abuse against Java.
-
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/