[dpdk-dev] [PATCH v3] hash table: add an iterator over conflicting entries
Wang, Yipeng1
yipeng1.wang at intel.com
Tue Sep 4 22:57:44 CEST 2018
Thanks for your reply.
>-----Original Message-----
>From: Michel Machado [mailto:michel at digirati.com.br]
> Exposing the private fields would bind the interface with the
>current implementation of the hash table. In the way we are proposing,
>one should be able to replace the underlying algorithm and not touching
>the header files that applications use. But, yes, your solution would
>enable applications to allocate iterator states as local variables as well.
>
[Wang, Yipeng] I didn't mean to expose the private fields. But only the
Type. For example, rte_hash does not expose its private fields to users.
One can change the fields without changing API.
>
> Notice that the field total_entry only exists for
>rte_hash_iterate(). But even if total_entry were in the state of
>rte_hash_iterate_conflict_entries(), it would still save on the
>multiplication as long as rte_hash_iterate_conflict_entries() is called
>at least twice. Calling rte_hash_iterate_conflict_entries() once evens
>out, and calling rte_hash_iterate_conflict_entries() more times adds
>further savings. As a side note. in our application, whenever an
>iterator of conflicting entries is initialized, we call
>rte_hash_iterate_conflict_entries() at least once.
>
[Wang, Yipeng] I mean the extra overhead of _init function which does the
Calculation. For iterate_conflict_entries, since it does not need
Total_entries, _init will cost extra cycles for the calculation, especially in my
imaginary use cases, one may call _init multiple times on the same state to iterate
different keys. I guess your application is not sensitive to this overhead,
So I think I am OK with current implementation.
>
>[ ]'s
>Michel Machado
More information about the dev
mailing list