[DTrace-devel] [PATCH 3/7] htab: add dt_htab_insert_unique

Nick Alcock nick.alcock at oracle.com
Wed Oct 13 05:19:30 PDT 2021


On 8 Oct 2021, Eugene Loh spake thusly:

> Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
>
> Incidentally, an alternative to introducing new_bucket is, instead of 
> setting new_bucket=1, just set no_dups=0.  That is, the "no dups" flag
> becomes irrelevant if you're introducing a new bucket anyhow.  Or, 
> branch to "add:" only if no_dups==0.  It just seems weird to be using 
> both new_bucket and no_dups.  But not a big deal.  So ignore these 
> suggestions if they strike you as worse than the problem.

Yep. I was trying not to change things too much.

Kris thinks I should just drop this entire commit since it's unused
anywhere. I don't think he's wrong.

> Also, though this is "unrelated" to the patch, I was wondering if you 
> could explain the pre-existing code.  We enter the insert function.  We 
> look for a match.  If none, we'll add a bucket and therefore check the 
> htab size.  If needed, we resize the htab.  At that point, we "retry."  
> Why?  If we failed to find a bucket the first time, why should we find 
> one now?  Or, are we rerunning the search merely for the side effect of 
> recomputing idx?

The latter :) it avoids having to write the bucket search loop twice.
We're retrying the bucket search.

-- 
NULL && (void)



More information about the DTrace-devel mailing list