Subject: Re: rib_trie / Fix inflate_threshold_root. Now=15 size=11 bits

From: Jarek Poplawski <[email-masked]>
Date: Fri, 26 Jun 2009 23:20:10 +0200

On Fri, Jun 26, 2009 at 10:37:13PM +0200, Jarek Poplawski wrote:
> On Fri, Jun 26, 2009 at 10:26:53PM +0200, Robert Olsson wrote:
> > 
> > 
> > Yes looks like a good solution but maybe it safest to synchronize unconditionally?
> 
> Hmm... I lost around half an hour for this doubt... Sure! (Unless
> there are some strange cases which very often create and destroy very
> small tables?)

...or maybe even only updating such small tables very often?

Btw., Robert, I wondered about some design details lately, especially
about pointer to a parent. I didn't see it in the basic docs, so it
seems it could be avoided. It seems to be a problem with RCU, unless I
miss something: if there were no going back from children to parents
it seems we could free those "temporary" (created by inflate() and
halve() and destroyed before resize() has finished) earlier.

Another problem with this, it seems, are possibly false lookups (if we
go back to the new parent which doesn't have it's parent or other nodes
updated). So, was there so much performance gain to introduce this?

Thanks,
Jarek P.