Re: [PATCHSET] freezer: fix various bugs and simplify implementation

From: Rafael J. Wysocki
Date: Fri Aug 19 2011 - 16:59:22 EST


On Friday, August 19, 2011, Tejun Heo wrote:
> Hello,
>
> The freezer code has developed a number of convolutions and bugs.
> It's now using five per-task flags - TIF_FREEZE, PF_FREEZING,
> PF_NOFREEZE, PF_FROZEN, PF_FREEZER_SKIP and PF_FREEZER_NOSIG, and at
> the same time has quite a few race conditions. PF_NOFREEZE
> modifications can race against PM freezer, cgroup_freezer can race
> against PM freezer, and so on.
>
> This patchset tries to simplify the freezer implementation and fix the
> various bugs. It makes the synchronization more straight forward and
> replaces TIF_FREEZE with directly checking freeze conditions which are
> in effect, which makes the whole thing much saner.
>
> This patchset removes TIF_FREEZE and PF_FREEZING. Also,
> PF_FREEZER_SKIP users are planned to move away from the flag and will
> be removed. It contains the following 16 patches.
>
> 0001-freezer-fix-current-state-restoration-race-in-refrig.patch
> 0002-freezer-don-t-unnecessarily-set-PF_NOFREEZE-explicit.patch
> 0003-freezer-unexport-refrigerator-and-update-try_to_free.patch
> 0004-freezer-implement-and-use-kthread_freezable_should_s.patch
> 0005-freezer-rename-thaw_process-to-__thaw_task-and-simpl.patch
> 0006-freezer-make-exiting-tasks-properly-unfreezable.patch
> 0007-freezer-don-t-distinguish-nosig-tasks-on-thaw.patch
> 0008-freezer-use-dedicated-lock-instead-of-task_lock-memo.patch
> 0009-freezer-make-freezing-indicate-freeze-condition-in-e.patch
> 0010-freezer-fix-set_freezable-_with_signal-race.patch
> 0011-freezer-kill-PF_FREEZING.patch
> 0012-freezer-clean-up-freeze_processes-failure-path.patch
> 0013-cgroup_freezer-prepare-for-removal-of-TIF_FREEZE.patch
> 0014-freezer-make-freezing-test-freeze-conditions-in-effe.patch
> 0015-freezer-remove-now-unused-TIF_FREEZE.patch
> 0016-freezer-remove-should_send_signal-and-update-frozen.patch
>
> This patchset is on top of the current linus#master (01b883358b "Merge
> git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc") and
> available in the following git branch.
>
> git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git freezer

Good work, thanks for doing this. I'd like this to go through my
tree if you don't mind, so please let me know when the patchset is
ready for me to pull from your branch.

Also please CC linux-pm on PM-related patches.

Thanks,
Rafael
--
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/