tools build: Add test for setns()
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: 86bcdb5a43997bb02ba25a76482c7bfc652ba45b Gitweb: http://git.kernel.org/tip/86bcdb5a43997bb02ba25a76482c7bfc652ba45b Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Tue, 18 Jul 2017 17:15:29 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Tue, 18 Jul 2017 23:14:08 -0300
tools build: Add test for setns()
And provide an alternative implementation to keep perf building on older distros as we're about to add initial support for namespaces.
Cc Adrian Hunter <[email protected]>
Cc David Ahern <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Krister Johansen <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Wang Nan <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
---
tools/build/Makefile.feature | 3 ++-
tools/build/feature/Makefile | 6 +++++-
tools/build/feature/test-all.c | 5 +++++
tools/build/feature/{test-sched_getcpu.c => test-setns.c} | 4 +---
tools/perf/Makefile.config | 5 +++++
tools/perf/util/Build | 4 ++++
tools/perf/util/setns.c | 8 ++++++++
tools/perf/util/util.h | 4 ++++
8 files changed, 34 insertions(+), 5 deletions(-)tools/build/Makefile.feature +2 -1
@@ -64,7 +64,8 @@ FEATURE_TESTS_BASIC := \ get_cpuid \ bpf \ sched_getcpu \ - sdt + sdt \ + setns # FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list # of all feature tests
tools/build/feature/Makefile +5 -1
@@ -49,7 +49,8 @@ FILES= \ test-sdt.bin \ test-cxx.bin \ test-jvmti.bin \ - test-sched_getcpu.bin + test-sched_getcpu.bin \ + test-setns.bin FILES := $(addprefix $(OUTPUT),$(FILES))
@@ -95,6 +96,9 @@ $(OUTPUT)test-glibc.bin: $(OUTPUT)test-sched_getcpu.bin: $(BUILD) +$(OUTPUT)test-setns.bin: + $(BUILD) + DWARFLIBS := -ldw ifeq ($(findstring -static,${LDFLAGS}),-static) DWARFLIBS += -lelf -lebl -lz -llzma -lbz2
tools/build/feature/test-all.c +5 -0
@@ -153,6 +153,10 @@# include "test-sdt.c" #undef main +#define main main_test_setns +# include "test-setns.c" +#undef main +int main (int argc,char *argv[]) {main_test_libpython ();
@@ -188,6 +192,7 @@ int main(int argc, char *argv[])main_test_libcrypto ();main_test_sched_getcpu ();main_test_sdt (); +main_test_setns ();return 0 ; }
tools/build/feature/test-setns.c renamed from tools/build/feature/test-sched_getcpu.c +1 -3
@@ -1,9 +1,7 @@ -#ifndef _GNU_SOURCE#define _GNU_SOURCE -#endif #include <sched.h> int main (void ) { -return sched_getcpu (); +return setns (0 ,0 ); }
tools/perf/Makefile.config +5 -0
@@ -330,6 +330,11 @@ ifeq ($(feature-sched_getcpu), 1) CFLAGS += -DHAVE_SCHED_GETCPU_SUPPORT endif +ifeq ($(feature-setns), 1) + CFLAGS += -DHAVE_SETNS_SUPPORT + $(call detected,CONFIG_SETNS) +endif + ifndef NO_LIBELF CFLAGS += -DHAVE_LIBELF_SUPPORT EXTLIBS += -lelf
tools/perf/util/Build +4 -0
@@ -104,6 +104,10 @@ ifndef CONFIG_LIBELF libperf-y += symbol-minimal.o endif +ifndef CONFIG_SETNS +libperf-y += setns.o +endif + libperf-$(CONFIG_DWARF) += probe-finder.o libperf-$(CONFIG_DWARF) += dwarf-aux.o libperf-$(CONFIG_DWARF) += dwarf-regs.o
tools/perf/util/setns.c new file +8 -0
@@ -0,0 +1,8 @@ +#include "util.h" +#include <unistd.h> +#include <sys/syscall.h> + +int setns (int fd,int nstype) +{ +return syscall (__NR_setns, fd, nstype); +}
tools/perf/util/util.h +4 -0
@@ -58,4 +58,8 @@ const char *perf_tip(const char *dirpath);int sched_getcpu (void );#endif +#ifndef HAVE_SETNS_SUPPORT +int setns (int fd,int nstype); +#endif +#endif /* GIT_COMPAT_UTIL_H */