[DTrace-devel] [PATCH 1/7] htab reduction: kernpath
    Eugene Loh 
    eugene.loh at oracle.com
       
    Thu Oct  7 17:27:54 PDT 2021
    
    
  
Small nit:  it would seem that cmd/ctf_module_dump.c no longer needs to 
#define BUCKETS.  So that line can be removed.
Mostly, I have some higher level questions about why dtp->dt_nkernpaths 
and dtp->dt_kernpathlist are maintained.
It seems that dtp->dt_nkernpaths is used only to see if the htab is 
empty.  How about an htab function that just tells you at a minimum 
whether it's empty or more realistically how many nbuckets or entries 
there are.  Something like that.
Actually, to test whether we need to initialize dtp->dt_kernpaths, 
instead of checking dt_nkernpaths, how about simply checking 
dtp->dt_kernpaths!=NULL.
The other use of dt_nkernpaths is for destroying the kernpaths htab.  
This is apparently also the only reason that dtp->dt_kernpathlist is 
maintained.  Alternative solutions come to mind.  E.g., instead of 
maintaining dt_kernpathlist, how about dt_htab provides an iterator over 
its entries?  Or, probably better, just allow callers to specify a 
destructor (along with hval, cmp, etc.);  then have dt_htab_destroy() 
iterate over entries, calling the destructor, and finally destroying the 
htab?
Anyhow, I might be missing the big picture here, but those are the 
things I'm wondering.
    
    
More information about the DTrace-devel
mailing list