On Tue, Jul 02, 2019 at 09:01:53PM -0700, Michel Lespinasse wrote: > These changes are intended to make the RB_DECLARE_CALLBACKS macro > more generic (allowing the aubmented subtree information to be a struct > instead of a scalar). > > Changes since v2: Left the RBSTATIC and RBNAME arguments first in the > RB_DECLARE_CALLBACKS and RB_DECLARE_CALLBACKS_MAX macros as suggested > by Peter Zijlstra. > > Changes since v1: I have added a new RB_DECLARE_CALLBACKS_MAX macro, > which generates augmented rbtree callbacks where the subtree information > can be expressed as max(f(node)). This covers all current uses, and thus > makes it easy to do the later RB_DECLARE_CALLBACKS definition change > as it's only currently used in RB_DECLARE_CALLBACKS_MAX. > > I have also verified the compiled lib/interval_tree.o and mm/mmap.o > files to check that they didn't change. This held as expected for > interval_tree.o; mmap.o did have some changes which could be reverted > by marking __vma_link_rb as noinline. I did not add such a change to the > patchset; I felt it was reasonable enough to let the inlining decision > up to the compiler. > > Michel Lespinasse (3): > augmented rbtree: add comments for RB_DECLARE_CALLBACKS macro > augmented rbtree: add new RB_DECLARE_CALLBACKS_MAX macro > augmented rbtree: rework the RB_DECLARE_CALLBACKS macro definition
Thanks Michel, looking good now! Acked-by: Peter Zijlstra (Intel) <[email protected]>

