netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jarek Poplawski <jarkao2@gmail.com>
To: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: "Paweł Staszewski" <pstaszewski@itcare.pl>,
	"Linux Network Development list" <netdev@vger.kernel.org>,
	"Robert Olsson" <robert@robur.slu.se>
Subject: Re: [PATCH net-2.6] Re: rib_trie / Fix inflate_threshold_root. Now=15 size=11 bits
Date: Mon, 6 Jul 2009 00:23:01 +0200	[thread overview]
Message-ID: <20090705222301.GA3203@ami.dom.local> (raw)
In-Reply-To: <20090705213232.GG8943@linux.vnet.ibm.com>

On Sun, Jul 05, 2009 at 02:32:32PM -0700, Paul E. McKenney wrote:
> On Sun, Jul 05, 2009 at 07:32:08PM +0200, Jarek Poplawski wrote:
> > On Sun, Jul 05, 2009 at 06:20:03PM +0200, Jarek Poplawski wrote:
> > > On Sun, Jul 05, 2009 at 02:30:03AM +0200, Paweł Staszewski wrote:
> > > > Oh
> > > >
> > > > I forgot - please Jarek give me patch with sync rcu and i will make test  
> > > > on preempt kernel
> > > 
> > > Probably non-preempt kernel might need something like this more, but
> > > comparing is always interesting. This patch is based on Paul's
> > > suggestion (I hope).
> > 
> > Hold on ;-) Here is something even better... Syncing after 128 pages
> > might be still too slow, so here is a higher initial value, 1000, plus
> > you can change this while testing in:
> > 
> > /sys/module/fib_trie/parameters/sync_pages
> > 
> > It would be interesting to find the lowest acceptable value.
> 
> Looks like a promising approach to me!
> 
> 							Thanx, Paul

Hmm... As a matter of fact, I'm a bit sceptical now: I'm worrying this
synchronize_rcu done at the lowest acceptable rate could be actually
mostly idle or on the contrary too late. Probably some more complex
(per cpu?) accounting would be necessary to really matter here, but
on the other hand these problems weren't reported often enough.

Thanks,
Jarek P.

> > ---> (synchronize take 8; apply on top of the 2.6.29.x with the last
> >  	all-in-one patch, or net-2.6)
> > 
> >  net/ipv4/fib_trie.c |   12 ++++++++++++
> >  1 files changed, 12 insertions(+), 0 deletions(-)
> > 
> > diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
> > index 00a54b2..decc8d0 100644
> > --- a/net/ipv4/fib_trie.c
> > +++ b/net/ipv4/fib_trie.c
> > @@ -71,6 +71,7 @@
> >  #include <linux/netlink.h>
> >  #include <linux/init.h>
> >  #include <linux/list.h>
> > +#include <linux/moduleparam.h>
> >  #include <net/net_namespace.h>
> >  #include <net/ip.h>
> >  #include <net/protocol.h>
> > @@ -164,6 +165,10 @@ static struct tnode *inflate(struct trie *t, struct tnode *tn);
> >  static struct tnode *halve(struct trie *t, struct tnode *tn);
> >  /* tnodes to free after resize(); protected by RTNL */
> >  static struct tnode *tnode_free_head;
> > +static size_t tnode_free_size;
> > +
> > +static int sync_pages __read_mostly = 1000;
> > +module_param(sync_pages, int, 0640);
> > 
> >  static struct kmem_cache *fn_alias_kmem __read_mostly;
> >  static struct kmem_cache *trie_leaf_kmem __read_mostly;
> > @@ -393,6 +398,8 @@ static void tnode_free_safe(struct tnode *tn)
> >  	BUG_ON(IS_LEAF(tn));
> >  	tn->tnode_free = tnode_free_head;
> >  	tnode_free_head = tn;
> > +	tnode_free_size += sizeof(struct tnode) +
> > +			   (sizeof(struct node *) << tn->bits);
> >  }
> > 
> >  static void tnode_free_flush(void)
> > @@ -404,6 +411,11 @@ static void tnode_free_flush(void)
> >  		tn->tnode_free = NULL;
> >  		tnode_free(tn);
> >  	}
> > +
> > +	if (tnode_free_size >= PAGE_SIZE * sync_pages) {
> > +		tnode_free_size = 0;
> > +		synchronize_rcu();
> > +	}
> >  }
> > 
> >  static struct leaf *leaf_new(void)
> > --
> > To unsubscribe from this list: send the line "unsubscribe netdev" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2009-07-05 22:23 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-25 15:48 rib_trie / Fix inflate_threshold_root. Now=15 size=11 bits Paweł Staszewski
2009-06-25 21:19 ` Eric Dumazet
2009-06-25 21:52   ` Paweł Staszewski
2009-06-25 22:54     ` Eric Dumazet
2009-06-26 10:06       ` Paweł Staszewski
2009-06-26 10:34         ` Eric Dumazet
2009-06-26 10:47           ` Paweł Staszewski
2009-06-26 10:52             ` Eric Dumazet
2009-06-26 17:26               ` Paweł Staszewski
2009-06-26  8:03   ` Jarek Poplawski
2009-06-26  9:19     ` Robert Olsson
2009-06-26  9:37       ` Jarek Poplawski
2009-06-26 10:26         ` Jorge Boncompte [DTI2]
2009-06-26 12:42         ` Robert Olsson
2009-06-26 12:54           ` Jarek Poplawski
2009-06-26 13:28             ` Jarek Poplawski
2009-06-26 13:52               ` Robert Olsson
2009-06-26 15:10                 ` Jarek Poplawski
2009-06-26 15:30                   ` Paul E. McKenney
2009-06-26 15:54                     ` Jarek Poplawski
2009-06-26 16:15                       ` Jarek Poplawski
2009-06-26 16:23                         ` Paul E. McKenney
2009-06-26 16:45                           ` Jarek Poplawski
2009-06-26 17:05                             ` Paul E. McKenney
2009-06-26 18:05                               ` Jarek Poplawski
2009-06-26 18:21                                 ` Paul E. McKenney
2009-06-26 20:19                                   ` Jarek Poplawski
2009-06-26 20:26                                 ` Robert Olsson
2009-06-26 20:37                                   ` Jarek Poplawski
2009-06-26 21:20                                     ` Jarek Poplawski
2009-06-27 19:20       ` Jarek Poplawski
2009-06-27 20:51         ` Jarek Poplawski
2009-06-28  0:28           ` Paweł Staszewski
2009-06-28 11:11           ` Robert Olsson
2009-06-29  7:57             ` Paweł Staszewski
2009-06-28 11:04         ` Robert Olsson
2009-06-28 12:03           ` Jarek Poplawski
2009-06-28 14:35           ` Jarek Poplawski
2009-06-28 15:32             ` Paweł Staszewski
2009-06-28 15:48               ` Paweł Staszewski
2009-06-28 19:56                 ` Jarek Poplawski
2009-06-28 21:36                 ` Jarek Poplawski
2009-06-29  8:08                   ` Paweł Staszewski
2009-06-29  8:47                     ` Paweł Staszewski
2009-06-29  9:27                       ` Jarek Poplawski
2009-06-29  9:43                         ` Paweł Staszewski
2009-06-29  8:33                   ` [PATCH net-2.6] " Jarek Poplawski
2009-06-29  9:51                     ` Paweł Staszewski
2009-06-29 10:47                       ` Jarek Poplawski
2009-06-29 16:24                         ` Paweł Staszewski
2009-06-29 17:09                           ` Jarek Poplawski
2009-06-30  7:09                         ` Jarek Poplawski
2009-06-30 20:16                           ` Paweł Staszewski
2009-06-30 20:41                             ` Jarek Poplawski
2009-06-30 23:31                               ` Paweł Staszewski
2009-07-01  6:36                                 ` Jarek Poplawski
     [not found]                                   ` <20090701072409.GA12592@ff.dom.local>
2009-07-01  9:43                                     ` Paweł Staszewski
2009-07-01  9:50                                       ` Paweł Staszewski
2009-07-01 10:13                                       ` Jarek Poplawski
2009-07-01 11:04                                         ` Jarek Poplawski
2009-07-01 22:17                                           ` Paweł Staszewski
2009-07-02  5:32                                             ` Jarek Poplawski
2009-07-02  5:43                                               ` Paweł Staszewski
2009-07-02  6:00                                                 ` Jarek Poplawski
2009-07-02 15:31                                                   ` Robert Olsson
2009-07-02 19:06                                                     ` Jarek Poplawski
2009-07-02 21:32                                                       ` Robert Olsson
2009-07-02 22:13                                                         ` Jarek Poplawski
2009-07-05  0:26                                                   ` Paweł Staszewski
2009-07-05  0:30                                                     ` Paweł Staszewski
2009-07-05 16:20                                                       ` Jarek Poplawski
2009-07-05 17:32                                                         ` Jarek Poplawski
2009-07-05 21:32                                                           ` Paul E. McKenney
2009-07-05 22:23                                                             ` Jarek Poplawski [this message]
2009-07-05 23:53                                                               ` Paweł Staszewski
2009-07-06  9:02                                                                 ` Jarek Poplawski
2009-07-07 22:56                                                                   ` Paweł Staszewski
2009-07-07 23:50                                                                     ` Jarek Poplawski
2009-07-09 20:34                                                                       ` Paweł Staszewski
2009-07-14 19:41                                                                         ` [PATCH net-next] " Jarek Poplawski
2009-07-15  7:43                                                                           ` Robert Olsson
2009-07-15 13:05                                                                             ` Jarek Poplawski
2009-07-17  8:08                                                                               ` Robert Olsson
2009-07-20 14:41                                                                           ` David Miller
2009-07-07 23:23                                                                   ` [PATCH net-2.6] " Paweł Staszewski
2009-07-07 23:30                                                                     ` Paweł Staszewski
2009-07-14 18:33                                                             ` [PATCH net-next] " Jarek Poplawski
2009-07-20 14:41                                                               ` David Miller
2009-07-14 21:20                                                             ` [PATCH net-next] ipv4: fib_trie: Use tnode_get_child_rcu() and node_parent_rcu() in lookups Jarek Poplawski
2009-07-20 14:41                                                               ` David Miller
2009-07-05  0:31                                                     ` [PATCH net-2.6] Re: rib_trie / Fix inflate_threshold_root. Now=15 size=11 bits Paweł Staszewski
2009-07-05 12:56                                                     ` [PATCH -stable] " Jarek Poplawski
2009-07-05 13:08                                                     ` [PATCH v2 " Jarek Poplawski
2009-07-08  2:42                                                       ` David Miller
2009-07-08  6:44                                                         ` Jarek Poplawski
2009-06-29 10:58                       ` [PATCH net-2.6] " Jarek Poplawski
2009-06-30 19:48                         ` David Miller
2009-06-30 20:14                           ` Jarek Poplawski
2009-07-10 15:29                           ` Stephen Hemminger

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=20090705222301.GA3203@ami.dom.local \
    --to=jarkao2@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=pstaszewski@itcare.pl \
    --cc=robert@robur.slu.se \
    /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 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).