[DTrace-devel] [PATCH v2 07/11] htab reduction: kernpath

Eugene Loh eugene.loh at oracle.com
Fri Oct 22 12:45:49 PDT 2021


On 10/22/21 3:09 PM, Kris Van Hees wrote:

> On Fri, Oct 22, 2021 at 12:31:56PM -0400, Eugene Loh wrote:
>> On 10/22/21 1:39 AM, Kris Van Hees wrote:
>>
>>> On Fri, Oct 22, 2021 at 12:15:51AM -0400, Eugene Loh wrote:
>>>> There is, however, some other consistency that might be reasonable in
>>>> these various patches.  E.g., in dt_htab.h, del always comes before
>>>> next.  So, how about using the same order in other files as well -- that
>>>> is, wherever "dt_htab_ops_t *_htab_ops" are defined.
>>>>
>>>> But come to think of it, when you define delete functions that free
>>>> resources, you append customized suffixes:  del_buf, del_path, del_mod,
>>>> and del_prov.  Why?  How about making them all del_res (or something).
>>>> Then, the dt_htab_ops_t definitions can all use a common macro:
>>>> DEFINE_HTAB_STD_OPS_RES(ID) (or something like that).
>>> Why not simply del?  Whether a delete function has other resources to free
>>> or not shouldn't matter to the htab implementation.  You call the op to
>>> delete the element, and the implementation of the ops will do what is needed
>>> for that particular type.
>> Hmm, yeah, good point.  But the delete function has the
>> doubly-linked-list pointer manipulation to do in any case, and that is
>> set up by the DEFINE_HE_STD_LINK_FUNCS macro.  So, I think the idea is
>> to take advantage of that boilerplate setup and to add a differently
>> named function as well in the case that there are other resources to
>> free.  Otherwise, one is defining a del() function that cuts and pastes
>> lots of pointer management in.
> Well, you can still define the standard link functions.  And then define a
> cusstom del_*() function that calls the *_del() function for the linking
> work to be done, and does the resource freeing.  And register that del_*()
> custom one as the .del hook.
Yes.  I think that's exactly what Nick does.  My point was only that if 
such custom functions had a uniform name (rather than del_mod, del_prov, 
del_path, etc.), then the registrations could all use a common macro 
(some adaptation of DEFINE_HTAB_STD_OPS).



More information about the DTrace-devel mailing list