lkml.org 
[lkml]   [2011]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCHSET] freezer: fix various bugs and simplify implementation
Date
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


\
 
 \ /
  Last update: 2011-08-19 23:01    [W:0.345 / U:0.744 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site