public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL pm/for-next] pm: freezer updates
@ 2011-11-03 22:31 Tejun Heo
  2011-11-06  0:01 ` Rafael J. Wysocki
  2011-11-21 20:38 ` Tejun Heo
  0 siblings, 2 replies; 9+ messages in thread
From: Tejun Heo @ 2011-11-03 22:31 UTC (permalink / raw)
  To: Rafael J. Wysocki, linux-pm; +Cc: linux-kernel

Hello, Rafael.

This is pull request for the following pending patches[ets].

 [1] freezer: fix various bugs and simplify implementation, take#2
 [2] usb_storage: don't use set_freezable_with_signal()
 [3] freezer: kill unused set_freezable_with_signal()
 [4] freezer: fix wait_event_freezable/__thaw_task races

The patches are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git pm-freezer

Oleg Nesterov (1):
      freezer: fix wait_event_freezable/__thaw_task races

Tejun Heo (22):
      freezer: fix current->state restoration race in refrigerator()
      freezer: don't unnecessarily set PF_NOFREEZE explicitly
      freezer: unexport refrigerator() and update try_to_freeze() slightly
      freezer: implement and use kthread_freezable_should_stop()
      freezer: rename thaw_process() to __thaw_task() and simplify the implementation
      freezer: remove racy clear_freeze_flag() and set PF_NOFREEZE on dead tasks
      freezer: don't distinguish nosig tasks on thaw
      freezer: use dedicated lock instead of task_lock() + memory barrier
      freezer: make freezing indicate freeze condition in effect
      freezer: test freezable conditions while holding freezer_lock
      freezer: kill PF_FREEZING
      freezer: clean up freeze_processes() failure path
      cgroup_freezer: prepare for removal of TIF_FREEZE
      freezer: make freezing() test freeze conditions in effect instead of TIF_FREEZE
      freezer: remove now unused TIF_FREEZE
      freezer: remove should_send_signal() and update frozen()
      freezer: fix set_freezable[_with_signal]() race
      freezer: restructure __refrigerator()
      freezer: use lock_task_sighand() in fake_signal_wake_up()
      freezer: remove unused @sig_only from freeze_task()
      usb_storage: don't use set_freezable_with_signal()
      freezer: kill unused set_freezable_with_signal()

 Documentation/power/freezing-of-tasks.txt |   14 +-
 arch/alpha/include/asm/thread_info.h      |    2 -
 arch/arm/include/asm/thread_info.h        |    2 -
 arch/avr32/include/asm/thread_info.h      |    2 -
 arch/blackfin/include/asm/thread_info.h   |    2 -
 arch/cris/include/asm/thread_info.h       |    2 -
 arch/frv/include/asm/thread_info.h        |    2 -
 arch/h8300/include/asm/thread_info.h      |    2 -
 arch/ia64/include/asm/thread_info.h       |    2 -
 arch/m32r/include/asm/thread_info.h       |    2 -
 arch/m68k/include/asm/thread_info.h       |    1 -
 arch/microblaze/include/asm/thread_info.h |    2 -
 arch/mips/include/asm/thread_info.h       |    2 -
 arch/mn10300/include/asm/thread_info.h    |    2 -
 arch/parisc/include/asm/thread_info.h     |    2 -
 arch/powerpc/include/asm/thread_info.h    |    2 -
 arch/s390/include/asm/thread_info.h       |    2 -
 arch/sh/include/asm/thread_info.h         |    2 -
 arch/sparc/include/asm/thread_info_32.h   |    2 -
 arch/sparc/include/asm/thread_info_64.h   |    2 -
 arch/um/include/asm/thread_info.h         |    2 -
 arch/unicore32/include/asm/thread_info.h  |    2 -
 arch/x86/include/asm/thread_info.h        |    2 -
 arch/xtensa/include/asm/thread_info.h     |    2 -
 drivers/bluetooth/btmrvl_main.c           |    2 -
 drivers/mfd/twl4030-irq.c                 |    3 -
 drivers/mfd/twl6030-irq.c                 |    2 -
 drivers/net/irda/stir4200.c               |    2 +-
 drivers/platform/x86/thinkpad_acpi.c      |   15 +--
 drivers/staging/rts_pstor/rtsx.c          |    2 -
 drivers/usb/storage/usb.c                 |   13 +-
 fs/btrfs/async-thread.c                   |    2 +-
 fs/btrfs/disk-io.c                        |    8 +-
 fs/ext4/super.c                           |    3 +-
 fs/fs-writeback.c                         |    4 +-
 fs/gfs2/log.c                             |    4 +-
 fs/gfs2/quota.c                           |    4 +-
 fs/jbd/journal.c                          |    2 +-
 fs/jbd2/journal.c                         |    2 +-
 fs/jfs/jfs_logmgr.c                       |    2 +-
 fs/jfs/jfs_txnmgr.c                       |    4 +-
 fs/nilfs2/segment.c                       |    2 +-
 fs/xfs/xfs_buf.c                          |    2 +-
 include/linux/freezer.h                   |  117 ++++++-----------
 include/linux/kthread.h                   |    1 +
 include/linux/sched.h                     |    4 +-
 kernel/cgroup_freezer.c                   |   63 ++++-----
 kernel/exit.c                             |    3 +-
 kernel/fork.c                             |    1 -
 kernel/freezer.c                          |  203 +++++++++++++++--------------
 kernel/kthread.c                          |   27 ++++-
 kernel/power/hibernate.c                  |   15 +--
 kernel/power/process.c                    |   77 +++++-------
 kernel/power/suspend.c                    |    8 +-
 kernel/power/user.c                       |    4 +-
 mm/backing-dev.c                          |    8 +-
 56 files changed, 279 insertions(+), 389 deletions(-)

-- 
tejun

[1] http://thread.gmane.org/gmane.linux.kernel/1209247
[2] http://thread.gmane.org/gmane.linux.kernel/1209416
[3] http://thread.gmane.org/gmane.linux.kernel/1209416/focus=1209417
[4] http://thread.gmane.org/gmane.linux.kernel/1209444

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL pm/for-next] pm: freezer updates
  2011-11-03 22:31 [GIT PULL pm/for-next] pm: freezer updates Tejun Heo
@ 2011-11-06  0:01 ` Rafael J. Wysocki
  2011-11-06 12:12   ` Rafael J. Wysocki
  2011-11-21 20:38 ` Tejun Heo
  1 sibling, 1 reply; 9+ messages in thread
From: Rafael J. Wysocki @ 2011-11-06  0:01 UTC (permalink / raw)
  To: Tejun Heo; +Cc: linux-pm, linux-kernel

On Thursday, November 03, 2011, Tejun Heo wrote:
> Hello, Rafael.
> 
> This is pull request for the following pending patches[ets].
> 
>  [1] freezer: fix various bugs and simplify implementation, take#2
>  [2] usb_storage: don't use set_freezable_with_signal()
>  [3] freezer: kill unused set_freezable_with_signal()
>  [4] freezer: fix wait_event_freezable/__thaw_task races
> 
> The patches are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git pm-freezer

I pulled this to linux-pm/pm-freezer, but there were merge conflicts that
I'm not 100% have been resolved correctly.  Please double check if the
resulting branch is OK.

Thanks,
Rafael


> 
> Oleg Nesterov (1):
>       freezer: fix wait_event_freezable/__thaw_task races
> 
> Tejun Heo (22):
>       freezer: fix current->state restoration race in refrigerator()
>       freezer: don't unnecessarily set PF_NOFREEZE explicitly
>       freezer: unexport refrigerator() and update try_to_freeze() slightly
>       freezer: implement and use kthread_freezable_should_stop()
>       freezer: rename thaw_process() to __thaw_task() and simplify the implementation
>       freezer: remove racy clear_freeze_flag() and set PF_NOFREEZE on dead tasks
>       freezer: don't distinguish nosig tasks on thaw
>       freezer: use dedicated lock instead of task_lock() + memory barrier
>       freezer: make freezing indicate freeze condition in effect
>       freezer: test freezable conditions while holding freezer_lock
>       freezer: kill PF_FREEZING
>       freezer: clean up freeze_processes() failure path
>       cgroup_freezer: prepare for removal of TIF_FREEZE
>       freezer: make freezing() test freeze conditions in effect instead of TIF_FREEZE
>       freezer: remove now unused TIF_FREEZE
>       freezer: remove should_send_signal() and update frozen()
>       freezer: fix set_freezable[_with_signal]() race
>       freezer: restructure __refrigerator()
>       freezer: use lock_task_sighand() in fake_signal_wake_up()
>       freezer: remove unused @sig_only from freeze_task()
>       usb_storage: don't use set_freezable_with_signal()
>       freezer: kill unused set_freezable_with_signal()
> 
>  Documentation/power/freezing-of-tasks.txt |   14 +-
>  arch/alpha/include/asm/thread_info.h      |    2 -
>  arch/arm/include/asm/thread_info.h        |    2 -
>  arch/avr32/include/asm/thread_info.h      |    2 -
>  arch/blackfin/include/asm/thread_info.h   |    2 -
>  arch/cris/include/asm/thread_info.h       |    2 -
>  arch/frv/include/asm/thread_info.h        |    2 -
>  arch/h8300/include/asm/thread_info.h      |    2 -
>  arch/ia64/include/asm/thread_info.h       |    2 -
>  arch/m32r/include/asm/thread_info.h       |    2 -
>  arch/m68k/include/asm/thread_info.h       |    1 -
>  arch/microblaze/include/asm/thread_info.h |    2 -
>  arch/mips/include/asm/thread_info.h       |    2 -
>  arch/mn10300/include/asm/thread_info.h    |    2 -
>  arch/parisc/include/asm/thread_info.h     |    2 -
>  arch/powerpc/include/asm/thread_info.h    |    2 -
>  arch/s390/include/asm/thread_info.h       |    2 -
>  arch/sh/include/asm/thread_info.h         |    2 -
>  arch/sparc/include/asm/thread_info_32.h   |    2 -
>  arch/sparc/include/asm/thread_info_64.h   |    2 -
>  arch/um/include/asm/thread_info.h         |    2 -
>  arch/unicore32/include/asm/thread_info.h  |    2 -
>  arch/x86/include/asm/thread_info.h        |    2 -
>  arch/xtensa/include/asm/thread_info.h     |    2 -
>  drivers/bluetooth/btmrvl_main.c           |    2 -
>  drivers/mfd/twl4030-irq.c                 |    3 -
>  drivers/mfd/twl6030-irq.c                 |    2 -
>  drivers/net/irda/stir4200.c               |    2 +-
>  drivers/platform/x86/thinkpad_acpi.c      |   15 +--
>  drivers/staging/rts_pstor/rtsx.c          |    2 -
>  drivers/usb/storage/usb.c                 |   13 +-
>  fs/btrfs/async-thread.c                   |    2 +-
>  fs/btrfs/disk-io.c                        |    8 +-
>  fs/ext4/super.c                           |    3 +-
>  fs/fs-writeback.c                         |    4 +-
>  fs/gfs2/log.c                             |    4 +-
>  fs/gfs2/quota.c                           |    4 +-
>  fs/jbd/journal.c                          |    2 +-
>  fs/jbd2/journal.c                         |    2 +-
>  fs/jfs/jfs_logmgr.c                       |    2 +-
>  fs/jfs/jfs_txnmgr.c                       |    4 +-
>  fs/nilfs2/segment.c                       |    2 +-
>  fs/xfs/xfs_buf.c                          |    2 +-
>  include/linux/freezer.h                   |  117 ++++++-----------
>  include/linux/kthread.h                   |    1 +
>  include/linux/sched.h                     |    4 +-
>  kernel/cgroup_freezer.c                   |   63 ++++-----
>  kernel/exit.c                             |    3 +-
>  kernel/fork.c                             |    1 -
>  kernel/freezer.c                          |  203 +++++++++++++++--------------
>  kernel/kthread.c                          |   27 ++++-
>  kernel/power/hibernate.c                  |   15 +--
>  kernel/power/process.c                    |   77 +++++-------
>  kernel/power/suspend.c                    |    8 +-
>  kernel/power/user.c                       |    4 +-
>  mm/backing-dev.c                          |    8 +-
>  56 files changed, 279 insertions(+), 389 deletions(-)
> 
> 


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL pm/for-next] pm: freezer updates
  2011-11-06  0:01 ` Rafael J. Wysocki
@ 2011-11-06 12:12   ` Rafael J. Wysocki
  2011-11-06 16:47     ` Tejun Heo
  0 siblings, 1 reply; 9+ messages in thread
From: Rafael J. Wysocki @ 2011-11-06 12:12 UTC (permalink / raw)
  To: Tejun Heo; +Cc: linux-pm, linux-kernel

On Sunday, November 06, 2011, Rafael J. Wysocki wrote:
> On Thursday, November 03, 2011, Tejun Heo wrote:
> > Hello, Rafael.
> > 
> > This is pull request for the following pending patches[ets].
> > 
> >  [1] freezer: fix various bugs and simplify implementation, take#2
> >  [2] usb_storage: don't use set_freezable_with_signal()
> >  [3] freezer: kill unused set_freezable_with_signal()
> >  [4] freezer: fix wait_event_freezable/__thaw_task races
> > 
> > The patches are available in the git repository at:
> > 
> >   git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git pm-freezer
> 
> I pulled this to linux-pm/pm-freezer, but there were merge conflicts that
> I'm not 100% have been resolved correctly.  Please double check if the
> resulting branch is OK.

I found a mismerge in the meantime, so the linux-pm/pm-freezer branch has
been re-created from scratch.  Please double check if it's correct.

I intend to start merging it into linux-next after 3.2-rc1 has been released.

Thanks,
Rafael

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL pm/for-next] pm: freezer updates
  2011-11-06 12:12   ` Rafael J. Wysocki
@ 2011-11-06 16:47     ` Tejun Heo
  2011-11-06 21:10       ` Rafael J. Wysocki
  0 siblings, 1 reply; 9+ messages in thread
From: Tejun Heo @ 2011-11-06 16:47 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: linux-pm, linux-kernel

Hello, Rafael.

On Sun, Nov 06, 2011 at 01:12:56PM +0100, Rafael J. Wysocki wrote:
> On Sunday, November 06, 2011, Rafael J. Wysocki wrote:
> > On Thursday, November 03, 2011, Tejun Heo wrote:
> > > Hello, Rafael.
> > > 
> > > This is pull request for the following pending patches[ets].
> > > 
> > >  [1] freezer: fix various bugs and simplify implementation, take#2
> > >  [2] usb_storage: don't use set_freezable_with_signal()
> > >  [3] freezer: kill unused set_freezable_with_signal()
> > >  [4] freezer: fix wait_event_freezable/__thaw_task races
> > > 
> > > The patches are available in the git repository at:
> > > 
> > >   git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git pm-freezer
> > 
> > I pulled this to linux-pm/pm-freezer, but there were merge conflicts that
> > I'm not 100% have been resolved correctly.  Please double check if the
> > resulting branch is OK.
> 
> I found a mismerge in the meantime, so the linux-pm/pm-freezer branch has
> been re-created from scratch.  Please double check if it's correct.
> 
> I intend to start merging it into linux-next after 3.2-rc1 has been released.

fake_signal_wake_up() merging seems wrong.  It should be calling
signal_wake_up() with @resume == 0.  Other than that, everything looks
correct to me.

Thank you.

-- 
tejun

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL pm/for-next] pm: freezer updates
  2011-11-06 16:47     ` Tejun Heo
@ 2011-11-06 21:10       ` Rafael J. Wysocki
  2011-11-06 21:16         ` Tejun Heo
  0 siblings, 1 reply; 9+ messages in thread
From: Rafael J. Wysocki @ 2011-11-06 21:10 UTC (permalink / raw)
  To: Tejun Heo; +Cc: linux-pm, linux-kernel

On Sunday, November 06, 2011, Tejun Heo wrote:
> Hello, Rafael.
> 
> On Sun, Nov 06, 2011 at 01:12:56PM +0100, Rafael J. Wysocki wrote:
> > On Sunday, November 06, 2011, Rafael J. Wysocki wrote:
> > > On Thursday, November 03, 2011, Tejun Heo wrote:
> > > > Hello, Rafael.
> > > > 
> > > > This is pull request for the following pending patches[ets].
> > > > 
> > > >  [1] freezer: fix various bugs and simplify implementation, take#2
> > > >  [2] usb_storage: don't use set_freezable_with_signal()
> > > >  [3] freezer: kill unused set_freezable_with_signal()
> > > >  [4] freezer: fix wait_event_freezable/__thaw_task races
> > > > 
> > > > The patches are available in the git repository at:
> > > > 
> > > >   git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git pm-freezer
> > > 
> > > I pulled this to linux-pm/pm-freezer, but there were merge conflicts that
> > > I'm not 100% have been resolved correctly.  Please double check if the
> > > resulting branch is OK.
> > 
> > I found a mismerge in the meantime, so the linux-pm/pm-freezer branch has
> > been re-created from scratch.  Please double check if it's correct.
> > 
> > I intend to start merging it into linux-next after 3.2-rc1 has been released.
> 
> fake_signal_wake_up() merging seems wrong.  It should be calling
> signal_wake_up() with @resume == 0.  Other than that, everything looks
> correct to me.

Do you mean something like this is needed on top of linux-pm/pm-freezer:

---
 kernel/freezer.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-pm/kernel/freezer.c
===================================================================
--- linux-pm.orig/kernel/freezer.c
+++ linux-pm/kernel/freezer.c
@@ -90,7 +90,7 @@ static void fake_signal_wake_up(struct t
 	unsigned long flags;
 
 	if (lock_task_sighand(p, &flags)) {
-		signal_wake_up(p, 1);
+		signal_wake_up(p, 0);
 		unlock_task_sighand(p, &flags);
 	}
 }

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL pm/for-next] pm: freezer updates
  2011-11-06 21:10       ` Rafael J. Wysocki
@ 2011-11-06 21:16         ` Tejun Heo
  2011-11-06 21:23           ` Rafael J. Wysocki
  0 siblings, 1 reply; 9+ messages in thread
From: Tejun Heo @ 2011-11-06 21:16 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: linux-pm, linux-kernel

Hello,

On Sun, Nov 6, 2011 at 1:10 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> Do you mean something like this is needed on top of linux-pm/pm-freezer:
>
> ---
>  kernel/freezer.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-pm/kernel/freezer.c
> ===================================================================
> --- linux-pm.orig/kernel/freezer.c
> +++ linux-pm/kernel/freezer.c
> @@ -90,7 +90,7 @@ static void fake_signal_wake_up(struct t
>        unsigned long flags;
>
>        if (lock_task_sighand(p, &flags)) {
> -               signal_wake_up(p, 1);
> +               signal_wake_up(p, 0);

Yeap, that was the only discrepancy I could find.

Thanks.

-- 
tejun

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL pm/for-next] pm: freezer updates
  2011-11-06 21:16         ` Tejun Heo
@ 2011-11-06 21:23           ` Rafael J. Wysocki
  0 siblings, 0 replies; 9+ messages in thread
From: Rafael J. Wysocki @ 2011-11-06 21:23 UTC (permalink / raw)
  To: Tejun Heo; +Cc: linux-pm, linux-kernel

On Sunday, November 06, 2011, Tejun Heo wrote:
> Hello,
> 
> On Sun, Nov 6, 2011 at 1:10 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > Do you mean something like this is needed on top of linux-pm/pm-freezer:
> >
> > ---
> >  kernel/freezer.c |    2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > Index: linux-pm/kernel/freezer.c
> > ===================================================================
> > --- linux-pm.orig/kernel/freezer.c
> > +++ linux-pm/kernel/freezer.c
> > @@ -90,7 +90,7 @@ static void fake_signal_wake_up(struct t
> >        unsigned long flags;
> >
> >        if (lock_task_sighand(p, &flags)) {
> > -               signal_wake_up(p, 1);
> > +               signal_wake_up(p, 0);
> 
> Yeap, that was the only discrepancy I could find.

OK, I'll apply this on top of the merge commit.

Thanks,
Rafael

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL pm/for-next] pm: freezer updates
  2011-11-03 22:31 [GIT PULL pm/for-next] pm: freezer updates Tejun Heo
  2011-11-06  0:01 ` Rafael J. Wysocki
@ 2011-11-21 20:38 ` Tejun Heo
  2011-11-21 21:23   ` Rafael J. Wysocki
  1 sibling, 1 reply; 9+ messages in thread
From: Tejun Heo @ 2011-11-21 20:38 UTC (permalink / raw)
  To: Rafael J. Wysocki, linux-pm
  Cc: linux-kernel, g.liakhovetski, dan.j.williams, nicolas.ferre,
	vinod.koul

Hello,

Just heads up.  I incorporated the patch to drop
set_freezable_with_signal() in the series and rebased in on top of the
current master.  The new HEAD is 465708e9c8 "freezer: fix
wait_event_freezable/__thaw_task races".

   git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git pm-freezer

Once the dmatest patch gets acked, I'll send a proper pull request.

Thank you.

-- 
tejun

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL pm/for-next] pm: freezer updates
  2011-11-21 20:38 ` Tejun Heo
@ 2011-11-21 21:23   ` Rafael J. Wysocki
  0 siblings, 0 replies; 9+ messages in thread
From: Rafael J. Wysocki @ 2011-11-21 21:23 UTC (permalink / raw)
  To: Tejun Heo
  Cc: linux-pm, linux-kernel, g.liakhovetski, dan.j.williams,
	nicolas.ferre, vinod.koul

On Monday, November 21, 2011, Tejun Heo wrote:
> Hello,
> 
> Just heads up.  I incorporated the patch to drop
> set_freezable_with_signal() in the series and rebased in on top of the
> current master.  The new HEAD is 465708e9c8 "freezer: fix
> wait_event_freezable/__thaw_task races".
> 
>    git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git pm-freezer
> 
> Once the dmatest patch gets acked, I'll send a proper pull request.

OK, thanks a lot!

Rafael

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2011-11-21 21:21 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-03 22:31 [GIT PULL pm/for-next] pm: freezer updates Tejun Heo
2011-11-06  0:01 ` Rafael J. Wysocki
2011-11-06 12:12   ` Rafael J. Wysocki
2011-11-06 16:47     ` Tejun Heo
2011-11-06 21:10       ` Rafael J. Wysocki
2011-11-06 21:16         ` Tejun Heo
2011-11-06 21:23           ` Rafael J. Wysocki
2011-11-21 20:38 ` Tejun Heo
2011-11-21 21:23   ` Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox