netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 10/10] af_unix: use freezable blocking calls in read
       [not found] <1367458508-9133-1-git-send-email-ccross@android.com>
@ 2013-05-02  1:35 ` Colin Cross
  2013-05-03  0:08   ` Tejun Heo
  0 siblings, 1 reply; 6+ messages in thread
From: Colin Cross @ 2013-05-02  1:35 UTC (permalink / raw)
  To: linux-pm
  Cc: linux-kernel, Rafael J. Wysocki, arve, Tejun Heo, Oleg Nesterov,
	Colin Cross, David S. Miller, Eric Dumazet, Al Viro,
	Eric W. Biederman, Gao feng, netdev

Avoid waking up every thread sleeping in read call on an AF_UNIX
socket during suspend and resume by calling a freezable blocking
call.  Previous patches modified the freezer to avoid sending
wakeups to threads that are blocked in freezable blocking calls.

This call was selected to be converted to a freezable call because
it doesn't hold any locks or release any resources when interrupted
that might be needed by another freezing task or a kernel driver
during suspend, and is a common site where idle userspace tasks are
blocked.

Signed-off-by: Colin Cross <ccross@android.com>
---
 net/unix/af_unix.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
index 2db702d..2bcac57 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -114,6 +114,7 @@
 #include <linux/mount.h>
 #include <net/checksum.h>
 #include <linux/security.h>
+#include <linux/freezer.h>
 
 struct hlist_head unix_socket_table[2 * UNIX_HASH_SIZE];
 EXPORT_SYMBOL_GPL(unix_socket_table);
@@ -1880,7 +1881,7 @@ static long unix_stream_data_wait(struct sock *sk, long timeo)
 
 		set_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags);
 		unix_state_unlock(sk);
-		timeo = schedule_timeout(timeo);
+		timeo = freezable_schedule_timeout(timeo);
 		unix_state_lock(sk);
 		clear_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags);
 	}
-- 
1.8.2.1

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

* Re: [PATCH v2 10/10] af_unix: use freezable blocking calls in read
  2013-05-02  1:35 ` [PATCH v2 10/10] af_unix: use freezable blocking calls in read Colin Cross
@ 2013-05-03  0:08   ` Tejun Heo
  2013-05-04 19:19     ` Rafael J. Wysocki
  0 siblings, 1 reply; 6+ messages in thread
From: Tejun Heo @ 2013-05-03  0:08 UTC (permalink / raw)
  To: Colin Cross
  Cc: linux-pm, linux-kernel, Rafael J. Wysocki, arve, Oleg Nesterov,
	David S. Miller, Eric Dumazet, Al Viro, Eric W. Biederman,
	Gao feng, netdev

On Wed, May 01, 2013 at 06:35:08PM -0700, Colin Cross wrote:
> Avoid waking up every thread sleeping in read call on an AF_UNIX
> socket during suspend and resume by calling a freezable blocking
> call.  Previous patches modified the freezer to avoid sending
> wakeups to threads that are blocked in freezable blocking calls.
> 
> This call was selected to be converted to a freezable call because
> it doesn't hold any locks or release any resources when interrupted
> that might be needed by another freezing task or a kernel driver
> during suspend, and is a common site where idle userspace tasks are
> blocked.

Heh, so you are aware of the deadlock possibilities.  Good selection
of spots.  For all the conversion patches.

 Acked-by: Tejun Heo <tj@kernel.org>

Thanks.

-- 
tejun

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

* Re: [PATCH v2 10/10] af_unix: use freezable blocking calls in read
  2013-05-03  0:08   ` Tejun Heo
@ 2013-05-04 19:19     ` Rafael J. Wysocki
  2013-05-04 20:39       ` Tejun Heo
  0 siblings, 1 reply; 6+ messages in thread
From: Rafael J. Wysocki @ 2013-05-04 19:19 UTC (permalink / raw)
  To: Tejun Heo
  Cc: Colin Cross, linux-pm, linux-kernel, arve, Oleg Nesterov,
	David S. Miller, Eric Dumazet, Al Viro, Eric W. Biederman,
	Gao feng, netdev

On Thursday, May 02, 2013 05:08:12 PM Tejun Heo wrote:
> On Wed, May 01, 2013 at 06:35:08PM -0700, Colin Cross wrote:
> > Avoid waking up every thread sleeping in read call on an AF_UNIX
> > socket during suspend and resume by calling a freezable blocking
> > call.  Previous patches modified the freezer to avoid sending
> > wakeups to threads that are blocked in freezable blocking calls.
> > 
> > This call was selected to be converted to a freezable call because
> > it doesn't hold any locks or release any resources when interrupted
> > that might be needed by another freezing task or a kernel driver
> > during suspend, and is a common site where idle userspace tasks are
> > blocked.
> 
> Heh, so you are aware of the deadlock possibilities.  Good selection
> of spots.  For all the conversion patches.
> 
>  Acked-by: Tejun Heo <tj@kernel.org>

I wonder if that includes [3/10] (just to get the record straight)?

Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [PATCH v2 10/10] af_unix: use freezable blocking calls in read
  2013-05-04 19:19     ` Rafael J. Wysocki
@ 2013-05-04 20:39       ` Tejun Heo
  2013-05-04 22:23         ` Colin Cross
  0 siblings, 1 reply; 6+ messages in thread
From: Tejun Heo @ 2013-05-04 20:39 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Colin Cross, linux-pm@vger.kernel.org, lkml, arve, Oleg Nesterov,
	David S. Miller, Eric Dumazet, Al Viro, Eric W. Biederman,
	Gao feng, netdev

Hello, Rafael.

On Sat, May 4, 2013 at 12:19 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>> Heh, so you are aware of the deadlock possibilities.  Good selection
>> of spots.  For all the conversion patches.
>>
>>  Acked-by: Tejun Heo <tj@kernel.org>
>
> I wonder if that includes [3/10] (just to get the record straight)?

I think we want the lockdep annotations before these go in. I'll
review Colin's new series later today.

Thanks!

--
tejun

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

* Re: [PATCH v2 10/10] af_unix: use freezable blocking calls in read
  2013-05-04 20:39       ` Tejun Heo
@ 2013-05-04 22:23         ` Colin Cross
  2013-05-05 11:23           ` Rafael J. Wysocki
  0 siblings, 1 reply; 6+ messages in thread
From: Colin Cross @ 2013-05-04 22:23 UTC (permalink / raw)
  To: Tejun Heo
  Cc: Rafael J. Wysocki, linux-pm@vger.kernel.org, lkml,
	Arve Hjønnevåg, Oleg Nesterov, David S. Miller,
	Eric Dumazet, Al Viro, Eric W. Biederman, Gao feng, netdev

On Sat, May 4, 2013 at 1:39 PM, Tejun Heo <tj@kernel.org> wrote:
> Hello, Rafael.
>
> On Sat, May 4, 2013 at 12:19 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>>> Heh, so you are aware of the deadlock possibilities.  Good selection
>>> of spots.  For all the conversion patches.
>>>
>>>  Acked-by: Tejun Heo <tj@kernel.org>
>>
>> I wonder if that includes [3/10] (just to get the record straight)?
>
> I think we want the lockdep annotations before these go in. I'll
> review Colin's new series later today.

Just to make sure the merge order is clear, the two patches I posted
yesterday to reintroduce the lockdep warning in try_to_freeze()
(https://lkml.org/lkml/2013/5/3/488) need to be merged first, then I
will repost this series on top of that one.

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

* Re: [PATCH v2 10/10] af_unix: use freezable blocking calls in read
  2013-05-04 22:23         ` Colin Cross
@ 2013-05-05 11:23           ` Rafael J. Wysocki
  0 siblings, 0 replies; 6+ messages in thread
From: Rafael J. Wysocki @ 2013-05-05 11:23 UTC (permalink / raw)
  To: Colin Cross
  Cc: Tejun Heo, linux-pm@vger.kernel.org, lkml,
	Arve Hjønnevåg, Oleg Nesterov, David S. Miller,
	Eric Dumazet, Al Viro, Eric W. Biederman, Gao feng, netdev

On Saturday, May 04, 2013 03:23:30 PM Colin Cross wrote:
> On Sat, May 4, 2013 at 1:39 PM, Tejun Heo <tj@kernel.org> wrote:
> > Hello, Rafael.
> >
> > On Sat, May 4, 2013 at 12:19 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> >>> Heh, so you are aware of the deadlock possibilities.  Good selection
> >>> of spots.  For all the conversion patches.
> >>>
> >>>  Acked-by: Tejun Heo <tj@kernel.org>
> >>
> >> I wonder if that includes [3/10] (just to get the record straight)?
> >
> > I think we want the lockdep annotations before these go in. I'll
> > review Colin's new series later today.
> 
> Just to make sure the merge order is clear, the two patches I posted
> yesterday to reintroduce the lockdep warning in try_to_freeze()
> (https://lkml.org/lkml/2013/5/3/488) need to be merged first, then I
> will repost this series on top of that one.

OK, thanks for the clarification.

Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

end of thread, other threads:[~2013-05-05 11:15 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1367458508-9133-1-git-send-email-ccross@android.com>
2013-05-02  1:35 ` [PATCH v2 10/10] af_unix: use freezable blocking calls in read Colin Cross
2013-05-03  0:08   ` Tejun Heo
2013-05-04 19:19     ` Rafael J. Wysocki
2013-05-04 20:39       ` Tejun Heo
2013-05-04 22:23         ` Colin Cross
2013-05-05 11: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;
as well as URLs for NNTP newsgroup(s).