* Building tools/perf fails on next
@ 2015-06-17 6:09 Riku Voipio
2015-06-17 9:17 ` [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space Ingo Molnar
0 siblings, 1 reply; 12+ messages in thread
From: Riku Voipio @ 2015-06-17 6:09 UTC (permalink / raw)
To: Peter Zijlstra; +Cc: mingo, acme, linux-kernel
Hi,
The commit:
commit d72da4a4d973d8a0a0d3c97e7cdebf287fbe3a99
Author: Peter Zijlstra <peterz@infradead.org>
Date: Wed May 27 11:09:36 2015 +0930
rbtree: Make lockless searches non-fatal
Adds <linux/rcupdate.h> to rbtree.h, which in turn is included from perf userspace
headers. Now building tools/perf will fail with hundreds of lines of gcc complaining
about kernel defines not available. Reverting the patch makes perf build again.
This is with gcc-4.9 from debian but I don't think it's compiler specific.
Beginning of build error:
$ make -C tools/perf
make: Entering directory '/build/linux/tools/perf'
BUILD: Doing 'make -j4' parallel build
Auto-detecting system features:
... dwarf: [ on ]
... glibc: [ on ]
... gtk2: [ OFF ]
... libaudit: [ on ]
... libbfd: [ OFF ]
... libelf: [ on ]
... libnuma: [ on ]
... libperl: [ on ]
... libpython: [ on ]
... libslang: [ on ]
... libunwind: [ on ]
... libdw-dwarf-unwind: [ on ]
... zlib: [ on ]
... lzma: [ OFF ]
config/Makefile:395: GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev
config/Makefile:527: No bfd.h/libbfd found, please install binutils-dev[el]/zlib-static/libiberty-dev to gain symbol demangling
config/Makefile:556: No liblzma found, disables xz kernel module decompression, please install xz-devel/liblzma-dev
CC util/abspath.o
CC event-parse.o
CC fd/array.o
LD fd/libapi-in.o
CC fs/fs.o
CC fs/debugfs.o
CC event-plugin.o
CC fs/findfs.o
CC trace-seq.o
CC util/alias.o
CC parse-filter.o
CC fs/tracefs.o
CC util/annotate.o
LD fs/libapi-in.o
LD libapi-in.o
AR libapi.a
CC parse-utils.o
GEN common-cmds.h
PERF_VERSION = 4.1.rc8.gca3cfa
CC kbuffer-parse.o
LD libtraceevent-in.o
CC arch/common.o
LINK libtraceevent.a
CC ui/setup.o
In file included from /build/linux/include/uapi/linux/kernel.h:4:0,
from /build/linux/include/linux/cache.h:4,
from /build/linux/include/linux/rcupdate.h:37,
from /build/linux/tools/perf/util/include/../../../../include/linux/rbtree.h:34,
from /build/linux/tools/perf/util/include/linux/rbtree.h:4,
from arch/../util/map.h:7,
from arch/../util/event.h:8,
from arch/../util/session.h:5,
from arch/common.h:4,
from arch/common.c:3:
/build/linux/include/uapi/linux/sysinfo.h:8:2: error: unknown type name ‘__kernel_long_t’
__kernel_long_t uptime; /* Seconds since boot */
^
/build/linux/include/uapi/linux/sysinfo.h:9:2: error: unknown type name ‘__kernel_ulong_t’
__kernel_ulong_t loads[3]; /* 1, 5, and 15 minute load averages */
^
/build/linux/include/uapi/linux/sysinfo.h:10:2: error: unknown type name ‘__kernel_ulong_t’
__kernel_ulong_t totalram; /* Total usable main memory size */
^
/build/linux/include/uapi/linux/sysinfo.h:11:2: error: unknown type name ‘__kernel_ulong_t’
__kernel_ulong_t freeram; /* Available memory size */
^
/build/linux/include/uapi/linux/sysinfo.h:12:2: error: unknown type name ‘__kernel_ulong_t’
__kernel_ulong_t sharedram; /* Amount of shared memory */
^
/build/linux/include/uapi/linux/sysinfo.h:13:2: error: unknown type name ‘__kernel_ulong_t’
__kernel_ulong_t bufferram; /* Memory used by buffers */
^
/build/linux/include/uapi/linux/sysinfo.h:14:2: error: unknown type name ‘__kernel_ulong_t’
__kernel_ulong_t totalswap; /* Total swap space size */
^
/build/linux/include/uapi/linux/sysinfo.h:15:2: error: unknown type name ‘__kernel_ulong_t’
__kernel_ulong_t freeswap; /* swap space still available */
^
/build/linux/include/uapi/linux/sysinfo.h:18:2: error: unknown type name ‘__kernel_ulong_t’
__kernel_ulong_t totalhigh; /* Total high memory size */
^
/build/linux/include/uapi/linux/sysinfo.h:19:2: error: unknown type name ‘__kernel_ulong_t’
__kernel_ulong_t freehigh; /* Available high memory size */
^
/build/linux/include/uapi/linux/sysinfo.h:21:22: error: ‘__kernel_ulong_t’ undeclared here (not in a function)
char _f[20-2*sizeof(__kernel_ulong_t)-sizeof(__u32)]; /* Padding: libc5 uses this.. */
....
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space
2015-06-17 6:09 Building tools/perf fails on next Riku Voipio
@ 2015-06-17 9:17 ` Ingo Molnar
2015-06-17 9:33 ` Riku Voipio
2015-07-06 8:13 ` Stephen Rothwell
0 siblings, 2 replies; 12+ messages in thread
From: Ingo Molnar @ 2015-06-17 9:17 UTC (permalink / raw)
To: Riku Voipio, Rusty Russell, Stephen Rothwell
Cc: Peter Zijlstra, mingo, acme, linux-kernel, Paul E. McKenney
* Riku Voipio <riku.voipio@iki.fi> wrote:
> Hi,
>
> The commit:
>
> commit d72da4a4d973d8a0a0d3c97e7cdebf287fbe3a99
> Author: Peter Zijlstra <peterz@infradead.org>
> Date: Wed May 27 11:09:36 2015 +0930
>
> rbtree: Make lockless searches non-fatal
>
> Adds <linux/rcupdate.h> to rbtree.h, which in turn is included from perf userspace
> headers. Now building tools/perf will fail with hundreds of lines of gcc complaining
> about kernel defines not available. Reverting the patch makes perf build again.
> This is with gcc-4.9 from debian but I don't think it's compiler specific.
Does the patch below make things work?
This fix could go into the modules tree, as this commit came via Rusty.
Stephen, feel free to add:
make -C tools/perf
to the linux-next build tests. It's always supposed to build without failure, in
pretty much whatever x86 distro you run your build tests on.
Thanks,
Ingo
===================>
>From 62c251255f07ede8efa356d4ea9ab51827ffa0d0 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@kernel.org>
Date: Wed, 17 Jun 2015 11:07:11 +0200
Subject: [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space
Reported-by: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
tools/perf/util/include/linux/rcupdate.h | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/tools/perf/util/include/linux/rcupdate.h b/tools/perf/util/include/linux/rcupdate.h
new file mode 100644
index 000000000000..3e022dd9a69b
--- /dev/null
+++ b/tools/perf/util/include/linux/rcupdate.h
@@ -0,0 +1,9 @@
+#ifndef PERF_LINUX_RCUPDATE_H_
+#define PERF_LINUX_RCUPDATE_H_
+
+/* Simple trivial wrappers for now, we don't use RCU in perf user-space (yet): */
+#define WRITE_ONCE(var, val) ((var) = (val))
+#define rcu_assign_pointer(ptr, val) WRITE_ONCE(ptr, val)
+
+#endif
+
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space
2015-06-17 9:17 ` [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space Ingo Molnar
@ 2015-06-17 9:33 ` Riku Voipio
2015-07-06 8:13 ` Stephen Rothwell
1 sibling, 0 replies; 12+ messages in thread
From: Riku Voipio @ 2015-06-17 9:33 UTC (permalink / raw)
To: Ingo Molnar
Cc: Rusty Russell, Stephen Rothwell, Peter Zijlstra, mingo, acme,
linux-kernel, Paul E. McKenney
On Wednesday, June 17, 2015 12:17:04 PM EEST, Ingo Molnar wrote:
> * Riku Voipio <riku.voipio@iki.fi> wrote:
>
>> Hi,
>>
>> The commit:
>>
>> commit d72da4a4d973d8a0a0d3c97e7cdebf287fbe3a99
>> Author: Peter Zijlstra <peterz@infradead.org>
>> Date: Wed May 27 11:09:36 2015 +0930 ...
>
> Does the patch below make things work?
It does,
Tested-by: Riku Voipio <riku.voipio@iki.fi>
> This fix could go into the modules tree, as this commit came via Rusty.
>
> Stephen, feel free to add:
>
> make -C tools/perf
>
> to the linux-next build tests. It's always supposed to build
> without failure, in
> pretty much whatever x86 distro you run your build tests on.
>
> Thanks,
>
> Ingo
>
>
> ===================>
> From 62c251255f07ede8efa356d4ea9ab51827ffa0d0 Mon Sep 17 00:00:00 2001
> From: Ingo Molnar <mingo@kernel.org>
> Date: Wed, 17 Jun 2015 11:07:11 +0200
> Subject: [PATCH] tools/perf, rbtree: Add RCU wrappers to make
> rbtree.h usable in user-space
>
> Reported-by: Riku Voipio <riku.voipio@iki.fi>
> Signed-off-by: Ingo Molnar <mingo@kernel.org>
> ---
> tools/perf/util/include/linux/rcupdate.h | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/tools/perf/util/include/linux/rcupdate.h
> b/tools/perf/util/include/linux/rcupdate.h
> new file mode 100644
> index 000000000000..3e022dd9a69b
> --- /dev/null
> +++ b/tools/perf/util/include/linux/rcupdate.h
> @@ -0,0 +1,9 @@
> +#ifndef PERF_LINUX_RCUPDATE_H_
> +#define PERF_LINUX_RCUPDATE_H_
> +
> +/* Simple trivial wrappers for now, we don't use RCU in perf
> user-space (yet): */
> +#define WRITE_ONCE(var, val) ((var) = (val))
> +#define rcu_assign_pointer(ptr, val) WRITE_ONCE(ptr, val)
> +
> +#endif
> +
>
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space
[not found] ` <5594AD98.4050402@jons.org>
@ 2015-07-02 13:21 ` Tejun Heo
2015-07-02 20:51 ` Rusty Russell
0 siblings, 1 reply; 12+ messages in thread
From: Tejun Heo @ 2015-07-02 13:21 UTC (permalink / raw)
To: Rusty Russell; +Cc: Jens Axboe, Jon Christopherson, linux-kernel
(cc'ing Rusty and lkml)
Hello,
On Wed, Jul 01, 2015 at 10:18:48PM -0500, Jon Christopherson wrote:
> Hello guys,
>
> One last thing .. the recent commit : 02201e3f1 ("Merge tag
> 'modules-next-for-linus' of
> git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux") broke perf tools
> compilation. I know this isnt your area, but its a simple accidental
> omission of a file. Here is the needed change to correct retrieved from the
> list:
>
> diff --git a/tools/perf/util/include/linux/rcupdate.h
> b/tools/perf/util/include/linux/rcupdate.h
> new file mode 100644
> index 0000000..51c0f45
> --- /dev/null
> +++ b/tools/perf/util/include/linux/rcupdate.h
> @@ -0,0 +1,9 @@
> +#ifndef PERF_LINUX_RCUPDATE_H_
> +#define PERF_LINUX_RCUPDATE_H_
> +
> +/* Simple trivial wrappers for now, we don't use RCU in perf user-space
> (yet): */
> +#define WRITE_ONCE(var, val) ((var) = (val))
> +#define rcu_assign_pointer(ptr, val) WRITE_ONCE(ptr, val)
> +
> +#endif
> +
Rusty?
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space
2015-07-02 13:21 ` [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space Tejun Heo
@ 2015-07-02 20:51 ` Rusty Russell
2015-07-03 7:14 ` Peter Zijlstra
0 siblings, 1 reply; 12+ messages in thread
From: Rusty Russell @ 2015-07-02 20:51 UTC (permalink / raw)
To: Tejun Heo; +Cc: Jens Axboe, Jon Christopherson, linux-kernel, Peter Zijlstra
Tejun Heo <tj@kernel.org> writes:
> (cc'ing Rusty and lkml)
Looks like Peter Zijlstra is the one to take this fix...
Cheers,
Rusty.
>
> Hello,
>
> On Wed, Jul 01, 2015 at 10:18:48PM -0500, Jon Christopherson wrote:
>> Hello guys,
>>
>> One last thing .. the recent commit : 02201e3f1 ("Merge tag
>> 'modules-next-for-linus' of
>> git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux") broke perf tools
>> compilation. I know this isnt your area, but its a simple accidental
>> omission of a file. Here is the needed change to correct retrieved from the
>> list:
>>
>> diff --git a/tools/perf/util/include/linux/rcupdate.h
>> b/tools/perf/util/include/linux/rcupdate.h
>> new file mode 100644
>> index 0000000..51c0f45
>> --- /dev/null
>> +++ b/tools/perf/util/include/linux/rcupdate.h
>> @@ -0,0 +1,9 @@
>> +#ifndef PERF_LINUX_RCUPDATE_H_
>> +#define PERF_LINUX_RCUPDATE_H_
>> +
>> +/* Simple trivial wrappers for now, we don't use RCU in perf user-space
>> (yet): */
>> +#define WRITE_ONCE(var, val) ((var) = (val))
>> +#define rcu_assign_pointer(ptr, val) WRITE_ONCE(ptr, val)
>> +
>> +#endif
>> +
>
> Rusty?
>
> Thanks.
>
> --
> tejun
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space
2015-07-02 20:51 ` Rusty Russell
@ 2015-07-03 7:14 ` Peter Zijlstra
2015-07-03 10:00 ` Jon Christopherson
2015-07-04 16:15 ` Arnaldo Carvalho de Melo
0 siblings, 2 replies; 12+ messages in thread
From: Peter Zijlstra @ 2015-07-03 7:14 UTC (permalink / raw)
To: Rusty Russell
Cc: Tejun Heo, Jens Axboe, Jon Christopherson, linux-kernel,
Arnaldo Carvalho de Melo
On Fri, Jul 03, 2015 at 06:21:12AM +0930, Rusty Russell wrote:
> Looks like Peter Zijlstra is the one to take this fix...
acme is the steward of tools/perf/
> >> diff --git a/tools/perf/util/include/linux/rcupdate.h
> >> b/tools/perf/util/include/linux/rcupdate.h
> >> new file mode 100644
> >> index 0000000..51c0f45
> >> --- /dev/null
> >> +++ b/tools/perf/util/include/linux/rcupdate.h
> >> @@ -0,0 +1,9 @@
> >> +#ifndef PERF_LINUX_RCUPDATE_H_
> >> +#define PERF_LINUX_RCUPDATE_H_
> >> +
> >> +/* Simple trivial wrappers for now, we don't use RCU in perf user-space
> >> (yet): */
> >> +#define WRITE_ONCE(var, val) ((var) = (val))
It looks like perf includes linux/compiler.h so it should already have this.
> >> +#define rcu_assign_pointer(ptr, val) WRITE_ONCE(ptr, val)
That's plain wrong, WRITE_ONCE(*(ptr), (val))
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space
2015-07-03 7:14 ` Peter Zijlstra
@ 2015-07-03 10:00 ` Jon Christopherson
2015-07-04 16:15 ` Arnaldo Carvalho de Melo
1 sibling, 0 replies; 12+ messages in thread
From: Jon Christopherson @ 2015-07-03 10:00 UTC (permalink / raw)
To: Peter Zijlstra, Rusty Russell
Cc: Tejun Heo, Jens Axboe, linux-kernel, Arnaldo Carvalho de Melo
On 07/03/2015 02:14 AM, Peter Zijlstra wrote:
> On Fri, Jul 03, 2015 at 06:21:12AM +0930, Rusty Russell wrote:
>> Looks like Peter Zijlstra is the one to take this fix...
>
> acme is the steward of tools/perf/
This is the full context of the patch mentioned:
https://lkml.org/lkml/2015/6/17/129
>
>>>> diff --git a/tools/perf/util/include/linux/rcupdate.h
>>>> b/tools/perf/util/include/linux/rcupdate.h
>>>> new file mode 100644
>>>> index 0000000..51c0f45
>>>> --- /dev/null
>>>> +++ b/tools/perf/util/include/linux/rcupdate.h
>>>> @@ -0,0 +1,9 @@
>>>> +#ifndef PERF_LINUX_RCUPDATE_H_
>>>> +#define PERF_LINUX_RCUPDATE_H_
>>>> +
>>>> +/* Simple trivial wrappers for now, we don't use RCU in perf user-space
>>>> (yet): */
>>>> +#define WRITE_ONCE(var, val) ((var) = (val))
>
> It looks like perf includes linux/compiler.h so it should already have this.
>
>>>> +#define rcu_assign_pointer(ptr, val) WRITE_ONCE(ptr, val)
>
> That's plain wrong, WRITE_ONCE(*(ptr), (val))
>
The original author of the patch appears to be Ingo. Syntax aside .. it
solves the issue mentioned. Perhaps a corrected version could be
included instead.
-Jon
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space
2015-07-03 7:14 ` Peter Zijlstra
2015-07-03 10:00 ` Jon Christopherson
@ 2015-07-04 16:15 ` Arnaldo Carvalho de Melo
2015-07-06 10:57 ` Peter Zijlstra
1 sibling, 1 reply; 12+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-07-04 16:15 UTC (permalink / raw)
To: Peter Zijlstra
Cc: Rusty Russell, Tejun Heo, Jens Axboe, Jon Christopherson,
linux-kernel
Em Fri, Jul 03, 2015 at 09:14:46AM +0200, Peter Zijlstra escreveu:
> On Fri, Jul 03, 2015 at 06:21:12AM +0930, Rusty Russell wrote:
> > Looks like Peter Zijlstra is the one to take this fix...
>
> acme is the steward of tools/perf/
>
> > >> diff --git a/tools/perf/util/include/linux/rcupdate.h
> > >> b/tools/perf/util/include/linux/rcupdate.h
> > >> new file mode 100644
> > >> index 0000000..51c0f45
> > >> --- /dev/null
> > >> +++ b/tools/perf/util/include/linux/rcupdate.h
> > >> @@ -0,0 +1,9 @@
> > >> +#ifndef PERF_LINUX_RCUPDATE_H_
> > >> +#define PERF_LINUX_RCUPDATE_H_
> > >> +
> > >> +/* Simple trivial wrappers for now, we don't use RCU in perf user-space
> > >> (yet): */
> > >> +#define WRITE_ONCE(var, val) ((var) = (val))
>
> It looks like perf includes linux/compiler.h so it should already have this.
>
> > >> +#define rcu_assign_pointer(ptr, val) WRITE_ONCE(ptr, val)
>
> That's plain wrong, WRITE_ONCE(*(ptr), (val))
Are you sure?
In the kernel, we have this sequence:
#define rcu_assign_pointer(p, v) smp_store_release(&p, RCU_INITIALIZER(v))
#define smp_store_release(p, v) \
do { \
compiletime_assert_atomic_type(*p); \
smp_mb(); \
ACCESS_ONCE(*p) = (v); \
} while (0)
So, if you go shortcircuiting things you remove that & and that *, no?
I.e. end up with what Rusty suggested.
So, I am trying to keep as much as the semantics of the kernel not to
fall into thse traps...
Will post a RFC soon, if the rain continues preventing me from
running...
- Arnaldo
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space
2015-06-17 9:17 ` [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space Ingo Molnar
2015-06-17 9:33 ` Riku Voipio
@ 2015-07-06 8:13 ` Stephen Rothwell
2015-07-06 9:41 ` Ingo Molnar
1 sibling, 1 reply; 12+ messages in thread
From: Stephen Rothwell @ 2015-07-06 8:13 UTC (permalink / raw)
To: Ingo Molnar
Cc: Riku Voipio, Rusty Russell, Peter Zijlstra, mingo, acme,
linux-kernel, Paul E. McKenney
[-- Attachment #1: Type: text/plain, Size: 2528 bytes --]
Hi Ingo,
On Wed, 17 Jun 2015 11:17:04 +0200 Ingo Molnar <mingo@kernel.org> wrote:
>
> * Riku Voipio <riku.voipio@iki.fi> wrote:
>
> > The commit:
> >
> > commit d72da4a4d973d8a0a0d3c97e7cdebf287fbe3a99
> > Author: Peter Zijlstra <peterz@infradead.org>
> > Date: Wed May 27 11:09:36 2015 +0930
> >
> > rbtree: Make lockless searches non-fatal
> >
> > Adds <linux/rcupdate.h> to rbtree.h, which in turn is included from perf userspace
> > headers. Now building tools/perf will fail with hundreds of lines of gcc complaining
> > about kernel defines not available. Reverting the patch makes perf build again.
> > This is with gcc-4.9 from debian but I don't think it's compiler specific.
>
> Does the patch below make things work?
>
> This fix could go into the modules tree, as this commit came via Rusty.
>
> Stephen, feel free to add:
>
> make -C tools/perf
>
> to the linux-next build tests. It's always supposed to build without failure, in
> pretty much whatever x86 distro you run your build tests on.
OK, I have started doing that, but int order to make it build at all, I
have added the patch below to my fixes tree (since the breakage is now
in Linus' tree).
This means that it will get a conflict with the tip tree tomorrow, but
I will just fix the conflict by using the version from the tip tree.
Once the tip tree fixes are sent to Linus, I will drop this patch from
my fixes tree.
> From 62c251255f07ede8efa356d4ea9ab51827ffa0d0 Mon Sep 17 00:00:00 2001
> From: Ingo Molnar <mingo@kernel.org>
> Date: Wed, 17 Jun 2015 11:07:11 +0200
> Subject: [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space
>
> Reported-by: Riku Voipio <riku.voipio@iki.fi>
> Signed-off-by: Ingo Molnar <mingo@kernel.org>
> ---
> tools/perf/util/include/linux/rcupdate.h | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/tools/perf/util/include/linux/rcupdate.h b/tools/perf/util/include/linux/rcupdate.h
> new file mode 100644
> index 000000000000..3e022dd9a69b
> --- /dev/null
> +++ b/tools/perf/util/include/linux/rcupdate.h
> @@ -0,0 +1,9 @@
> +#ifndef PERF_LINUX_RCUPDATE_H_
> +#define PERF_LINUX_RCUPDATE_H_
> +
> +/* Simple trivial wrappers for now, we don't use RCU in perf user-space (yet): */
> +#define WRITE_ONCE(var, val) ((var) = (val))
> +#define rcu_assign_pointer(ptr, val) WRITE_ONCE(ptr, val)
> +
> +#endif
> +
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space
2015-07-06 8:13 ` Stephen Rothwell
@ 2015-07-06 9:41 ` Ingo Molnar
2015-07-06 22:39 ` Stephen Rothwell
0 siblings, 1 reply; 12+ messages in thread
From: Ingo Molnar @ 2015-07-06 9:41 UTC (permalink / raw)
To: Stephen Rothwell
Cc: Riku Voipio, Rusty Russell, Peter Zijlstra, mingo, acme,
linux-kernel, Paul E. McKenney
* Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> Hi Ingo,
>
> On Wed, 17 Jun 2015 11:17:04 +0200 Ingo Molnar <mingo@kernel.org> wrote:
> >
> > * Riku Voipio <riku.voipio@iki.fi> wrote:
> >
> > > The commit:
> > >
> > > commit d72da4a4d973d8a0a0d3c97e7cdebf287fbe3a99
> > > Author: Peter Zijlstra <peterz@infradead.org>
> > > Date: Wed May 27 11:09:36 2015 +0930
> > >
> > > rbtree: Make lockless searches non-fatal
> > >
> > > Adds <linux/rcupdate.h> to rbtree.h, which in turn is included from perf userspace
> > > headers. Now building tools/perf will fail with hundreds of lines of gcc complaining
> > > about kernel defines not available. Reverting the patch makes perf build again.
> > > This is with gcc-4.9 from debian but I don't think it's compiler specific.
> >
> > Does the patch below make things work?
> >
> > This fix could go into the modules tree, as this commit came via Rusty.
> >
> > Stephen, feel free to add:
> >
> > make -C tools/perf
> >
> > to the linux-next build tests. It's always supposed to build without failure, in
> > pretty much whatever x86 distro you run your build tests on.
>
> OK, I have started doing that, but int order to make it build at all, I
> have added the patch below to my fixes tree (since the breakage is now
> in Linus' tree).
>
> This means that it will get a conflict with the tip tree tomorrow, but
> I will just fix the conflict by using the version from the tip tree.
> Once the tip tree fixes are sent to Linus, I will drop this patch from
> my fixes tree.
On next linux-next iteration you should be able to just drop your merge conflict
resolution, and use the -tip tree as-is with no extra fixups.
Thanks,
Ingo
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space
2015-07-04 16:15 ` Arnaldo Carvalho de Melo
@ 2015-07-06 10:57 ` Peter Zijlstra
0 siblings, 0 replies; 12+ messages in thread
From: Peter Zijlstra @ 2015-07-06 10:57 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Rusty Russell, Tejun Heo, Jens Axboe, Jon Christopherson,
linux-kernel
On Sat, Jul 04, 2015 at 01:15:56PM -0300, Arnaldo Carvalho de Melo wrote:
> > That's plain wrong, WRITE_ONCE(*(ptr), (val))
>
> Are you sure?
I'm sure I was having a heat stroke,.. that original was fine.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space
2015-07-06 9:41 ` Ingo Molnar
@ 2015-07-06 22:39 ` Stephen Rothwell
0 siblings, 0 replies; 12+ messages in thread
From: Stephen Rothwell @ 2015-07-06 22:39 UTC (permalink / raw)
To: Ingo Molnar
Cc: Riku Voipio, Rusty Russell, Peter Zijlstra, mingo, acme,
linux-kernel, Paul E. McKenney
[-- Attachment #1: Type: text/plain, Size: 589 bytes --]
Hi Ingo,
On Mon, 6 Jul 2015 11:41:17 +0200 Ingo Molnar <mingo@kernel.org> wrote:
>
> On next linux-next iteration you should be able to just drop your merge conflict
> resolution, and use the -tip tree as-is with no extra fixups.
I dropped the patch I had yesterday and just merged
perf-urgent-for-linus from the tip tree into my fixes tree (since I
merge my fixes tree immediately on top of Linus' tree and before I try
to do any builds). I will drop that merge when Linus takes your pull
request.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2015-07-06 22:40 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-17 6:09 Building tools/perf fails on next Riku Voipio
2015-06-17 9:17 ` [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space Ingo Molnar
2015-06-17 9:33 ` Riku Voipio
2015-07-06 8:13 ` Stephen Rothwell
2015-07-06 9:41 ` Ingo Molnar
2015-07-06 22:39 ` Stephen Rothwell
-- strict thread matches above, loose matches on Subject: below --
2015-07-02 0:52 [PATCH 1/2 block/for-linus] writeback: don't embed root bdi_writeback_congested in bdi_writeback Tejun Heo
2015-07-02 0:53 ` [PATCH 2/2 block/for-linus] writeback: don't drain bdi_writeback_congested on bdi destruction Tejun Heo
2015-07-02 3:02 ` Jon Christopherson
[not found] ` <5594AD98.4050402@jons.org>
2015-07-02 13:21 ` [PATCH] tools/perf, rbtree: Add RCU wrappers to make rbtree.h usable in user-space Tejun Heo
2015-07-02 20:51 ` Rusty Russell
2015-07-03 7:14 ` Peter Zijlstra
2015-07-03 10:00 ` Jon Christopherson
2015-07-04 16:15 ` Arnaldo Carvalho de Melo
2015-07-06 10:57 ` Peter Zijlstra
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).