Re: [PATCH v3 0/3] make RB_DECLARE_CALLBACKS more generic

From: Peter Zijlstra
Date: Wed Jul 03 2019 - 03:23:02 EST


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) <peterz@xxxxxxxxxxxxx>