From: Andrew Morton <akpm@linux-foundation.org>
To: "Wolfram Strepp" <wstrepp@gmx.de>
Cc: linux-kernel@vger.kernel.org, peterz@infradead.org, lowdanie@gmail.com
Subject: Re: [PATCH 1/3] Further optimization of function rb_erase() in lib/rbtree.c
Date: Fri, 10 Apr 2009 17:07:34 -0700 [thread overview]
Message-ID: <20090410170734.3f3e1122.akpm@linux-foundation.org> (raw)
In-Reply-To: <20090410102346.320840@gmx.net>
> Subject: [PATCH 1/3] Further optimization of function rb_erase() in lib/rbtree.c
Three distinct patches, all with the same title.
Please carefully choose a unique title for each patch in the series.
We push thousands and thousands of patches into Linux and it all gets
complex and confusing. These little organisational things help us to
manage the volume and the complexity.
On Fri, 10 Apr 2009 12:23:46 +0200
"Wolfram Strepp" <wstrepp@gmx.de> wrote:
> This small patch-series reorganizes some lines in function rb_erase()
> in lib/rbtree.c, and as a result one if-condition can be omitted.
> Tested on x86.
>
>
> First, move some code around in order to make the next change more obvious.
>
> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Signed-off-by: Wolfram Strepp <wstrepp@gmx.de>
>
> ---
> lib/rbtree.c | 19 ++++++++++---------
> 1 file changed, 10 insertions(+), 9 deletions(-)
> Index: linux-2.6/lib/rbtree.c
> ===================================================================
> --- linux-2.6.orig/lib/rbtree.c
> +++ linux-2.6/lib/rbtree.c
> @@ -237,6 +237,16 @@ void rb_erase(struct rb_node *node, stru
> node = node->rb_right;
> while ((left = node->rb_left) != NULL)
> node = left;
> +
> + if (rb_parent(old))
> + {
> + if (rb_parent(old)->rb_left == old)
> + rb_parent(old)->rb_left = node;
> + else
> + rb_parent(old)->rb_right = node;
> + } else
> + root->rb_node = node;
You may as well fix the obvious coding-style error while moving the
code. scripts/checkpatch.pl will detect this one.
> child = node->rb_right;
> parent = rb_parent(node);
> color = rb_color(node);
> @@ -253,15 +263,6 @@ void rb_erase(struct rb_node *node, stru
> node->rb_right = old->rb_right;
> node->rb_left = old->rb_left;
>
> - if (rb_parent(old))
> - {
> - if (rb_parent(old)->rb_left == old)
> - rb_parent(old)->rb_left = node;
> - else
> - rb_parent(old)->rb_right = node;
> - } else
> - root->rb_node = node;
> -
> rb_set_parent(old->rb_left, node);
> if (old->rb_right)
> rb_set_parent(old->rb_right, node);
prev parent reply other threads:[~2009-04-11 0:10 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-10 10:23 [PATCH 1/3] Further optimization of function rb_erase() in lib/rbtree.c Wolfram Strepp
2009-04-11 0:07 ` Andrew Morton [this message]
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=20090410170734.3f3e1122.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lowdanie@gmail.com \
--cc=peterz@infradead.org \
--cc=wstrepp@gmx.de \
/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