All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/5] Perf tool fixes for ARC + uClibc
@ 2015-01-13 13:43 ` Vineet Gupta
  0 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-13 13:43 UTC (permalink / raw)
  To: acme, namhyung, jolsa
  Cc: peterz, mingo, linux-kernel, linux-perf-users, linux-arch,
	Alexey.Brodkin, Vineet Gupta

Hi,

This series based off linux-next of 20150105 allows us to build/use perf
for ARC with uClibc based userland.

v3: Changes since v2 [2]
* 1/5	: Ack from Jiri
* 2/5	: no changes
* 3/5	: sys/syscall.h included	  [Jiri]
* 4/5	: no changes
* 5/5	: -lpthread added to link target  [Jiri]
* {1,5} : Changelog updated so scissor lines don't start at column 1

v2: Change since v1 [1]
* [1-3]/5 : no changes
* 4/5     : Make perf_evsel__alloc_id agnostic of zero threads [Namhyung Kim]
* 5/5     : Add missing test file

v1:
* 1/5 is really a resend of old patch posted by Alexey a while back
* 2/5 is uClibc build spew seen on ARM as well
* 3/5 likewise
* 4/5 is uClibc config specific
* 5/5 is uClibc pthread library flavour specific
  It adds a stub for pthread_attr_setaffinity_np
  I can rework it to disable the futex tests altogether if people think that is
  cleaner

Please review and consider applying.
W/o these perf doesn't build and/or work for ARC.

[1] http://www.spinics.net/linux/lists/kernel/msg1897268.html
[2] http://www.spinics.net/linux/lists/kernel/msg1900706.html

Thx,
-Vineet


Alexey Brodkin (1):
  perf tools: [uclibc] fix statfs.f_type data type mismatch build error

Vineet Gupta (4):
  perf tools: [uclibc] Elide strlcpy warning
  perf tools: [uclibc] Avoid build splat for syscall numbers
  perf tools: [uclibc] don't rely on glibc malloc working for sz 0
  perf tools: [uclibc] provide stub for pthread_attr_setaffinity_np

 tools/lib/api/fs/debugfs.c                                 |  2 +-
 tools/lib/api/fs/fs.c                                      |  2 +-
 tools/perf/bench/futex.h                                   | 13 +++++++++++++
 tools/perf/bench/sched-pipe.c                              |  2 +-
 tools/perf/builtin-top.c                                   |  1 -
 tools/perf/config/Makefile                                 |  6 ++++++
 tools/perf/config/feature-checks/Makefile                  |  4 ++++
 tools/perf/config/feature-checks/test-all.c                |  5 +++++
 .../feature-checks/test-pthread-attr-setaffinity-np.c      | 14 ++++++++++++++
 tools/perf/perf-sys.h                                      |  1 -
 tools/perf/util/cache.h                                    |  2 ++
 tools/perf/util/evsel.c                                    |  3 +++
 12 files changed, 50 insertions(+), 5 deletions(-)
 create mode 100644 tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c

-- 
1.9.1


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [PATCH v3 0/5] Perf tool fixes for ARC + uClibc
@ 2015-01-13 13:43 ` Vineet Gupta
  0 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-13 13:43 UTC (permalink / raw)
  To: acme, namhyung, jolsa
  Cc: peterz, mingo, linux-kernel, linux-perf-users, linux-arch,
	Alexey.Brodkin, Vineet Gupta

Hi,

This series based off linux-next of 20150105 allows us to build/use perf
for ARC with uClibc based userland.

v3: Changes since v2 [2]
* 1/5	: Ack from Jiri
* 2/5	: no changes
* 3/5	: sys/syscall.h included	  [Jiri]
* 4/5	: no changes
* 5/5	: -lpthread added to link target  [Jiri]
* {1,5} : Changelog updated so scissor lines don't start at column 1

v2: Change since v1 [1]
* [1-3]/5 : no changes
* 4/5     : Make perf_evsel__alloc_id agnostic of zero threads [Namhyung Kim]
* 5/5     : Add missing test file

v1:
* 1/5 is really a resend of old patch posted by Alexey a while back
* 2/5 is uClibc build spew seen on ARM as well
* 3/5 likewise
* 4/5 is uClibc config specific
* 5/5 is uClibc pthread library flavour specific
  It adds a stub for pthread_attr_setaffinity_np
  I can rework it to disable the futex tests altogether if people think that is
  cleaner

Please review and consider applying.
W/o these perf doesn't build and/or work for ARC.

[1] http://www.spinics.net/linux/lists/kernel/msg1897268.html
[2] http://www.spinics.net/linux/lists/kernel/msg1900706.html

Thx,
-Vineet


Alexey Brodkin (1):
  perf tools: [uclibc] fix statfs.f_type data type mismatch build error

Vineet Gupta (4):
  perf tools: [uclibc] Elide strlcpy warning
  perf tools: [uclibc] Avoid build splat for syscall numbers
  perf tools: [uclibc] don't rely on glibc malloc working for sz 0
  perf tools: [uclibc] provide stub for pthread_attr_setaffinity_np

 tools/lib/api/fs/debugfs.c                                 |  2 +-
 tools/lib/api/fs/fs.c                                      |  2 +-
 tools/perf/bench/futex.h                                   | 13 +++++++++++++
 tools/perf/bench/sched-pipe.c                              |  2 +-
 tools/perf/builtin-top.c                                   |  1 -
 tools/perf/config/Makefile                                 |  6 ++++++
 tools/perf/config/feature-checks/Makefile                  |  4 ++++
 tools/perf/config/feature-checks/test-all.c                |  5 +++++
 .../feature-checks/test-pthread-attr-setaffinity-np.c      | 14 ++++++++++++++
 tools/perf/perf-sys.h                                      |  1 -
 tools/perf/util/cache.h                                    |  2 ++
 tools/perf/util/evsel.c                                    |  3 +++
 12 files changed, 50 insertions(+), 5 deletions(-)
 create mode 100644 tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c

-- 
1.9.1

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [PATCH v3 1/5] perf tools: [uclibc] fix statfs.f_type data type mismatch build error
  2015-01-13 13:43 ` Vineet Gupta
@ 2015-01-13 13:43   ` Vineet Gupta
  -1 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-13 13:43 UTC (permalink / raw)
  To: acme, namhyung, jolsa
  Cc: peterz, mingo, linux-kernel, linux-perf-users, linux-arch,
	Alexey.Brodkin, Borislav Petkov, Cody P Schafer, Vineet Gupta

From: Alexey Brodkin <abrodkin@synopsys.com>

ARC Linux uses the no legacy syscalls abi and corresponding uClibc headers
statfs defines f_type to be U32 which causes perf build breakage

http://git.uclibc.org/uClibc/tree/libc/sysdeps/linux/common-generic/bits/statfs.h

   ----------->8---------------
  CC       fs/fs.o
fs/fs.c: In function 'fs__valid_mount':
fs/fs.c:82:24: error: comparison between signed and unsigned integer
expressions [-Werror=sign-compare]
  else if (st_fs.f_type != magic)
                        ^
cc1: all warnings being treated as errors
   ----------->8---------------

Cc: Borislav Petkov <bp@suse.de>
Cc: Cody P Schafer <dev@codyps.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: linux-perf-users@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Acked-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>

---
v4:
 * Add Ack from Jiri Olsa

v3: Changes since v2 [2]
 * Made Changelog a bit more concise, no code changes [vgupta]

v2: Changes since v1 [1]
 * Added type cast to DEBUGFS_MAGIC in "debugfs.c" [Arnaldo]
 * Added verbose explanation of root cause

[2] https://lkml.org/lkml/2014/9/16/296
[1] https://lkml.org/lkml/2014/8/13/529

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
 tools/lib/api/fs/debugfs.c | 2 +-
 tools/lib/api/fs/fs.c      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/lib/api/fs/debugfs.c b/tools/lib/api/fs/debugfs.c
index a74fba6d7743..93aa4cd2416f 100644
--- a/tools/lib/api/fs/debugfs.c
+++ b/tools/lib/api/fs/debugfs.c
@@ -67,7 +67,7 @@ int debugfs_valid_mountpoint(const char *debugfs)
 
 	if (statfs(debugfs, &st_fs) < 0)
 		return -ENOENT;
-	else if (st_fs.f_type != (long) DEBUGFS_MAGIC)
+	else if ((long) st_fs.f_type != (long) DEBUGFS_MAGIC)
 		return -ENOENT;
 
 	return 0;
diff --git a/tools/lib/api/fs/fs.c b/tools/lib/api/fs/fs.c
index 65d9be3f9887..15e64921ea84 100644
--- a/tools/lib/api/fs/fs.c
+++ b/tools/lib/api/fs/fs.c
@@ -79,7 +79,7 @@ static int fs__valid_mount(const char *fs, long magic)
 
 	if (statfs(fs, &st_fs) < 0)
 		return -ENOENT;
-	else if (st_fs.f_type != magic)
+	else if ((long) st_fs.f_type != magic)
 		return -ENOENT;
 
 	return 0;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH v3 1/5] perf tools: [uclibc] fix statfs.f_type data type mismatch build error
@ 2015-01-13 13:43   ` Vineet Gupta
  0 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-13 13:43 UTC (permalink / raw)
  To: acme, namhyung, jolsa
  Cc: peterz, mingo, linux-kernel, linux-perf-users, linux-arch,
	Alexey.Brodkin, Borislav Petkov, Cody P Schafer, Vineet Gupta

From: Alexey Brodkin <abrodkin@synopsys.com>

ARC Linux uses the no legacy syscalls abi and corresponding uClibc headers
statfs defines f_type to be U32 which causes perf build breakage

http://git.uclibc.org/uClibc/tree/libc/sysdeps/linux/common-generic/bits/statfs.h

   ----------->8---------------
  CC       fs/fs.o
fs/fs.c: In function 'fs__valid_mount':
fs/fs.c:82:24: error: comparison between signed and unsigned integer
expressions [-Werror=sign-compare]
  else if (st_fs.f_type != magic)
                        ^
cc1: all warnings being treated as errors
   ----------->8---------------

Cc: Borislav Petkov <bp@suse.de>
Cc: Cody P Schafer <dev@codyps.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: linux-perf-users@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Acked-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>

---
v4:
 * Add Ack from Jiri Olsa

v3: Changes since v2 [2]
 * Made Changelog a bit more concise, no code changes [vgupta]

v2: Changes since v1 [1]
 * Added type cast to DEBUGFS_MAGIC in "debugfs.c" [Arnaldo]
 * Added verbose explanation of root cause

[2] https://lkml.org/lkml/2014/9/16/296
[1] https://lkml.org/lkml/2014/8/13/529

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
 tools/lib/api/fs/debugfs.c | 2 +-
 tools/lib/api/fs/fs.c      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/lib/api/fs/debugfs.c b/tools/lib/api/fs/debugfs.c
index a74fba6d7743..93aa4cd2416f 100644
--- a/tools/lib/api/fs/debugfs.c
+++ b/tools/lib/api/fs/debugfs.c
@@ -67,7 +67,7 @@ int debugfs_valid_mountpoint(const char *debugfs)
 
 	if (statfs(debugfs, &st_fs) < 0)
 		return -ENOENT;
-	else if (st_fs.f_type != (long) DEBUGFS_MAGIC)
+	else if ((long) st_fs.f_type != (long) DEBUGFS_MAGIC)
 		return -ENOENT;
 
 	return 0;
diff --git a/tools/lib/api/fs/fs.c b/tools/lib/api/fs/fs.c
index 65d9be3f9887..15e64921ea84 100644
--- a/tools/lib/api/fs/fs.c
+++ b/tools/lib/api/fs/fs.c
@@ -79,7 +79,7 @@ static int fs__valid_mount(const char *fs, long magic)
 
 	if (statfs(fs, &st_fs) < 0)
 		return -ENOENT;
-	else if (st_fs.f_type != magic)
+	else if ((long) st_fs.f_type != magic)
 		return -ENOENT;
 
 	return 0;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH v3 2/5] perf tools: [uclibc] Elide strlcpy warning
  2015-01-13 13:43 ` Vineet Gupta
@ 2015-01-13 13:43   ` Vineet Gupta
  -1 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-13 13:43 UTC (permalink / raw)
  To: acme, namhyung, jolsa
  Cc: peterz, mingo, linux-kernel, linux-perf-users, linux-arch,
	Alexey.Brodkin, Vineet Gupta

   ----------------->8------------------
  CC       bench/sched-pipe.o
In file included from builtin-annotate.c:13:0:
util/cache.h:76:15: warning: redundant redeclaration of 'strlcpy'
[-Wredundant-decls]
 extern size_t strlcpy(char *dest, const char *src, size_t size);
               ^
In file included from util/util.h:55:0,
                 from builtin.h:4,
                 from builtin-annotate.c:8:
~/vineetg/arc/gnu/INSTALL_1412-arc-2014.12-rc1/arc-snps-linux-uclibc/sysroot/usr/include/string.h:396:15:
note: previous declaration of 'strlcpy' was here
 extern size_t strlcpy(char *__restrict dst, const char *__restrict src,
   ----------------->8------------------

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
 tools/perf/util/cache.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/perf/util/cache.h b/tools/perf/util/cache.h
index 5cf9e1b5989d..d04d770d90f6 100644
--- a/tools/perf/util/cache.h
+++ b/tools/perf/util/cache.h
@@ -71,7 +71,9 @@ extern char *perf_path(const char *fmt, ...) __attribute__((format (printf, 1, 2
 extern char *perf_pathdup(const char *fmt, ...)
 	__attribute__((format (printf, 1, 2)));
 
+#ifndef __UCLIBC__
 /* Matches the libc/libbsd function attribute so we declare this unconditionally: */
 extern size_t strlcpy(char *dest, const char *src, size_t size);
+#endif
 
 #endif /* __PERF_CACHE_H */
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH v3 2/5] perf tools: [uclibc] Elide strlcpy warning
@ 2015-01-13 13:43   ` Vineet Gupta
  0 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-13 13:43 UTC (permalink / raw)
  To: acme, namhyung, jolsa
  Cc: peterz, mingo, linux-kernel, linux-perf-users, linux-arch,
	Alexey.Brodkin, Vineet Gupta

   ----------------->8------------------
  CC       bench/sched-pipe.o
In file included from builtin-annotate.c:13:0:
util/cache.h:76:15: warning: redundant redeclaration of 'strlcpy'
[-Wredundant-decls]
 extern size_t strlcpy(char *dest, const char *src, size_t size);
               ^
In file included from util/util.h:55:0,
                 from builtin.h:4,
                 from builtin-annotate.c:8:
~/vineetg/arc/gnu/INSTALL_1412-arc-2014.12-rc1/arc-snps-linux-uclibc/sysroot/usr/include/string.h:396:15:
note: previous declaration of 'strlcpy' was here
 extern size_t strlcpy(char *__restrict dst, const char *__restrict src,
   ----------------->8------------------

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
 tools/perf/util/cache.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/perf/util/cache.h b/tools/perf/util/cache.h
index 5cf9e1b5989d..d04d770d90f6 100644
--- a/tools/perf/util/cache.h
+++ b/tools/perf/util/cache.h
@@ -71,7 +71,9 @@ extern char *perf_path(const char *fmt, ...) __attribute__((format (printf, 1, 2
 extern char *perf_pathdup(const char *fmt, ...)
 	__attribute__((format (printf, 1, 2)));
 
+#ifndef __UCLIBC__
 /* Matches the libc/libbsd function attribute so we declare this unconditionally: */
 extern size_t strlcpy(char *dest, const char *src, size_t size);
+#endif
 
 #endif /* __PERF_CACHE_H */
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH v3 3/5] perf tools: [uclibc] Avoid build splat for syscall numbers
  2015-01-13 13:43 ` Vineet Gupta
@ 2015-01-13 13:43   ` Vineet Gupta
  -1 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-13 13:43 UTC (permalink / raw)
  To: acme, namhyung, jolsa
  Cc: peterz, mingo, linux-kernel, linux-perf-users, linux-arch,
	Alexey.Brodkin, Vineet Gupta

This is due to duplicated unistd inclusion (via uClibc headers + kernel headers)
Also seen on ARM uClibc based tools

   ------- ARC build ---------->8-------------

  CC       util/evlist.o
In file included from
~/arc/k.org/arch/arc/include/uapi/asm/unistd.h:25:0,
                 from util/../perf-sys.h:10,
                 from util/../perf.h:15,
                 from util/event.h:7,
                 from util/event.c:3:
~/arc/k.org/include/uapi/asm-generic/unistd.h:906:0:
warning: "__NR_fcntl64" redefined [enabled by default]
 #define __NR_fcntl64 __NR3264_fcntl
 ^
In file included from
~/arc/gnu/INSTALL_1412-arc-2014.12-rc1/arc-snps-linux-uclibc/sysroot/usr/include/sys/syscall.h:24:0,
                 from util/../perf-sys.h:6,
   ----------------->8-------------------

   ------- ARM build ---------->8-------------

  CC FPIC  plugin_scsi.o
In file included from util/../perf-sys.h:9:0,
                 from util/../perf.h:15,
                 from util/cache.h:7,
                 from perf.c:12:
~/arc/k.org/arch/arm/include/uapi/asm/unistd.h:28:0:
warning: "__NR_restart_syscall" redefined [enabled by default]
In file included from
~/buildroot/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/syscall.h:25:0,
                 from util/../perf-sys.h:6,
                 from util/../perf.h:15,
                 from util/cache.h:7,
                 from perf.c:12:
~/buildroot/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/bits/sysnum.h:17:0:
note: this is the location of the previous definition
   ----------------->8-------------------

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
 tools/perf/bench/sched-pipe.c | 2 +-
 tools/perf/builtin-top.c      | 1 -
 tools/perf/perf-sys.h         | 1 -
 3 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/tools/perf/bench/sched-pipe.c b/tools/perf/bench/sched-pipe.c
index 07a8d7646a15..005cc283790c 100644
--- a/tools/perf/bench/sched-pipe.c
+++ b/tools/perf/bench/sched-pipe.c
@@ -19,12 +19,12 @@
 #include <stdlib.h>
 #include <signal.h>
 #include <sys/wait.h>
-#include <linux/unistd.h>
 #include <string.h>
 #include <errno.h>
 #include <assert.h>
 #include <sys/time.h>
 #include <sys/types.h>
+#include <sys/syscall.h>
 
 #include <pthread.h>
 
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 0aa7747ff139..233ffff1b31b 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -66,7 +66,6 @@
 #include <sys/utsname.h>
 #include <sys/mman.h>
 
-#include <linux/unistd.h>
 #include <linux/types.h>
 
 static volatile int done;
diff --git a/tools/perf/perf-sys.h b/tools/perf/perf-sys.h
index 3183809ff6d9..7b7cb7396b69 100644
--- a/tools/perf/perf-sys.h
+++ b/tools/perf/perf-sys.h
@@ -6,7 +6,6 @@
 #include <sys/syscall.h>
 #include <linux/types.h>
 #include <linux/perf_event.h>
-#include <asm/unistd.h>
 
 #if defined(__i386__)
 #define mb()		asm volatile("lock; addl $0,0(%%esp)" ::: "memory")
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH v3 3/5] perf tools: [uclibc] Avoid build splat for syscall numbers
@ 2015-01-13 13:43   ` Vineet Gupta
  0 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-13 13:43 UTC (permalink / raw)
  To: acme, namhyung, jolsa
  Cc: peterz, mingo, linux-kernel, linux-perf-users, linux-arch,
	Alexey.Brodkin, Vineet Gupta

This is due to duplicated unistd inclusion (via uClibc headers + kernel headers)
Also seen on ARM uClibc based tools

   ------- ARC build ---------->8-------------

  CC       util/evlist.o
In file included from
~/arc/k.org/arch/arc/include/uapi/asm/unistd.h:25:0,
                 from util/../perf-sys.h:10,
                 from util/../perf.h:15,
                 from util/event.h:7,
                 from util/event.c:3:
~/arc/k.org/include/uapi/asm-generic/unistd.h:906:0:
warning: "__NR_fcntl64" redefined [enabled by default]
 #define __NR_fcntl64 __NR3264_fcntl
 ^
In file included from
~/arc/gnu/INSTALL_1412-arc-2014.12-rc1/arc-snps-linux-uclibc/sysroot/usr/include/sys/syscall.h:24:0,
                 from util/../perf-sys.h:6,
   ----------------->8-------------------

   ------- ARM build ---------->8-------------

  CC FPIC  plugin_scsi.o
In file included from util/../perf-sys.h:9:0,
                 from util/../perf.h:15,
                 from util/cache.h:7,
                 from perf.c:12:
~/arc/k.org/arch/arm/include/uapi/asm/unistd.h:28:0:
warning: "__NR_restart_syscall" redefined [enabled by default]
In file included from
~/buildroot/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/syscall.h:25:0,
                 from util/../perf-sys.h:6,
                 from util/../perf.h:15,
                 from util/cache.h:7,
                 from perf.c:12:
~/buildroot/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/bits/sysnum.h:17:0:
note: this is the location of the previous definition
   ----------------->8-------------------

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
 tools/perf/bench/sched-pipe.c | 2 +-
 tools/perf/builtin-top.c      | 1 -
 tools/perf/perf-sys.h         | 1 -
 3 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/tools/perf/bench/sched-pipe.c b/tools/perf/bench/sched-pipe.c
index 07a8d7646a15..005cc283790c 100644
--- a/tools/perf/bench/sched-pipe.c
+++ b/tools/perf/bench/sched-pipe.c
@@ -19,12 +19,12 @@
 #include <stdlib.h>
 #include <signal.h>
 #include <sys/wait.h>
-#include <linux/unistd.h>
 #include <string.h>
 #include <errno.h>
 #include <assert.h>
 #include <sys/time.h>
 #include <sys/types.h>
+#include <sys/syscall.h>
 
 #include <pthread.h>
 
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 0aa7747ff139..233ffff1b31b 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -66,7 +66,6 @@
 #include <sys/utsname.h>
 #include <sys/mman.h>
 
-#include <linux/unistd.h>
 #include <linux/types.h>
 
 static volatile int done;
diff --git a/tools/perf/perf-sys.h b/tools/perf/perf-sys.h
index 3183809ff6d9..7b7cb7396b69 100644
--- a/tools/perf/perf-sys.h
+++ b/tools/perf/perf-sys.h
@@ -6,7 +6,6 @@
 #include <sys/syscall.h>
 #include <linux/types.h>
 #include <linux/perf_event.h>
-#include <asm/unistd.h>
 
 #if defined(__i386__)
 #define mb()		asm volatile("lock; addl $0,0(%%esp)" ::: "memory")
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH v3 4/5] perf tools: [uclibc] don't rely on glibc malloc working for sz 0
  2015-01-13 13:43 ` Vineet Gupta
@ 2015-01-13 13:43   ` Vineet Gupta
  -1 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-13 13:43 UTC (permalink / raw)
  To: acme, namhyung, jolsa
  Cc: peterz, mingo, linux-kernel, linux-perf-users, linux-arch,
	Alexey.Brodkin, Vineet Gupta

When running perf on ARC (uClibc based userspace), ran into this issue
   ------------->8----------------
	[ARCLinux]$ ./perf record ls
	bin             etc             perf            sys
	debug           init            perf.data       tmp
	[ perf record: Woken up 1 times to write data ]
	[ perf record: Captured and wrote 0.001 MB perf.data (~24 samples) ]

	[ARCLinux]$ ./perf report
	incompatible file format (rerun with -v to learn more)
   ------------->8----------------

The problem happens in the following call stack when zalloc is called
with size zero

glibc default / uClibc with MALLOC_GLIBC_COMPAT are OK, but not if that
config option is not enabled.

  cmd_report
     perf_session__new
	perf_session__open
	    perf_session__read_header
		read_attr(fd, header, &f_attr)
		nr_ids = f_attr.ids.size / sizeof(u64); <-- 0
		perf_evsel__alloc_id(vsel, 1, nr_ids)
			zalloc(ncpus * nthreads * sizeof(u64)) <-- 0

header.c: read_attr()

(gdb) p *f_attr
$17 = {
  attr = {
    type = 0,
    size = 96,
    config = 0,
    {
      sample_period = 4000,
      sample_freq = 4000
    },
...
  ids = {
    offset = 104,
    size = 0      <------
  }
}

Suggested-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
 tools/perf/util/evsel.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 1e90c8557ede..1d826d63bc20 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -797,6 +797,9 @@ int perf_evsel__enable(struct perf_evsel *evsel, int ncpus, int nthreads)
 
 int perf_evsel__alloc_id(struct perf_evsel *evsel, int ncpus, int nthreads)
 {
+	if (ncpus == 0 || nthreads == 0)
+		return 0;
+
 	if (evsel->system_wide)
 		nthreads = 1;
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH v3 4/5] perf tools: [uclibc] don't rely on glibc malloc working for sz 0
@ 2015-01-13 13:43   ` Vineet Gupta
  0 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-13 13:43 UTC (permalink / raw)
  To: acme, namhyung, jolsa
  Cc: peterz, mingo, linux-kernel, linux-perf-users, linux-arch,
	Alexey.Brodkin, Vineet Gupta

When running perf on ARC (uClibc based userspace), ran into this issue
   ------------->8----------------
	[ARCLinux]$ ./perf record ls
	bin             etc             perf            sys
	debug           init            perf.data       tmp
	[ perf record: Woken up 1 times to write data ]
	[ perf record: Captured and wrote 0.001 MB perf.data (~24 samples) ]

	[ARCLinux]$ ./perf report
	incompatible file format (rerun with -v to learn more)
   ------------->8----------------

The problem happens in the following call stack when zalloc is called
with size zero

glibc default / uClibc with MALLOC_GLIBC_COMPAT are OK, but not if that
config option is not enabled.

  cmd_report
     perf_session__new
	perf_session__open
	    perf_session__read_header
		read_attr(fd, header, &f_attr)
		nr_ids = f_attr.ids.size / sizeof(u64); <-- 0
		perf_evsel__alloc_id(vsel, 1, nr_ids)
			zalloc(ncpus * nthreads * sizeof(u64)) <-- 0

header.c: read_attr()

(gdb) p *f_attr
$17 = {
  attr = {
    type = 0,
    size = 96,
    config = 0,
    {
      sample_period = 4000,
      sample_freq = 4000
    },
...
  ids = {
    offset = 104,
    size = 0      <------
  }
}

Suggested-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
 tools/perf/util/evsel.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 1e90c8557ede..1d826d63bc20 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -797,6 +797,9 @@ int perf_evsel__enable(struct perf_evsel *evsel, int ncpus, int nthreads)
 
 int perf_evsel__alloc_id(struct perf_evsel *evsel, int ncpus, int nthreads)
 {
+	if (ncpus == 0 || nthreads == 0)
+		return 0;
+
 	if (evsel->system_wide)
 		nthreads = 1;
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH v3 5/5] perf tools: [uclibc] provide stub for pthread_attr_setaffinity_np
  2015-01-13 13:43 ` Vineet Gupta
@ 2015-01-13 13:43   ` Vineet Gupta
  -1 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-13 13:43 UTC (permalink / raw)
  To: acme, namhyung, jolsa
  Cc: peterz, mingo, linux-kernel, linux-perf-users, linux-arch,
	Alexey.Brodkin, Vineet Gupta

uClibc Linuxthreads.old doesnt support pthread_attr_setaffinity_np()
call

   ----------------->8-----------------------
  CC       bench/futex-hash.o
  CC       bench/futex-wake.o
bench/futex-hash.c: In function 'bench_futex_hash':
bench/futex-hash.c:161:3: error: implicit declaration of function
'pthread_attr_setaffinity_np' [-Werror=implicit-function-declaration]
   ret = pthread_attr_setaffinity_np(&thread_attr, sizeof(cpu_set_t),
&cpu);
   ^
bench/futex-hash.c:161:3: error: nested extern declaration of
'pthread_attr_setaffinity_np' [-Werror=nested-externs]
   ----------------->8-----------------------

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
 tools/perf/bench/futex.h                                   | 13 +++++++++++++
 tools/perf/config/Makefile                                 |  6 ++++++
 tools/perf/config/feature-checks/Makefile                  |  4 ++++
 tools/perf/config/feature-checks/test-all.c                |  5 +++++
 .../feature-checks/test-pthread-attr-setaffinity-np.c      | 14 ++++++++++++++
 5 files changed, 42 insertions(+)
 create mode 100644 tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c

diff --git a/tools/perf/bench/futex.h b/tools/perf/bench/futex.h
index 71f2844cf97f..7ed22ff1e1ac 100644
--- a/tools/perf/bench/futex.h
+++ b/tools/perf/bench/futex.h
@@ -68,4 +68,17 @@ futex_cmp_requeue(u_int32_t *uaddr, u_int32_t val, u_int32_t *uaddr2, int nr_wak
 		 val, opflags);
 }
 
+#ifndef HAVE_PTHREAD_ATTR_SETAFFINITY_NP
+#include <pthread.h>
+static inline int pthread_attr_setaffinity_np(pthread_attr_t *attr,
+					      size_t cpusetsize,
+					      cpu_set_t *cpuset)
+{
+	attr = attr;
+	cpusetsize = cpusetsize;
+	cpuset = cpuset;
+	return 0;
+}
+#endif
+
 #endif /* _FUTEX_H */
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index 5d4b039fe1ed..6b59662136fa 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -198,6 +198,7 @@ CORE_FEATURE_TESTS =			\
 	libpython-version		\
 	libslang			\
 	libunwind			\
+	pthread-attr-setaffinity-np	\
 	stackprotector-all		\
 	timerfd				\
 	libdw-dwarf-unwind		\
@@ -226,6 +227,7 @@ VF_FEATURE_TESTS =			\
 	libelf-getphdrnum		\
 	libelf-mmap			\
 	libpython-version		\
+	pthread-attr-setaffinity-np	\
 	stackprotector-all		\
 	timerfd				\
 	libunwind-debug-frame		\
@@ -301,6 +303,10 @@ ifeq ($(feature-sync-compare-and-swap), 1)
   CFLAGS += -DHAVE_SYNC_COMPARE_AND_SWAP_SUPPORT
 endif
 
+ifeq ($(feature-pthread-attr-setaffinity-np), 1)
+  CFLAGS += -DHAVE_PTHREAD_ATTR_SETAFFINITY_NP
+endif
+
 ifndef NO_BIONIC
   $(call feature_check,bionic)
   ifeq ($(feature-bionic), 1)
diff --git a/tools/perf/config/feature-checks/Makefile b/tools/perf/config/feature-checks/Makefile
index 53f19b5dbc37..42ac05aaf8ac 100644
--- a/tools/perf/config/feature-checks/Makefile
+++ b/tools/perf/config/feature-checks/Makefile
@@ -25,6 +25,7 @@ FILES=					\
 	test-libslang.bin		\
 	test-libunwind.bin		\
 	test-libunwind-debug-frame.bin	\
+	test-pthread-attr-setaffinity-np.bin	\
 	test-stackprotector-all.bin	\
 	test-timerfd.bin		\
 	test-libdw-dwarf-unwind.bin	\
@@ -47,6 +48,9 @@ test-all.bin:
 test-hello.bin:
 	$(BUILD)
 
+test-pthread-attr-setaffinity-np.bin:
+	$(BUILD) -Werror -lpthread
+
 test-stackprotector-all.bin:
 	$(BUILD) -Werror -fstack-protector-all
 
diff --git a/tools/perf/config/feature-checks/test-all.c b/tools/perf/config/feature-checks/test-all.c
index 652e0098eba6..6d4d09323922 100644
--- a/tools/perf/config/feature-checks/test-all.c
+++ b/tools/perf/config/feature-checks/test-all.c
@@ -97,6 +97,10 @@
 # include "test-zlib.c"
 #undef main
 
+#define main main_test_pthread_attr_setaffinity_np
+# include "test-pthread_attr_setaffinity_np.c"
+#undef main
+
 int main(int argc, char *argv[])
 {
 	main_test_libpython();
@@ -121,6 +125,7 @@ int main(int argc, char *argv[])
 	main_test_libdw_dwarf_unwind();
 	main_test_sync_compare_and_swap(argc, argv);
 	main_test_zlib();
+	main_test_pthread_attr_setaffinity_np();
 
 	return 0;
 }
diff --git a/tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c b/tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c
new file mode 100644
index 000000000000..0a0d3ecb4e8a
--- /dev/null
+++ b/tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c
@@ -0,0 +1,14 @@
+#include <stdint.h>
+#include <pthread.h>
+
+int main(void)
+{
+	int ret = 0;
+	pthread_attr_t thread_attr;
+
+	pthread_attr_init(&thread_attr);
+	/* don't care abt exact args, just the API itself in libpthread */
+	ret = pthread_attr_setaffinity_np(&thread_attr, 0, NULL);
+
+	return ret;
+}
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH v3 5/5] perf tools: [uclibc] provide stub for pthread_attr_setaffinity_np
@ 2015-01-13 13:43   ` Vineet Gupta
  0 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-13 13:43 UTC (permalink / raw)
  To: acme, namhyung, jolsa
  Cc: peterz, mingo, linux-kernel, linux-perf-users, linux-arch,
	Alexey.Brodkin, Vineet Gupta

uClibc Linuxthreads.old doesnt support pthread_attr_setaffinity_np()
call

   ----------------->8-----------------------
  CC       bench/futex-hash.o
  CC       bench/futex-wake.o
bench/futex-hash.c: In function 'bench_futex_hash':
bench/futex-hash.c:161:3: error: implicit declaration of function
'pthread_attr_setaffinity_np' [-Werror=implicit-function-declaration]
   ret = pthread_attr_setaffinity_np(&thread_attr, sizeof(cpu_set_t),
&cpu);
   ^
bench/futex-hash.c:161:3: error: nested extern declaration of
'pthread_attr_setaffinity_np' [-Werror=nested-externs]
   ----------------->8-----------------------

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
 tools/perf/bench/futex.h                                   | 13 +++++++++++++
 tools/perf/config/Makefile                                 |  6 ++++++
 tools/perf/config/feature-checks/Makefile                  |  4 ++++
 tools/perf/config/feature-checks/test-all.c                |  5 +++++
 .../feature-checks/test-pthread-attr-setaffinity-np.c      | 14 ++++++++++++++
 5 files changed, 42 insertions(+)
 create mode 100644 tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c

diff --git a/tools/perf/bench/futex.h b/tools/perf/bench/futex.h
index 71f2844cf97f..7ed22ff1e1ac 100644
--- a/tools/perf/bench/futex.h
+++ b/tools/perf/bench/futex.h
@@ -68,4 +68,17 @@ futex_cmp_requeue(u_int32_t *uaddr, u_int32_t val, u_int32_t *uaddr2, int nr_wak
 		 val, opflags);
 }
 
+#ifndef HAVE_PTHREAD_ATTR_SETAFFINITY_NP
+#include <pthread.h>
+static inline int pthread_attr_setaffinity_np(pthread_attr_t *attr,
+					      size_t cpusetsize,
+					      cpu_set_t *cpuset)
+{
+	attr = attr;
+	cpusetsize = cpusetsize;
+	cpuset = cpuset;
+	return 0;
+}
+#endif
+
 #endif /* _FUTEX_H */
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index 5d4b039fe1ed..6b59662136fa 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -198,6 +198,7 @@ CORE_FEATURE_TESTS =			\
 	libpython-version		\
 	libslang			\
 	libunwind			\
+	pthread-attr-setaffinity-np	\
 	stackprotector-all		\
 	timerfd				\
 	libdw-dwarf-unwind		\
@@ -226,6 +227,7 @@ VF_FEATURE_TESTS =			\
 	libelf-getphdrnum		\
 	libelf-mmap			\
 	libpython-version		\
+	pthread-attr-setaffinity-np	\
 	stackprotector-all		\
 	timerfd				\
 	libunwind-debug-frame		\
@@ -301,6 +303,10 @@ ifeq ($(feature-sync-compare-and-swap), 1)
   CFLAGS += -DHAVE_SYNC_COMPARE_AND_SWAP_SUPPORT
 endif
 
+ifeq ($(feature-pthread-attr-setaffinity-np), 1)
+  CFLAGS += -DHAVE_PTHREAD_ATTR_SETAFFINITY_NP
+endif
+
 ifndef NO_BIONIC
   $(call feature_check,bionic)
   ifeq ($(feature-bionic), 1)
diff --git a/tools/perf/config/feature-checks/Makefile b/tools/perf/config/feature-checks/Makefile
index 53f19b5dbc37..42ac05aaf8ac 100644
--- a/tools/perf/config/feature-checks/Makefile
+++ b/tools/perf/config/feature-checks/Makefile
@@ -25,6 +25,7 @@ FILES=					\
 	test-libslang.bin		\
 	test-libunwind.bin		\
 	test-libunwind-debug-frame.bin	\
+	test-pthread-attr-setaffinity-np.bin	\
 	test-stackprotector-all.bin	\
 	test-timerfd.bin		\
 	test-libdw-dwarf-unwind.bin	\
@@ -47,6 +48,9 @@ test-all.bin:
 test-hello.bin:
 	$(BUILD)
 
+test-pthread-attr-setaffinity-np.bin:
+	$(BUILD) -Werror -lpthread
+
 test-stackprotector-all.bin:
 	$(BUILD) -Werror -fstack-protector-all
 
diff --git a/tools/perf/config/feature-checks/test-all.c b/tools/perf/config/feature-checks/test-all.c
index 652e0098eba6..6d4d09323922 100644
--- a/tools/perf/config/feature-checks/test-all.c
+++ b/tools/perf/config/feature-checks/test-all.c
@@ -97,6 +97,10 @@
 # include "test-zlib.c"
 #undef main
 
+#define main main_test_pthread_attr_setaffinity_np
+# include "test-pthread_attr_setaffinity_np.c"
+#undef main
+
 int main(int argc, char *argv[])
 {
 	main_test_libpython();
@@ -121,6 +125,7 @@ int main(int argc, char *argv[])
 	main_test_libdw_dwarf_unwind();
 	main_test_sync_compare_and_swap(argc, argv);
 	main_test_zlib();
+	main_test_pthread_attr_setaffinity_np();
 
 	return 0;
 }
diff --git a/tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c b/tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c
new file mode 100644
index 000000000000..0a0d3ecb4e8a
--- /dev/null
+++ b/tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c
@@ -0,0 +1,14 @@
+#include <stdint.h>
+#include <pthread.h>
+
+int main(void)
+{
+	int ret = 0;
+	pthread_attr_t thread_attr;
+
+	pthread_attr_init(&thread_attr);
+	/* don't care abt exact args, just the API itself in libpthread */
+	ret = pthread_attr_setaffinity_np(&thread_attr, 0, NULL);
+
+	return ret;
+}
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PATCH v3 0/5] Perf tool fixes for ARC + uClibc
  2015-01-13 13:43 ` Vineet Gupta
                   ` (5 preceding siblings ...)
  (?)
@ 2015-01-14 12:00 ` Jiri Olsa
  2015-01-14 13:59   ` Arnaldo Carvalho de Melo
  -1 siblings, 1 reply; 24+ messages in thread
From: Jiri Olsa @ 2015-01-14 12:00 UTC (permalink / raw)
  To: Vineet Gupta
  Cc: acme, namhyung, jolsa, peterz, mingo, linux-kernel,
	linux-perf-users, linux-arch, Alexey.Brodkin

On Tue, Jan 13, 2015 at 07:13:19PM +0530, Vineet Gupta wrote:
> Hi,
> 
> This series based off linux-next of 20150105 allows us to build/use perf
> for ARC with uClibc based userland.
> 
> v3: Changes since v2 [2]
> * 1/5	: Ack from Jiri
> * 2/5	: no changes
> * 3/5	: sys/syscall.h included	  [Jiri]
> * 4/5	: no changes
> * 5/5	: -lpthread added to link target  [Jiri]
> * {1,5} : Changelog updated so scissor lines don't start at column 1

Acked-by: Jiri Olsa <jolsa@kernel.org>

thanks,
jirka

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH v3 0/5] Perf tool fixes for ARC + uClibc
  2015-01-14 12:00 ` [PATCH v3 0/5] Perf tool fixes for ARC + uClibc Jiri Olsa
@ 2015-01-14 13:59   ` Arnaldo Carvalho de Melo
  2015-01-19  4:35       ` Vineet Gupta
  0 siblings, 1 reply; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-14 13:59 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: Vineet Gupta, namhyung, jolsa, peterz, mingo, linux-kernel,
	linux-perf-users, linux-arch, Alexey.Brodkin

Em Wed, Jan 14, 2015 at 01:00:00PM +0100, Jiri Olsa escreveu:
> On Tue, Jan 13, 2015 at 07:13:19PM +0530, Vineet Gupta wrote:
> > Hi,
> > 
> > This series based off linux-next of 20150105 allows us to build/use perf
> > for ARC with uClibc based userland.
> > 
> > v3: Changes since v2 [2]
> > * 1/5	: Ack from Jiri
> > * 2/5	: no changes
> > * 3/5	: sys/syscall.h included	  [Jiri]
> > * 4/5	: no changes
> > * 5/5	: -lpthread added to link target  [Jiri]
> > * {1,5} : Changelog updated so scissor lines don't start at column 1
> 
> Acked-by: Jiri Olsa <jolsa@kernel.org>

Most are already in my perf/urgent branch.

- Arnaldo

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [tip:perf/urgent] perf tools: Elide strlcpy warning with uclibc
  2015-01-13 13:43   ` Vineet Gupta
  (?)
@ 2015-01-17 10:12   ` tip-bot for Vineet Gupta
  -1 siblings, 0 replies; 24+ messages in thread
From: tip-bot for Vineet Gupta @ 2015-01-17 10:12 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: tglx, Vineet.Gupta1, mingo, jolsa, peterz, acme, Alexey.Brodkin,
	hpa, namhyung, linux-kernel, vgupta

Commit-ID:  a83d869f300bf91df07443b5272db7a5a8eb18b7
Gitweb:     http://git.kernel.org/tip/a83d869f300bf91df07443b5272db7a5a8eb18b7
Author:     Vineet Gupta <Vineet.Gupta1@synopsys.com>
AuthorDate: Tue, 13 Jan 2015 19:13:21 +0530
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Fri, 16 Jan 2015 17:49:29 -0300

perf tools: Elide strlcpy warning with uclibc

   ----------------->8------------------
  CC       bench/sched-pipe.o
In file included from builtin-annotate.c:13:0:
util/cache.h:76:15: warning: redundant redeclaration of 'strlcpy'
[-Wredundant-decls]
 extern size_t strlcpy(char *dest, const char *src, size_t size);
               ^
In file included from util/util.h:55:0,
                 from builtin.h:4,
                 from builtin-annotate.c:8:
~/vineetg/arc/gnu/INSTALL_1412-arc-2014.12-rc1/arc-snps-linux-uclibc/sysroot/usr/include/string.h:396:15:
note: previous declaration of 'strlcpy' was here
 extern size_t strlcpy(char *__restrict dst, const char *__restrict src,
   ----------------->8------------------

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1421156604-30603-3-git-send-email-vgupta@synopsys.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/cache.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/perf/util/cache.h b/tools/perf/util/cache.h
index 5cf9e1b..d04d770 100644
--- a/tools/perf/util/cache.h
+++ b/tools/perf/util/cache.h
@@ -71,7 +71,9 @@ extern char *perf_path(const char *fmt, ...) __attribute__((format (printf, 1, 2
 extern char *perf_pathdup(const char *fmt, ...)
 	__attribute__((format (printf, 1, 2)));
 
+#ifndef __UCLIBC__
 /* Matches the libc/libbsd function attribute so we declare this unconditionally: */
 extern size_t strlcpy(char *dest, const char *src, size_t size);
+#endif
 
 #endif /* __PERF_CACHE_H */

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [tip:perf/urgent] perf tools: Avoid build splat for syscall numbers with uclibc
  2015-01-13 13:43   ` Vineet Gupta
  (?)
@ 2015-01-17 10:12   ` tip-bot for Vineet Gupta
  -1 siblings, 0 replies; 24+ messages in thread
From: tip-bot for Vineet Gupta @ 2015-01-17 10:12 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: namhyung, mingo, tglx, Vineet.Gupta1, Alexey.Brodkin, jolsa, hpa,
	acme, vgupta, peterz, linux-kernel

Commit-ID:  ea1fe3a88763d4dfef7e2529ba606f96e8e6b271
Gitweb:     http://git.kernel.org/tip/ea1fe3a88763d4dfef7e2529ba606f96e8e6b271
Author:     Vineet Gupta <Vineet.Gupta1@synopsys.com>
AuthorDate: Tue, 13 Jan 2015 19:13:22 +0530
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Fri, 16 Jan 2015 17:49:29 -0300

perf tools: Avoid build splat for syscall numbers with uclibc

This is due to duplicated unistd inclusion (via uClibc headers + kernel headers)
Also seen on ARM uClibc based tools

   ------- ARC build ---------->8-------------

  CC       util/evlist.o
In file included from
~/arc/k.org/arch/arc/include/uapi/asm/unistd.h:25:0,
                 from util/../perf-sys.h:10,
                 from util/../perf.h:15,
                 from util/event.h:7,
                 from util/event.c:3:
~/arc/k.org/include/uapi/asm-generic/unistd.h:906:0:
warning: "__NR_fcntl64" redefined [enabled by default]
 #define __NR_fcntl64 __NR3264_fcntl
 ^
In file included from
~/arc/gnu/INSTALL_1412-arc-2014.12-rc1/arc-snps-linux-uclibc/sysroot/usr/include/sys/syscall.h:24:0,
                 from util/../perf-sys.h:6,
   ----------------->8-------------------

   ------- ARM build ---------->8-------------

  CC FPIC  plugin_scsi.o
In file included from util/../perf-sys.h:9:0,
                 from util/../perf.h:15,
                 from util/cache.h:7,
                 from perf.c:12:
~/arc/k.org/arch/arm/include/uapi/asm/unistd.h:28:0:
warning: "__NR_restart_syscall" redefined [enabled by default]
In file included from
~/buildroot/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/syscall.h:25:0,
                 from util/../perf-sys.h:6,
                 from util/../perf.h:15,
                 from util/cache.h:7,
                 from perf.c:12:
~/buildroot/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/bits/sysnum.h:17:0:
note: this is the location of the previous definition
   ----------------->8-------------------

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1421156604-30603-4-git-send-email-vgupta@synopsys.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/bench/sched-pipe.c | 2 +-
 tools/perf/builtin-top.c      | 1 -
 tools/perf/perf-sys.h         | 1 -
 3 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/tools/perf/bench/sched-pipe.c b/tools/perf/bench/sched-pipe.c
index 07a8d76..005cc28 100644
--- a/tools/perf/bench/sched-pipe.c
+++ b/tools/perf/bench/sched-pipe.c
@@ -19,12 +19,12 @@
 #include <stdlib.h>
 #include <signal.h>
 #include <sys/wait.h>
-#include <linux/unistd.h>
 #include <string.h>
 #include <errno.h>
 #include <assert.h>
 #include <sys/time.h>
 #include <sys/types.h>
+#include <sys/syscall.h>
 
 #include <pthread.h>
 
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 961cea1..616f0fc 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -66,7 +66,6 @@
 #include <sys/utsname.h>
 #include <sys/mman.h>
 
-#include <linux/unistd.h>
 #include <linux/types.h>
 
 static volatile int done;
diff --git a/tools/perf/perf-sys.h b/tools/perf/perf-sys.h
index a3b13d7..6ef6816 100644
--- a/tools/perf/perf-sys.h
+++ b/tools/perf/perf-sys.h
@@ -6,7 +6,6 @@
 #include <sys/syscall.h>
 #include <linux/types.h>
 #include <linux/perf_event.h>
-#include <asm/unistd.h>
 
 #if defined(__i386__)
 #define mb()		asm volatile("lock; addl $0,0(%%esp)" ::: "memory")

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PATCH v3 0/5] Perf tool fixes for ARC + uClibc
  2015-01-14 13:59   ` Arnaldo Carvalho de Melo
@ 2015-01-19  4:35       ` Vineet Gupta
  0 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-19  4:35 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo, Jiri Olsa
  Cc: namhyung, jolsa, peterz, mingo, linux-kernel, linux-perf-users,
	linux-arch, Alexey.Brodkin

Hi Arnaldo,

On Wednesday 14 January 2015 07:29 PM, Arnaldo Carvalho de Melo wrote:
> Em Wed, Jan 14, 2015 at 01:00:00PM +0100, Jiri Olsa escreveu:
>> > On Tue, Jan 13, 2015 at 07:13:19PM +0530, Vineet Gupta wrote:
>>> > > Hi,
>>> > > 
>>> > > This series based off linux-next of 20150105 allows us to build/use perf
>>> > > for ARC with uClibc based userland.
>>> > > 
>>> > > v3: Changes since v2 [2]
>>> > > * 1/5	: Ack from Jiri
>>> > > * 2/5	: no changes
>>> > > * 3/5	: sys/syscall.h included	  [Jiri]
>>> > > * 4/5	: no changes
>>> > > * 5/5	: -lpthread added to link target  [Jiri]
>>> > > * {1,5} : Changelog updated so scissor lines don't start at column 1
>> > 
>> > Acked-by: Jiri Olsa <jolsa@kernel.org>
> Most are already in my perf/urgent branch.
> 
> - Arnaldo

Are you planning to add {4,5}/5 for next window or did u drop/miss them ?

Thx,
-Vineet


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH v3 0/5] Perf tool fixes for ARC + uClibc
@ 2015-01-19  4:35       ` Vineet Gupta
  0 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-19  4:35 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo, Jiri Olsa
  Cc: namhyung, jolsa, peterz, mingo, linux-kernel, linux-perf-users,
	linux-arch, Alexey.Brodkin

Hi Arnaldo,

On Wednesday 14 January 2015 07:29 PM, Arnaldo Carvalho de Melo wrote:
> Em Wed, Jan 14, 2015 at 01:00:00PM +0100, Jiri Olsa escreveu:
>> > On Tue, Jan 13, 2015 at 07:13:19PM +0530, Vineet Gupta wrote:
>>> > > Hi,
>>> > > 
>>> > > This series based off linux-next of 20150105 allows us to build/use perf
>>> > > for ARC with uClibc based userland.
>>> > > 
>>> > > v3: Changes since v2 [2]
>>> > > * 1/5	: Ack from Jiri
>>> > > * 2/5	: no changes
>>> > > * 3/5	: sys/syscall.h included	  [Jiri]
>>> > > * 4/5	: no changes
>>> > > * 5/5	: -lpthread added to link target  [Jiri]
>>> > > * {1,5} : Changelog updated so scissor lines don't start at column 1
>> > 
>> > Acked-by: Jiri Olsa <jolsa@kernel.org>
> Most are already in my perf/urgent branch.
> 
> - Arnaldo

Are you planning to add {4,5}/5 for next window or did u drop/miss them ?

Thx,
-Vineet

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH v3 0/5] Perf tool fixes for ARC + uClibc
  2015-01-19  4:35       ` Vineet Gupta
  (?)
@ 2015-01-19 13:58       ` Arnaldo Carvalho de Melo
  2015-01-27 10:29           ` Vineet Gupta
  -1 siblings, 1 reply; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-19 13:58 UTC (permalink / raw)
  To: Vineet Gupta
  Cc: Jiri Olsa, namhyung, jolsa, peterz, mingo, linux-kernel,
	linux-perf-users, linux-arch, Alexey.Brodkin

Em Mon, Jan 19, 2015 at 10:05:08AM +0530, Vineet Gupta escreveu:
> Hi Arnaldo,
> 
> On Wednesday 14 January 2015 07:29 PM, Arnaldo Carvalho de Melo wrote:
> > Em Wed, Jan 14, 2015 at 01:00:00PM +0100, Jiri Olsa escreveu:
> >> > On Tue, Jan 13, 2015 at 07:13:19PM +0530, Vineet Gupta wrote:
> >>> > > Hi,
> >>> > > 
> >>> > > This series based off linux-next of 20150105 allows us to build/use perf
> >>> > > for ARC with uClibc based userland.
> >>> > > 
> >>> > > v3: Changes since v2 [2]
> >>> > > * 1/5	: Ack from Jiri
> >>> > > * 2/5	: no changes
> >>> > > * 3/5	: sys/syscall.h included	  [Jiri]
> >>> > > * 4/5	: no changes
> >>> > > * 5/5	: -lpthread added to link target  [Jiri]
> >>> > > * {1,5} : Changelog updated so scissor lines don't start at column 1

> >> > Acked-by: Jiri Olsa <jolsa@kernel.org>
> > Most are already in my perf/urgent branch.

> Are you planning to add {4,5}/5 for next window or did u drop/miss them ?

I will, IIRC those were not that trivial, so could wait, I'll make sure
I review them and merge for perf/core if I find no issues.

- Arnaldo

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH v3 0/5] Perf tool fixes for ARC + uClibc
  2015-01-19 13:58       ` Arnaldo Carvalho de Melo
@ 2015-01-27 10:29           ` Vineet Gupta
  0 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-27 10:29 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Jiri Olsa, namhyung, jolsa, peterz, mingo, linux-kernel,
	linux-perf-users, linux-arch, Alexey.Brodkin

Hi Arnaldo,

On Monday 19 January 2015 07:28 PM, Arnaldo Carvalho de Melo wrote:
>>>>> Acked-by: Jiri Olsa <jolsa@kernel.org>
>>> > > Most are already in my perf/urgent branch.
>> > Are you planning to add {4,5}/5 for next window or did u drop/miss them ?
> I will, IIRC those were not that trivial, so could wait, I'll make sure
> I review them and merge for perf/core if I find no issues.

Sorry for annoying pestering on this. I don't see the patches in ur perf/core yet
and given that we are so close to next window, I fear that we will miss them if we
don't add them soon.

We need them to be able to use perf on ARC - fixing build issue (5/5) as well as
run time issue (4/5)

Thx,
-Vineet

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH v3 0/5] Perf tool fixes for ARC + uClibc
@ 2015-01-27 10:29           ` Vineet Gupta
  0 siblings, 0 replies; 24+ messages in thread
From: Vineet Gupta @ 2015-01-27 10:29 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Jiri Olsa, namhyung, jolsa, peterz, mingo, linux-kernel,
	linux-perf-users, linux-arch, Alexey.Brodkin

Hi Arnaldo,

On Monday 19 January 2015 07:28 PM, Arnaldo Carvalho de Melo wrote:
>>>>> Acked-by: Jiri Olsa <jolsa@kernel.org>
>>> > > Most are already in my perf/urgent branch.
>> > Are you planning to add {4,5}/5 for next window or did u drop/miss them ?
> I will, IIRC those were not that trivial, so could wait, I'll make sure
> I review them and merge for perf/core if I find no issues.

Sorry for annoying pestering on this. I don't see the patches in ur perf/core yet
and given that we are so close to next window, I fear that we will miss them if we
don't add them soon.

We need them to be able to use perf on ARC - fixing build issue (5/5) as well as
run time issue (4/5)

Thx,
-Vineet

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH v3 0/5] Perf tool fixes for ARC + uClibc
  2015-01-27 10:29           ` Vineet Gupta
  (?)
@ 2015-01-27 14:29           ` Arnaldo Carvalho de Melo
  -1 siblings, 0 replies; 24+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-27 14:29 UTC (permalink / raw)
  To: Vineet Gupta
  Cc: Jiri Olsa, namhyung, jolsa, peterz, mingo, linux-kernel,
	linux-perf-users, linux-arch, Alexey.Brodkin

Em Tue, Jan 27, 2015 at 03:59:59PM +0530, Vineet Gupta escreveu:
> Hi Arnaldo,
> 
> On Monday 19 January 2015 07:28 PM, Arnaldo Carvalho de Melo wrote:
> >>>>> Acked-by: Jiri Olsa <jolsa@kernel.org>
> >>> > > Most are already in my perf/urgent branch.
> >> > Are you planning to add {4,5}/5 for next window or did u drop/miss them ?
> > I will, IIRC those were not that trivial, so could wait, I'll make sure
> > I review them and merge for perf/core if I find no issues.
> 
> Sorry for annoying pestering on this. I don't see the patches in ur perf/core yet
> and given that we are so close to next window, I fear that we will miss them if we
> don't add them soon.
> 
> We need them to be able to use perf on ARC - fixing build issue (5/5) as well as
> run time issue (4/5)

Applied the remaining ones to my perf/core branch, will be on my next
pull req to Ingo.

- Arnaldo

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [tip:perf/core] perf evsel: Don't rely on malloc working for sz 0
  2015-01-13 13:43   ` Vineet Gupta
  (?)
@ 2015-01-30 18:31   ` tip-bot for Vineet Gupta
  -1 siblings, 0 replies; 24+ messages in thread
From: tip-bot for Vineet Gupta @ 2015-01-30 18:31 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: acme, vgupta, mingo, linux-kernel, Vineet.Gupta1, Alexey.Brodkin,
	jolsa, namhyung, hpa, tglx, peterz

Commit-ID:  8d9cbd8f870e1aab00fb0f8a465887877a1d6f82
Gitweb:     http://git.kernel.org/tip/8d9cbd8f870e1aab00fb0f8a465887877a1d6f82
Author:     Vineet Gupta <Vineet.Gupta1@synopsys.com>
AuthorDate: Tue, 13 Jan 2015 19:13:23 +0530
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 28 Jan 2015 12:43:32 -0300

perf evsel: Don't rely on malloc working for sz 0

When running perf on ARC (uClibc based userspace), ran into this issue
   ------------->8----------------
	[ARCLinux]$ ./perf record ls
	bin             etc             perf            sys
	debug           init            perf.data       tmp
	[ perf record: Woken up 1 times to write data ]
	[ perf record: Captured and wrote 0.001 MB perf.data (~24 samples) ]

	[ARCLinux]$ ./perf report
	incompatible file format (rerun with -v to learn more)
   ------------->8----------------

The problem happens in the following call stack when zalloc is called
with size zero

glibc default / uClibc with MALLOC_GLIBC_COMPAT are OK, but not if that
config option is not enabled.

  cmd_report
     perf_session__new
	perf_session__open
	    perf_session__read_header
		read_attr(fd, header, &f_attr)
		nr_ids = f_attr.ids.size / sizeof(u64); <-- 0
		perf_evsel__alloc_id(vsel, 1, nr_ids)
			zalloc(ncpus * nthreads * sizeof(u64)) <-- 0

header.c: read_attr()

(gdb) p *f_attr
$17 = {
  attr = {
    type = 0,
    size = 96,
    config = 0,
    {
      sample_period = 4000,
      sample_freq = 4000
    },
...
  ids = {
    offset = 104,
    size = 0      <------
  }
}

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Suggested-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1421156604-30603-5-git-send-email-vgupta@synopsys.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/evsel.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 1e90c85..1d826d6 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -797,6 +797,9 @@ int perf_evsel__enable(struct perf_evsel *evsel, int ncpus, int nthreads)
 
 int perf_evsel__alloc_id(struct perf_evsel *evsel, int ncpus, int nthreads)
 {
+	if (ncpus == 0 || nthreads == 0)
+		return 0;
+
 	if (evsel->system_wide)
 		nthreads = 1;
 

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [tip:perf/core] perf tools: Provide stub for missing pthread_attr_setaffinity_np
  2015-01-13 13:43   ` Vineet Gupta
  (?)
@ 2015-01-30 18:31   ` tip-bot for Vineet Gupta
  -1 siblings, 0 replies; 24+ messages in thread
From: tip-bot for Vineet Gupta @ 2015-01-30 18:31 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: peterz, jolsa, mingo, Alexey.Brodkin, tglx, acme, vgupta,
	namhyung, linux-kernel, Vineet.Gupta1, hpa

Commit-ID:  459a3df76c99124fd222586be7f10f862547e7a9
Gitweb:     http://git.kernel.org/tip/459a3df76c99124fd222586be7f10f862547e7a9
Author:     Vineet Gupta <Vineet.Gupta1@synopsys.com>
AuthorDate: Tue, 13 Jan 2015 19:13:24 +0530
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 28 Jan 2015 12:43:32 -0300

perf tools: Provide stub for missing pthread_attr_setaffinity_np

uClibc Linuxthreads.old doesn't support the pthread_attr_setaffinity_np()
functioo:

   ----------------->8-----------------------
  CC       bench/futex-hash.o
  CC       bench/futex-wake.o
bench/futex-hash.c: In function 'bench_futex_hash':
bench/futex-hash.c:161:3: error: implicit declaration of function
'pthread_attr_setaffinity_np' [-Werror=implicit-function-declaration]
   ret = pthread_attr_setaffinity_np(&thread_attr, sizeof(cpu_set_t),
&cpu);
   ^
bench/futex-hash.c:161:3: error: nested extern declaration of
'pthread_attr_setaffinity_np' [-Werror=nested-externs]
   ----------------->8-----------------------

So introduce a test to check that and if not available provide a stub.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1421156604-30603-6-git-send-email-vgupta@synopsys.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/bench/futex.h                                   | 13 +++++++++++++
 tools/perf/config/Makefile                                 |  6 ++++++
 tools/perf/config/feature-checks/Makefile                  |  4 ++++
 tools/perf/config/feature-checks/test-all.c                |  5 +++++
 .../feature-checks/test-pthread-attr-setaffinity-np.c      | 14 ++++++++++++++
 5 files changed, 42 insertions(+)

diff --git a/tools/perf/bench/futex.h b/tools/perf/bench/futex.h
index 71f2844..7ed22ff 100644
--- a/tools/perf/bench/futex.h
+++ b/tools/perf/bench/futex.h
@@ -68,4 +68,17 @@ futex_cmp_requeue(u_int32_t *uaddr, u_int32_t val, u_int32_t *uaddr2, int nr_wak
 		 val, opflags);
 }
 
+#ifndef HAVE_PTHREAD_ATTR_SETAFFINITY_NP
+#include <pthread.h>
+static inline int pthread_attr_setaffinity_np(pthread_attr_t *attr,
+					      size_t cpusetsize,
+					      cpu_set_t *cpuset)
+{
+	attr = attr;
+	cpusetsize = cpusetsize;
+	cpuset = cpuset;
+	return 0;
+}
+#endif
+
 #endif /* _FUTEX_H */
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index 648e31f..cc22408 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -198,6 +198,7 @@ CORE_FEATURE_TESTS =			\
 	libpython-version		\
 	libslang			\
 	libunwind			\
+	pthread-attr-setaffinity-np	\
 	stackprotector-all		\
 	timerfd				\
 	libdw-dwarf-unwind		\
@@ -226,6 +227,7 @@ VF_FEATURE_TESTS =			\
 	libelf-getphdrnum		\
 	libelf-mmap			\
 	libpython-version		\
+	pthread-attr-setaffinity-np	\
 	stackprotector-all		\
 	timerfd				\
 	libunwind-debug-frame		\
@@ -301,6 +303,10 @@ ifeq ($(feature-sync-compare-and-swap), 1)
   CFLAGS += -DHAVE_SYNC_COMPARE_AND_SWAP_SUPPORT
 endif
 
+ifeq ($(feature-pthread-attr-setaffinity-np), 1)
+  CFLAGS += -DHAVE_PTHREAD_ATTR_SETAFFINITY_NP
+endif
+
 ifndef NO_BIONIC
   $(call feature_check,bionic)
   ifeq ($(feature-bionic), 1)
diff --git a/tools/perf/config/feature-checks/Makefile b/tools/perf/config/feature-checks/Makefile
index 53f19b5..42ac05a 100644
--- a/tools/perf/config/feature-checks/Makefile
+++ b/tools/perf/config/feature-checks/Makefile
@@ -25,6 +25,7 @@ FILES=					\
 	test-libslang.bin		\
 	test-libunwind.bin		\
 	test-libunwind-debug-frame.bin	\
+	test-pthread-attr-setaffinity-np.bin	\
 	test-stackprotector-all.bin	\
 	test-timerfd.bin		\
 	test-libdw-dwarf-unwind.bin	\
@@ -47,6 +48,9 @@ test-all.bin:
 test-hello.bin:
 	$(BUILD)
 
+test-pthread-attr-setaffinity-np.bin:
+	$(BUILD) -Werror -lpthread
+
 test-stackprotector-all.bin:
 	$(BUILD) -Werror -fstack-protector-all
 
diff --git a/tools/perf/config/feature-checks/test-all.c b/tools/perf/config/feature-checks/test-all.c
index 652e009..6d4d093 100644
--- a/tools/perf/config/feature-checks/test-all.c
+++ b/tools/perf/config/feature-checks/test-all.c
@@ -97,6 +97,10 @@
 # include "test-zlib.c"
 #undef main
 
+#define main main_test_pthread_attr_setaffinity_np
+# include "test-pthread_attr_setaffinity_np.c"
+#undef main
+
 int main(int argc, char *argv[])
 {
 	main_test_libpython();
@@ -121,6 +125,7 @@ int main(int argc, char *argv[])
 	main_test_libdw_dwarf_unwind();
 	main_test_sync_compare_and_swap(argc, argv);
 	main_test_zlib();
+	main_test_pthread_attr_setaffinity_np();
 
 	return 0;
 }
diff --git a/tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c b/tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c
new file mode 100644
index 0000000..0a0d3ec
--- /dev/null
+++ b/tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c
@@ -0,0 +1,14 @@
+#include <stdint.h>
+#include <pthread.h>
+
+int main(void)
+{
+	int ret = 0;
+	pthread_attr_t thread_attr;
+
+	pthread_attr_init(&thread_attr);
+	/* don't care abt exact args, just the API itself in libpthread */
+	ret = pthread_attr_setaffinity_np(&thread_attr, 0, NULL);
+
+	return ret;
+}

^ permalink raw reply related	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2015-01-30 18:32 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-13 13:43 [PATCH v3 0/5] Perf tool fixes for ARC + uClibc Vineet Gupta
2015-01-13 13:43 ` Vineet Gupta
2015-01-13 13:43 ` [PATCH v3 1/5] perf tools: [uclibc] fix statfs.f_type data type mismatch build error Vineet Gupta
2015-01-13 13:43   ` Vineet Gupta
2015-01-13 13:43 ` [PATCH v3 2/5] perf tools: [uclibc] Elide strlcpy warning Vineet Gupta
2015-01-13 13:43   ` Vineet Gupta
2015-01-17 10:12   ` [tip:perf/urgent] perf tools: Elide strlcpy warning with uclibc tip-bot for Vineet Gupta
2015-01-13 13:43 ` [PATCH v3 3/5] perf tools: [uclibc] Avoid build splat for syscall numbers Vineet Gupta
2015-01-13 13:43   ` Vineet Gupta
2015-01-17 10:12   ` [tip:perf/urgent] perf tools: Avoid build splat for syscall numbers with uclibc tip-bot for Vineet Gupta
2015-01-13 13:43 ` [PATCH v3 4/5] perf tools: [uclibc] don't rely on glibc malloc working for sz 0 Vineet Gupta
2015-01-13 13:43   ` Vineet Gupta
2015-01-30 18:31   ` [tip:perf/core] perf evsel: Don't rely on " tip-bot for Vineet Gupta
2015-01-13 13:43 ` [PATCH v3 5/5] perf tools: [uclibc] provide stub for pthread_attr_setaffinity_np Vineet Gupta
2015-01-13 13:43   ` Vineet Gupta
2015-01-30 18:31   ` [tip:perf/core] perf tools: Provide stub for missing pthread_attr_setaffinity_np tip-bot for Vineet Gupta
2015-01-14 12:00 ` [PATCH v3 0/5] Perf tool fixes for ARC + uClibc Jiri Olsa
2015-01-14 13:59   ` Arnaldo Carvalho de Melo
2015-01-19  4:35     ` Vineet Gupta
2015-01-19  4:35       ` Vineet Gupta
2015-01-19 13:58       ` Arnaldo Carvalho de Melo
2015-01-27 10:29         ` Vineet Gupta
2015-01-27 10:29           ` Vineet Gupta
2015-01-27 14:29           ` Arnaldo Carvalho de Melo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.