Re: [PATCH -next v3 0/9] rbtree: Cache leftmost node internally

Andrew Morton
2017-07-19T22:54:09Z

On Thu, 29 Jun 2017 10:15:44 -0700 Davidlohr Bueso <dave@stgolabs.net> wrote:

> Changes from v2 (https://lkml.org/lkml/2017/6/8/857):
> - Fixed 0day reported crash for drm_mm selftest program. We were
> not correctly using the cached version of rbtree with the allocated
> nodes.
> - Added cfq patch to use internal rbtree caching.
> - Added Christian's and Jan's reviews.
>
> Changes from v1 (https://marc.info/?l=linux-kernel&m=149611025616685):
> - No longer rfc.
> - Removed bogus semimcolon in rb_first_cached()
> - Updated missing interval tree user drivers/infiniband/hw/hfi1/
> - Removed redundant @cached arg in when erasing a node.
> - Added more patches that make use of rb_first_cached(), which I
> thought might be worth it: procfs and epoll.
> - Cc more people for patch 5, which touches drivers such as infiniband
> and gpu. The rest of the changes are pretty covered with the current
> Cc'ed maintainers and mm folks.
>
> Hi,
>
> Here's a proposal for extending rbtrees to internally cache the leftmost
> node such that we can have fast overlap check optimization for all interval
> tree users[1]. The benefits of this series are that:
>
> (i) Unify users that do internal leftmost node caching.

That's nice. Except the series adds more lines than it removes.

> (ii) Optimize all interval tree users.

Was any attempt made to quantify the benefit?

> (iii) Convert at least two new users (epoll and procfs) to the new interface.
>