Re: [GIT PULL] perf updates/fixes

From: Ingo Molnar
Date: Fri Oct 12 2012 - 04:39:25 EST



* Ingo Molnar <mingo@xxxxxxxxxx> wrote:

> Linus,
>
> Please pull the latest perf-urgent-for-linus git tree from:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf-urgent-for-linus
>
> HEAD: 95cf59ea72331d0093010543b8951bb43f262cac perf: Fix perf_cgroup_switch for sw-events

Note that if you merge it then there's a new semantic conflict
with recent rbtree.c changes in your tree, causing a tools/perf/
build failure:

../../lib/rbtree.c:24:36: fatal error: linux/rbtree_augmented.h: No such file or directory compilation terminated.

See the fix below.

( If the __maybe_unused annotations are too ugly for
lib/rbtree.c then we'll fix that in tools/perf in a cleaner
way, weakening the compiler checks for the rbtree build. We
are using stronger compiler checks in tools/perf/, which has
served us very well so far and is a big net win - the price is
the occasional extra annotation of dummy inline function
parameters. )

Thanks,

Ingo

Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>

---
lib/rbtree.c | 7 ++++---
tools/perf/util/include/linux/rbtree_augmented.h | 2 ++
2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/lib/rbtree.c b/lib/rbtree.c
index 4f56a11..993ffcb 100644
--- a/lib/rbtree.c
+++ b/lib/rbtree.c
@@ -22,6 +22,7 @@
*/

#include <linux/rbtree_augmented.h>
+#include <linux/compiler.h>
#include <linux/export.h>

/*
@@ -364,9 +365,9 @@ EXPORT_SYMBOL(__rb_erase_color);
* out of the rb_insert_color() and rb_erase() function definitions.
*/

-static inline void dummy_propagate(struct rb_node *node, struct rb_node *stop) {}
-static inline void dummy_copy(struct rb_node *old, struct rb_node *new) {}
-static inline void dummy_rotate(struct rb_node *old, struct rb_node *new) {}
+static inline void dummy_propagate(struct rb_node *node __maybe_unused, struct rb_node *stop __maybe_unused) {}
+static inline void dummy_copy(struct rb_node *old __maybe_unused, struct rb_node *new __maybe_unused) {}
+static inline void dummy_rotate(struct rb_node *old __maybe_unused, struct rb_node *new __maybe_unused) {}

static const struct rb_augment_callbacks dummy_callbacks = {
dummy_propagate, dummy_copy, dummy_rotate
diff --git a/tools/perf/util/include/linux/rbtree_augmented.h b/tools/perf/util/include/linux/rbtree_augmented.h
new file mode 100644
index 0000000..9d6fcdf
--- /dev/null
+++ b/tools/perf/util/include/linux/rbtree_augmented.h
@@ -0,0 +1,2 @@
+#include <stdbool.h>
+#include "../../../../include/linux/rbtree_augmented.h"

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/