From: Peter Zijlstra <peterz@infradead.org>
To: Michel Lespinasse <walken@google.com>
Cc: riel@redhat.com, daniel.santos@pobox.com, aarcange@redhat.com,
dwmw2@infradead.org, akpm@linux-foundation.org,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/6] rbtree: faster augmented insert
Date: Fri, 27 Jul 2012 22:04:26 +0200 [thread overview]
Message-ID: <1343419466.32120.50.camel@twins> (raw)
In-Reply-To: <1342787467-5493-5-git-send-email-walken@google.com>
On Fri, 2012-07-20 at 05:31 -0700, Michel Lespinasse wrote:
> +static void augment_rotate(struct rb_node *rb_old, struct rb_node *rb_new)
> +{
> + struct test_node *old = rb_entry(rb_old, struct test_node, rb);
> + struct test_node *new = rb_entry(rb_new, struct test_node, rb);
> +
> + /* Rotation doesn't change subtree's augmented value */
> + new->augmented = old->augmented;
> + old->augmented = augment_recompute(old);
> +}
> +static inline void augment_propagate(struct rb_node *rb)
> +{
> + while (rb) {
> + struct test_node *node = rb_entry(rb, struct test_node, rb);
> + node->augmented = augment_recompute(node);
> + rb = rb_parent(&node->rb);
> + }
> +}
So why do we have to introduce these two new function pointers to pass
along when they can both be trivially expressed in the old single
augment function?
next prev parent reply other threads:[~2012-07-27 20:04 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-20 12:31 [RFC PATCH 0/6] augmented rbtree changes Michel Lespinasse
2012-07-20 12:31 ` [PATCH 1/6] rbtree: rb_erase updates and comments Michel Lespinasse
2012-07-24 18:50 ` Rik van Riel
2012-07-20 12:31 ` [PATCH 2/6] rbtree: optimize fetching of sibling node Michel Lespinasse
2012-07-24 21:52 ` Rik van Riel
2012-07-20 12:31 ` [PATCH 3/6] augmented rbtree test Michel Lespinasse
2012-07-25 15:42 ` Rik van Riel
2012-07-20 12:31 ` [PATCH 4/6] rbtree: faster augmented insert Michel Lespinasse
2012-07-25 16:10 ` Rik van Riel
2012-07-25 17:54 ` Rik van Riel
2012-07-27 19:26 ` Peter Zijlstra
2012-07-27 21:43 ` Michel Lespinasse
2012-07-27 19:31 ` Peter Zijlstra
2012-07-27 20:04 ` Peter Zijlstra [this message]
2012-07-27 21:55 ` Michel Lespinasse
2012-07-20 12:31 ` [PATCH 5/6] rbtree: faster augmented erase Michel Lespinasse
2012-07-24 1:54 ` Michel Lespinasse
2012-07-25 17:53 ` Rik van Riel
2012-07-27 19:43 ` Peter Zijlstra
2012-07-27 20:02 ` Peter Zijlstra
2012-07-28 0:44 ` Michel Lespinasse
2012-07-28 2:31 ` Michel Lespinasse
2012-07-20 12:31 ` [PATCH 6/6] rbtree: remove prior augmented rbtree implementation Michel Lespinasse
2012-07-24 1:55 ` Michel Lespinasse
2012-07-25 17:59 ` Rik van Riel
2012-07-24 1:46 ` [RFC PATCH 0/6] augmented rbtree changes Michel Lespinasse
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1343419466.32120.50.camel@twins \
--to=peterz@infradead.org \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=daniel.santos@pobox.com \
--cc=dwmw2@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=riel@redhat.com \
--cc=walken@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®