All of lore.kernel.org
 help / color / mirror / Atom feed
From: Evgeniy Polyakov <zbr@ioremap.net>
To: "Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi>
Cc: David Miller <davem@davemloft.net>,
	Netdev <netdev@vger.kernel.org>,
	efault@gmx.de, mingo@elte.hu, a.p.zijlstra@chello.nl,
	Herbert Xu <herbert@gondor.apana.org.au>
Subject: Re: tbench wrt. loopback TSO
Date: Mon, 27 Oct 2008 20:03:14 +0300	[thread overview]
Message-ID: <20081027170314.GA25148@ioremap.net> (raw)
In-Reply-To: <Pine.LNX.4.64.0810271704530.7072@wrl-59.cs.helsinki.fi>

On Mon, Oct 27, 2008 at 05:19:17PM +0200, Ilpo Järvinen (ilpo.jarvinen@helsinki.fi) wrote:
> On Mon, 27 Oct 2008, Evgeniy Polyakov wrote:
> 
> > On Mon, Oct 27, 2008 at 09:49:21AM +0200, Ilpo Järvinen (ilpo.jarvinen@helsinki.fi) wrote:
> > > > > That's what I got with the current tree for 8 threads on a 4-way 32-bit
> > > > > Xeons (2 physical CPUs) and 8gb of ram:
> > > > > gso/tso off: 361.367
> > > > > tso/gso on:  354.635
> > > > 
> > > > Yes, it might do this, in which case tcp_tso_should_defer() simply needs
> > > > some tweaking.
> > > 
> > > Good point, could you Evgeniy verify first if simple goto send_now; in 
> > > beginning there recovers it all...
> > 
> > With direct goto at the begining of the tcp_tso_should_defer()
> > and 4403b406 commit git tree (was current yesterday night)
> > I got following numbers: 
> > 
> > with goto:
> > tso/gso  on: 358.976, 357.699
> > tso/gso off: 368.016, 367.079
> > 
> > no goto
> > tso/gso  on: 353.656, 354.791
> > tso/gso off: 364.8, 365.85
> > 
> > So tcp_tso_should_defer() adds additional problems not counted in
> > tso/gso changes.
> 
> Noticed that tcp_current_mss does modulo with tso and that it is 
> being called from a non-trivial number of places, though ovbiously only 
> part of them should be relevant here. ...I'm not sure if that can show 
> up though.

That's why when I see modulo something screams inside me...
I used following patch (without goto in the tcp_tso_should_defer():

diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index e4c5ac9..8ee7597 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1075,7 +1075,6 @@ unsigned int tcp_current_mss(struct sock *sk, int large_allowed)
 				  tp->tcp_header_len);
 
 		xmit_size_goal = tcp_bound_to_half_wnd(tp, xmit_size_goal);
-		xmit_size_goal -= (xmit_size_goal % mss_now);
 	}
 	tp->xmit_size_goal = xmit_size_goal;
 

tso/gso  on: 361.866 362.662
tso/gso off: 370.038 368.768

So this is another improvement hidden and not accounted in the tso/gso stuff.
Another modulo sits in tcp_mss_split_point().
Also found one in the scheduler's find_next_best_node(), which is under
CONFIG_NUMA though.

-- 
	Evgeniy Polyakov

  reply	other threads:[~2008-10-27 17:03 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-16  0:14 tbench wrt. loopback TSO David Miller
2008-10-17  3:49 ` non-TCP tbench (was Re: tbench wrt. loopback TSO) David Miller
2008-10-26 12:34 ` tbench wrt. loopback TSO Evgeniy Polyakov
2008-10-27  1:59   ` David Miller
2008-10-27  7:49     ` Ilpo Järvinen
2008-10-27 14:13       ` Evgeniy Polyakov
2008-10-27 15:19         ` Ilpo Järvinen
2008-10-27 17:03           ` Evgeniy Polyakov [this message]
2008-10-27 18:39             ` David Miller
2008-10-27 19:35               ` Evgeniy Polyakov
2008-10-27 19:37                 ` David Miller
2008-11-05 11:42               ` David Miller
2008-11-05 11:49                 ` Evgeniy Polyakov
2008-11-05 11:54                   ` David Miller
2008-11-05 12:04                     ` Ilpo Järvinen
2008-11-05 12:09                       ` David Miller
2008-11-05 12:25                         ` Ilpo Järvinen
2008-11-05 13:04                           ` Evgeniy Polyakov
2008-11-05 13:33                             ` Ilpo Järvinen
2008-11-05 18:48                               ` Rick Jones
2008-11-05 19:46                                 ` Ilpo Järvinen
2008-11-05 21:06                                   ` Rick Jones
2008-10-27 22:17             ` Ilpo Järvinen
2008-10-31  8:14               ` David Miller
2008-10-31  9:16                 ` Ilpo Järvinen
2008-10-31  9:47                   ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081027170314.GA25148@ioremap.net \
    --to=zbr@ioremap.net \
    --cc=a.p.zijlstra@chello.nl \
    --cc=davem@davemloft.net \
    --cc=efault@gmx.de \
    --cc=herbert@gondor.apana.org.au \
    --cc=ilpo.jarvinen@helsinki.fi \
    --cc=mingo@elte.hu \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.