netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH -v2] ipvs: Remove unused variable ret from sync_thread_master()
@ 2013-11-12 14:34 Geert Uytterhoeven
  2013-11-13  8:00 ` Julian Anastasov
  0 siblings, 1 reply; 4+ messages in thread
From: Geert Uytterhoeven @ 2013-11-12 14:34 UTC (permalink / raw)
  To: Peter Zijlstra, Oleg Nesterov, Ingo Molnar, Julian Anastasov
  Cc: netdev, linux-kernel, Geert Uytterhoeven

net/netfilter/ipvs/ip_vs_sync.c: In function 'sync_thread_master':
net/netfilter/ipvs/ip_vs_sync.c:1640:8: warning: unused variable 'ret' [-Wunused-variable]

Commit 35a2af94c7ce7130ca292c68b1d27fcfdb648f6b ("sched/wait: Make the
__wait_event*() interface more friendly") changed how the interruption
state is returned. However, sync_thread_master() ignores this state,
now causing a compile warning.

According to Julian Anastasov <ja@ssi.bg>, this behavior is OK:

    "Yes, your patch looks ok to me. In the past we used ssleep() but IPVS
     users were confused why IPVS threads increase the load average. So, we
     switched to _interruptible calls and later the socket polling was
     added."

Document this, as requested by Peter Zijlstra, to avoid precious developers
disappearing in this pitfall in the future.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
v2: Document that sync_thread_master() ignores the interruption state,

 net/netfilter/ipvs/ip_vs_sync.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
index f63c2388f38d..db801263ee9f 100644
--- a/net/netfilter/ipvs/ip_vs_sync.c
+++ b/net/netfilter/ipvs/ip_vs_sync.c
@@ -1637,7 +1637,10 @@ static int sync_thread_master(void *data)
 			continue;
 		}
 		while (ip_vs_send_sync_msg(tinfo->sock, sb->mesg) < 0) {
-			int ret = __wait_event_interruptible(*sk_sleep(sk),
+			/* (Ab)use interruptible sleep to avoid increasing
+			 * the load avg.
+			 */
+			__wait_event_interruptible(*sk_sleep(sk),
 						   sock_writeable(sk) ||
 						   kthread_should_stop());
 			if (unlikely(kthread_should_stop()))
-- 
1.7.9.5

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

* Re: [PATCH -v2] ipvs: Remove unused variable ret from sync_thread_master()
  2013-11-12 14:34 [PATCH -v2] ipvs: Remove unused variable ret from sync_thread_master() Geert Uytterhoeven
@ 2013-11-13  8:00 ` Julian Anastasov
  2013-12-19  7:23   ` Julian Anastasov
  0 siblings, 1 reply; 4+ messages in thread
From: Julian Anastasov @ 2013-11-13  8:00 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Peter Zijlstra, Oleg Nesterov, Ingo Molnar, netdev, linux-kernel,
	Simon Horman, Fabio Estevam


	Hello,

On Tue, 12 Nov 2013, Geert Uytterhoeven wrote:

> net/netfilter/ipvs/ip_vs_sync.c: In function 'sync_thread_master':
> net/netfilter/ipvs/ip_vs_sync.c:1640:8: warning: unused variable 'ret' [-Wunused-variable]
> 
> Commit 35a2af94c7ce7130ca292c68b1d27fcfdb648f6b ("sched/wait: Make the
> __wait_event*() interface more friendly") changed how the interruption
> state is returned. However, sync_thread_master() ignores this state,
> now causing a compile warning.
> 
> According to Julian Anastasov <ja@ssi.bg>, this behavior is OK:
> 
>     "Yes, your patch looks ok to me. In the past we used ssleep() but IPVS
>      users were confused why IPVS threads increase the load average. So, we
>      switched to _interruptible calls and later the socket polling was
>      added."
> 
> Document this, as requested by Peter Zijlstra, to avoid precious developers
> disappearing in this pitfall in the future.
> 
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
> v2: Document that sync_thread_master() ignores the interruption state,
> 
>  net/netfilter/ipvs/ip_vs_sync.c |    5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
> index f63c2388f38d..db801263ee9f 100644
> --- a/net/netfilter/ipvs/ip_vs_sync.c
> +++ b/net/netfilter/ipvs/ip_vs_sync.c
> @@ -1637,7 +1637,10 @@ static int sync_thread_master(void *data)
>  			continue;
>  		}
>  		while (ip_vs_send_sync_msg(tinfo->sock, sb->mesg) < 0) {
> -			int ret = __wait_event_interruptible(*sk_sleep(sk),
> +			/* (Ab)use interruptible sleep to avoid increasing
> +			 * the load avg.
> +			 */
> +			__wait_event_interruptible(*sk_sleep(sk),
>  						   sock_writeable(sk) ||
>  						   kthread_should_stop());
>  			if (unlikely(kthread_should_stop()))

	Fabio Estevam posted similar change too early but
we are better with such comment.

Acked-by: Julian Anastasov <ja@ssi.bg>

	Also, the TASK_UNINTERRUPTIBLE | TASK_IDLE idea looks good
to me. If such change is planned may be the above patch
better not to go via the ipvs-next tree to avoid conflicts?
As we don't have any changes in this area let us know if
someone takes the above patch for another tree.

Regards

--
Julian Anastasov <ja@ssi.bg>

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

* Re: [PATCH -v2] ipvs: Remove unused variable ret from sync_thread_master()
  2013-11-13  8:00 ` Julian Anastasov
@ 2013-12-19  7:23   ` Julian Anastasov
  2013-12-27  3:18     ` Simon Horman
  0 siblings, 1 reply; 4+ messages in thread
From: Julian Anastasov @ 2013-12-19  7:23 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Peter Zijlstra, Oleg Nesterov, Ingo Molnar, netdev, linux-kernel,
	Simon Horman, Fabio Estevam


	Hello,

On Wed, 13 Nov 2013, Julian Anastasov wrote:

> On Tue, 12 Nov 2013, Geert Uytterhoeven wrote:
> 
> > net/netfilter/ipvs/ip_vs_sync.c: In function 'sync_thread_master':
> > net/netfilter/ipvs/ip_vs_sync.c:1640:8: warning: unused variable 'ret' [-Wunused-variable]
> > 
> > Commit 35a2af94c7ce7130ca292c68b1d27fcfdb648f6b ("sched/wait: Make the
> > __wait_event*() interface more friendly") changed how the interruption
> > state is returned. However, sync_thread_master() ignores this state,
> > now causing a compile warning.
> > 
> > According to Julian Anastasov <ja@ssi.bg>, this behavior is OK:
> > 
> >     "Yes, your patch looks ok to me. In the past we used ssleep() but IPVS
> >      users were confused why IPVS threads increase the load average. So, we
> >      switched to _interruptible calls and later the socket polling was
> >      added."
> > 
> > Document this, as requested by Peter Zijlstra, to avoid precious developers
> > disappearing in this pitfall in the future.
> > 
> > Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> > ---
> > v2: Document that sync_thread_master() ignores the interruption state,
> > 
> >  net/netfilter/ipvs/ip_vs_sync.c |    5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> > 
> > diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
> > index f63c2388f38d..db801263ee9f 100644
> > --- a/net/netfilter/ipvs/ip_vs_sync.c
> > +++ b/net/netfilter/ipvs/ip_vs_sync.c
> > @@ -1637,7 +1637,10 @@ static int sync_thread_master(void *data)
> >  			continue;
> >  		}
> >  		while (ip_vs_send_sync_msg(tinfo->sock, sb->mesg) < 0) {
> > -			int ret = __wait_event_interruptible(*sk_sleep(sk),
> > +			/* (Ab)use interruptible sleep to avoid increasing
> > +			 * the load avg.
> > +			 */
> > +			__wait_event_interruptible(*sk_sleep(sk),
> >  						   sock_writeable(sk) ||
> >  						   kthread_should_stop());
> >  			if (unlikely(kthread_should_stop()))
> 
> 	Fabio Estevam posted similar change too early but
> we are better with such comment.
> 
> Acked-by: Julian Anastasov <ja@ssi.bg>
> 
> 	Also, the TASK_UNINTERRUPTIBLE | TASK_IDLE idea looks good
> to me. If such change is planned may be the above patch
> better not to go via the ipvs-next tree to avoid conflicts?
> As we don't have any changes in this area let us know if
> someone takes the above patch for another tree.

	Simon, lets apply this patch to ipvs-next tree...

Regards

--
Julian Anastasov <ja@ssi.bg>

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

* Re: [PATCH -v2] ipvs: Remove unused variable ret from sync_thread_master()
  2013-12-19  7:23   ` Julian Anastasov
@ 2013-12-27  3:18     ` Simon Horman
  0 siblings, 0 replies; 4+ messages in thread
From: Simon Horman @ 2013-12-27  3:18 UTC (permalink / raw)
  To: Julian Anastasov
  Cc: Geert Uytterhoeven, Peter Zijlstra, Oleg Nesterov, Ingo Molnar,
	netdev, linux-kernel, Fabio Estevam

On Thu, Dec 19, 2013 at 09:23:51AM +0200, Julian Anastasov wrote:
> 
> 	Hello,
> 
> On Wed, 13 Nov 2013, Julian Anastasov wrote:
> 
> > On Tue, 12 Nov 2013, Geert Uytterhoeven wrote:
> > 
> > > net/netfilter/ipvs/ip_vs_sync.c: In function 'sync_thread_master':
> > > net/netfilter/ipvs/ip_vs_sync.c:1640:8: warning: unused variable 'ret' [-Wunused-variable]
> > > 
> > > Commit 35a2af94c7ce7130ca292c68b1d27fcfdb648f6b ("sched/wait: Make the
> > > __wait_event*() interface more friendly") changed how the interruption
> > > state is returned. However, sync_thread_master() ignores this state,
> > > now causing a compile warning.
> > > 
> > > According to Julian Anastasov <ja@ssi.bg>, this behavior is OK:
> > > 
> > >     "Yes, your patch looks ok to me. In the past we used ssleep() but IPVS
> > >      users were confused why IPVS threads increase the load average. So, we
> > >      switched to _interruptible calls and later the socket polling was
> > >      added."
> > > 
> > > Document this, as requested by Peter Zijlstra, to avoid precious developers
> > > disappearing in this pitfall in the future.
> > > 
> > > Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> > > ---
> > > v2: Document that sync_thread_master() ignores the interruption state,
> > > 
> > >  net/netfilter/ipvs/ip_vs_sync.c |    5 ++++-
> > >  1 file changed, 4 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
> > > index f63c2388f38d..db801263ee9f 100644
> > > --- a/net/netfilter/ipvs/ip_vs_sync.c
> > > +++ b/net/netfilter/ipvs/ip_vs_sync.c
> > > @@ -1637,7 +1637,10 @@ static int sync_thread_master(void *data)
> > >  			continue;
> > >  		}
> > >  		while (ip_vs_send_sync_msg(tinfo->sock, sb->mesg) < 0) {
> > > -			int ret = __wait_event_interruptible(*sk_sleep(sk),
> > > +			/* (Ab)use interruptible sleep to avoid increasing
> > > +			 * the load avg.
> > > +			 */
> > > +			__wait_event_interruptible(*sk_sleep(sk),
> > >  						   sock_writeable(sk) ||
> > >  						   kthread_should_stop());
> > >  			if (unlikely(kthread_should_stop()))
> > 
> > 	Fabio Estevam posted similar change too early but
> > we are better with such comment.
> > 
> > Acked-by: Julian Anastasov <ja@ssi.bg>
> > 
> > 	Also, the TASK_UNINTERRUPTIBLE | TASK_IDLE idea looks good
> > to me. If such change is planned may be the above patch
> > better not to go via the ipvs-next tree to avoid conflicts?
> > As we don't have any changes in this area let us know if
> > someone takes the above patch for another tree.
> 
> 	Simon, lets apply this patch to ipvs-next tree...

Thanks, done.

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

end of thread, other threads:[~2013-12-27  3:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-12 14:34 [PATCH -v2] ipvs: Remove unused variable ret from sync_thread_master() Geert Uytterhoeven
2013-11-13  8:00 ` Julian Anastasov
2013-12-19  7:23   ` Julian Anastasov
2013-12-27  3:18     ` Simon Horman

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).