* [PATCH 1/2] tools/perf/build: Fix detection of non-core features
@ 2013-10-29 16:43 David Ahern
2013-10-29 16:43 ` [PATCH 2/2] perf kvm: Disable live command if timerfd is not supported David Ahern
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: David Ahern @ 2013-10-29 16:43 UTC (permalink / raw)
To: acme, linux-kernel
Cc: David Ahern, Ingo Molnar, Peter Zijlstra, Namhyung Kim, Jiri Olsa
feature_check needs to be invoked through call, and LDFLAGS may not be set
so quotes are needed.
Thanks to Jiri for spotting the quotes around LDFLAGS; that one was driving
me nuts with the upcoming timerfd feature detection.
Signed-off-by: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
---
tools/perf/config/Makefile | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index 543aa953bab1..c82772207e6e 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -96,7 +96,7 @@ endif
feature_check = $(eval $(feature_check_code))
define feature_check_code
- feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) LDFLAGS=$(LDFLAGS) -C config/feature-checks test-$1 >/dev/null 2>/dev/null && echo 1 || echo 0)
+ feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) LDFLAGS="$(LDFLAGS)" -C config/feature-checks test-$1 >/dev/null 2>/dev/null && echo 1 || echo 0)
endef
feature_set = $(eval $(feature_set_code))
@@ -233,7 +233,7 @@ CFLAGS += -I$(LIB_INCLUDE)
CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
ifndef NO_BIONIC
- $(feature_check,bionic)
+ $(call feature_check,bionic)
ifeq ($(feature-bionic), 1)
BIONIC := 1
EXTLIBS := $(filter-out -lrt,$(EXTLIBS))
@@ -470,15 +470,15 @@ else
CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT
else
ifneq ($(feature-libbfd), 1)
- $(feature_check,liberty)
+ $(call feature_check,liberty)
ifeq ($(feature-liberty), 1)
EXTLIBS += -lbfd -liberty
else
- $(feature_check,liberty-z)
+ $(call feature_check,liberty-z)
ifeq ($(feature-liberty-z), 1)
EXTLIBS += -lbfd -liberty -lz
else
- $(feature_check,cplus-demangle)
+ $(call feature_check,cplus-demangle)
ifeq ($(feature-cplus-demangle), 1)
EXTLIBS += -liberty
CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT
--
1.7.12.4 (Apple Git-37)
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 2/2] perf kvm: Disable live command if timerfd is not supported 2013-10-29 16:43 [PATCH 1/2] tools/perf/build: Fix detection of non-core features David Ahern @ 2013-10-29 16:43 ` David Ahern 2013-10-29 17:29 ` Jiri Olsa ` (2 more replies) 2013-10-29 17:29 ` [PATCH 1/2] tools/perf/build: Fix detection of non-core features Jiri Olsa ` (2 subsequent siblings) 3 siblings, 3 replies; 9+ messages in thread From: David Ahern @ 2013-10-29 16:43 UTC (permalink / raw) To: acme, linux-kernel Cc: David Ahern, Ingo Molnar, Peter Zijlstra, Namhyung Kim, Jiri Olsa If the OS does not have timerfd support (e.g., older OS'es like RHEL5) disable perf kvm stat live. Signed-off-by: David Ahern <dsahern@gmail.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> --- tools/perf/builtin-kvm.c | 12 ++++++++++++ tools/perf/config/Makefile | 7 +++++++ tools/perf/config/feature-checks/Makefile | 6 +++++- tools/perf/config/feature-checks/test-all.c | 5 +++++ tools/perf/config/feature-checks/test-timerfd.c | 18 ++++++++++++++++++ 5 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 tools/perf/config/feature-checks/test-timerfd.c diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c index cb05f39d8a77..cd9f92078aba 100644 --- a/tools/perf/builtin-kvm.c +++ b/tools/perf/builtin-kvm.c @@ -20,7 +20,9 @@ #include "util/data.h" #include <sys/prctl.h> +#ifdef HAVE_TIMERFD_SUPPORT #include <sys/timerfd.h> +#endif #include <termios.h> #include <semaphore.h> @@ -337,6 +339,7 @@ static void init_kvm_event_record(struct perf_kvm_stat *kvm) INIT_LIST_HEAD(&kvm->kvm_events_cache[i]); } +#ifdef HAVE_TIMERFD_SUPPORT static void clear_events_cache_stats(struct list_head *kvm_events_cache) { struct list_head *head; @@ -358,6 +361,7 @@ static void clear_events_cache_stats(struct list_head *kvm_events_cache) } } } +#endif static int kvm_events_hash_fn(u64 key) { @@ -783,6 +787,7 @@ static void print_result(struct perf_kvm_stat *kvm) pr_info("\nLost events: %" PRIu64 "\n\n", kvm->lost_events); } +#ifdef HAVE_TIMERFD_SUPPORT static int process_lost_event(struct perf_tool *tool, union perf_event *event __maybe_unused, struct perf_sample *sample __maybe_unused, @@ -793,6 +798,7 @@ static int process_lost_event(struct perf_tool *tool, kvm->lost_events++; return 0; } +#endif static bool skip_sample(struct perf_kvm_stat *kvm, struct perf_sample *sample) @@ -872,6 +878,7 @@ static bool verify_vcpu(int vcpu) return true; } +#ifdef HAVE_TIMERFD_SUPPORT /* keeping the max events to a modest level to keep * the processing of samples per mmap smooth. */ @@ -1213,6 +1220,7 @@ static int kvm_live_open_events(struct perf_kvm_stat *kvm) out: return rc; } +#endif static int read_events(struct perf_kvm_stat *kvm) { @@ -1379,6 +1387,7 @@ kvm_events_report(struct perf_kvm_stat *kvm, int argc, const char **argv) return kvm_events_report_vcpu(kvm); } +#ifdef HAVE_TIMERFD_SUPPORT static struct perf_evlist *kvm_live_event_list(void) { struct perf_evlist *evlist; @@ -1566,6 +1575,7 @@ out: return err; } +#endif static void print_kvm_stat_usage(void) { @@ -1604,8 +1614,10 @@ static int kvm_cmd_stat(const char *file_name, int argc, const char **argv) if (!strncmp(argv[1], "rep", 3)) return kvm_events_report(&kvm, argc - 1 , argv + 1); +#ifdef HAVE_TIMERFD_SUPPORT if (!strncmp(argv[1], "live", 4)) return kvm_events_live(&kvm, argc - 1 , argv + 1); +#endif perf_stat: return cmd_stat(argc, argv, NULL); diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile index c82772207e6e..afe4945e3e84 100644 --- a/tools/perf/config/Makefile +++ b/tools/perf/config/Makefile @@ -395,6 +395,13 @@ else endif endif +$(call feature_check,timerfd) +ifeq ($(feature-timerfd), 1) + CFLAGS += -DHAVE_TIMERFD_SUPPORT +else + msg := $(warning No timerfd support. Disables 'perf kvm stat live'); +endif + disable-python = $(eval $(disable-python_code)) define disable-python_code CFLAGS += -DNO_LIBPYTHON diff --git a/tools/perf/config/feature-checks/Makefile b/tools/perf/config/feature-checks/Makefile index 452b67cc4d7b..a4d4173c576e 100644 --- a/tools/perf/config/feature-checks/Makefile +++ b/tools/perf/config/feature-checks/Makefile @@ -25,7 +25,8 @@ FILES= \ test-libunwind \ test-on-exit \ test-stackprotector-all \ - test-stackprotector + test-stackprotector \ + test-timerfd CC := $(CC) -MD @@ -136,6 +137,9 @@ test-on-exit: test-backtrace: $(BUILD) +test-timerfd: + $(BUILD) + -include *.d ############################### diff --git a/tools/perf/config/feature-checks/test-all.c b/tools/perf/config/feature-checks/test-all.c index 50d431892a0c..59e7a705e146 100644 --- a/tools/perf/config/feature-checks/test-all.c +++ b/tools/perf/config/feature-checks/test-all.c @@ -81,6 +81,10 @@ # include "test-libnuma.c" #undef main +#define main main_test_timerfd +# include "test-timerfd.c" +#undef main + int main(int argc, char *argv[]) { main_test_libpython(); @@ -101,6 +105,7 @@ int main(int argc, char *argv[]) main_test_on_exit(); main_test_backtrace(); main_test_libnuma(); + main_test_timerfd(); return 0; } diff --git a/tools/perf/config/feature-checks/test-timerfd.c b/tools/perf/config/feature-checks/test-timerfd.c new file mode 100644 index 000000000000..8c5c083b4d3c --- /dev/null +++ b/tools/perf/config/feature-checks/test-timerfd.c @@ -0,0 +1,18 @@ +/* + * test for timerfd functions used by perf-kvm-stat-live + */ +#include <sys/timerfd.h> + +int main(void) +{ + struct itimerspec new_value; + + int fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK); + if (fd < 0) + return 1; + + if (timerfd_settime(fd, 0, &new_value, NULL) != 0) + return 1; + + return 0; +} -- 1.7.12.4 (Apple Git-37) ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] perf kvm: Disable live command if timerfd is not supported 2013-10-29 16:43 ` [PATCH 2/2] perf kvm: Disable live command if timerfd is not supported David Ahern @ 2013-10-29 17:29 ` Jiri Olsa 2013-11-05 5:00 ` David Ahern 2013-11-06 5:43 ` [tip:perf/core] " tip-bot for David Ahern 2 siblings, 0 replies; 9+ messages in thread From: Jiri Olsa @ 2013-10-29 17:29 UTC (permalink / raw) To: David Ahern; +Cc: acme, linux-kernel, Ingo Molnar, Peter Zijlstra, Namhyung Kim On Tue, Oct 29, 2013 at 10:43:16AM -0600, David Ahern wrote: > If the OS does not have timerfd support (e.g., older OS'es like RHEL5) > disable perf kvm stat live. > > Signed-off-by: David Ahern <dsahern@gmail.com> > Cc: Ingo Molnar <mingo@kernel.org> > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Jiri Olsa <jolsa@redhat.com> looks ok, Reviewed-by: Jiri Olsa <jolsa@redhat.com> jirka ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] perf kvm: Disable live command if timerfd is not supported 2013-10-29 16:43 ` [PATCH 2/2] perf kvm: Disable live command if timerfd is not supported David Ahern 2013-10-29 17:29 ` Jiri Olsa @ 2013-11-05 5:00 ` David Ahern 2013-11-06 5:43 ` [tip:perf/core] " tip-bot for David Ahern 2 siblings, 0 replies; 9+ messages in thread From: David Ahern @ 2013-11-05 5:00 UTC (permalink / raw) To: acme, linux-kernel Cc: David Ahern, Ingo Molnar, Peter Zijlstra, Namhyung Kim, Jiri Olsa ditto On 10/29/13, 10:43 AM, David Ahern wrote: > If the OS does not have timerfd support (e.g., older OS'es like RHEL5) > disable perf kvm stat live. > > Signed-off-by: David Ahern <dsahern@gmail.com> > Cc: Ingo Molnar <mingo@kernel.org> > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Jiri Olsa <jolsa@redhat.com> > --- > tools/perf/builtin-kvm.c | 12 ++++++++++++ > tools/perf/config/Makefile | 7 +++++++ > tools/perf/config/feature-checks/Makefile | 6 +++++- > tools/perf/config/feature-checks/test-all.c | 5 +++++ > tools/perf/config/feature-checks/test-timerfd.c | 18 ++++++++++++++++++ > 5 files changed, 47 insertions(+), 1 deletion(-) > create mode 100644 tools/perf/config/feature-checks/test-timerfd.c > > diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c > index cb05f39d8a77..cd9f92078aba 100644 > --- a/tools/perf/builtin-kvm.c > +++ b/tools/perf/builtin-kvm.c > @@ -20,7 +20,9 @@ > #include "util/data.h" > > #include <sys/prctl.h> > +#ifdef HAVE_TIMERFD_SUPPORT > #include <sys/timerfd.h> > +#endif > > #include <termios.h> > #include <semaphore.h> > @@ -337,6 +339,7 @@ static void init_kvm_event_record(struct perf_kvm_stat *kvm) > INIT_LIST_HEAD(&kvm->kvm_events_cache[i]); > } > > +#ifdef HAVE_TIMERFD_SUPPORT > static void clear_events_cache_stats(struct list_head *kvm_events_cache) > { > struct list_head *head; > @@ -358,6 +361,7 @@ static void clear_events_cache_stats(struct list_head *kvm_events_cache) > } > } > } > +#endif > > static int kvm_events_hash_fn(u64 key) > { > @@ -783,6 +787,7 @@ static void print_result(struct perf_kvm_stat *kvm) > pr_info("\nLost events: %" PRIu64 "\n\n", kvm->lost_events); > } > > +#ifdef HAVE_TIMERFD_SUPPORT > static int process_lost_event(struct perf_tool *tool, > union perf_event *event __maybe_unused, > struct perf_sample *sample __maybe_unused, > @@ -793,6 +798,7 @@ static int process_lost_event(struct perf_tool *tool, > kvm->lost_events++; > return 0; > } > +#endif > > static bool skip_sample(struct perf_kvm_stat *kvm, > struct perf_sample *sample) > @@ -872,6 +878,7 @@ static bool verify_vcpu(int vcpu) > return true; > } > > +#ifdef HAVE_TIMERFD_SUPPORT > /* keeping the max events to a modest level to keep > * the processing of samples per mmap smooth. > */ > @@ -1213,6 +1220,7 @@ static int kvm_live_open_events(struct perf_kvm_stat *kvm) > out: > return rc; > } > +#endif > > static int read_events(struct perf_kvm_stat *kvm) > { > @@ -1379,6 +1387,7 @@ kvm_events_report(struct perf_kvm_stat *kvm, int argc, const char **argv) > return kvm_events_report_vcpu(kvm); > } > > +#ifdef HAVE_TIMERFD_SUPPORT > static struct perf_evlist *kvm_live_event_list(void) > { > struct perf_evlist *evlist; > @@ -1566,6 +1575,7 @@ out: > > return err; > } > +#endif > > static void print_kvm_stat_usage(void) > { > @@ -1604,8 +1614,10 @@ static int kvm_cmd_stat(const char *file_name, int argc, const char **argv) > if (!strncmp(argv[1], "rep", 3)) > return kvm_events_report(&kvm, argc - 1 , argv + 1); > > +#ifdef HAVE_TIMERFD_SUPPORT > if (!strncmp(argv[1], "live", 4)) > return kvm_events_live(&kvm, argc - 1 , argv + 1); > +#endif > > perf_stat: > return cmd_stat(argc, argv, NULL); > diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile > index c82772207e6e..afe4945e3e84 100644 > --- a/tools/perf/config/Makefile > +++ b/tools/perf/config/Makefile > @@ -395,6 +395,13 @@ else > endif > endif > > +$(call feature_check,timerfd) > +ifeq ($(feature-timerfd), 1) > + CFLAGS += -DHAVE_TIMERFD_SUPPORT > +else > + msg := $(warning No timerfd support. Disables 'perf kvm stat live'); > +endif > + > disable-python = $(eval $(disable-python_code)) > define disable-python_code > CFLAGS += -DNO_LIBPYTHON > diff --git a/tools/perf/config/feature-checks/Makefile b/tools/perf/config/feature-checks/Makefile > index 452b67cc4d7b..a4d4173c576e 100644 > --- a/tools/perf/config/feature-checks/Makefile > +++ b/tools/perf/config/feature-checks/Makefile > @@ -25,7 +25,8 @@ FILES= \ > test-libunwind \ > test-on-exit \ > test-stackprotector-all \ > - test-stackprotector > + test-stackprotector \ > + test-timerfd > > CC := $(CC) -MD > > @@ -136,6 +137,9 @@ test-on-exit: > test-backtrace: > $(BUILD) > > +test-timerfd: > + $(BUILD) > + > -include *.d > > ############################### > diff --git a/tools/perf/config/feature-checks/test-all.c b/tools/perf/config/feature-checks/test-all.c > index 50d431892a0c..59e7a705e146 100644 > --- a/tools/perf/config/feature-checks/test-all.c > +++ b/tools/perf/config/feature-checks/test-all.c > @@ -81,6 +81,10 @@ > # include "test-libnuma.c" > #undef main > > +#define main main_test_timerfd > +# include "test-timerfd.c" > +#undef main > + > int main(int argc, char *argv[]) > { > main_test_libpython(); > @@ -101,6 +105,7 @@ int main(int argc, char *argv[]) > main_test_on_exit(); > main_test_backtrace(); > main_test_libnuma(); > + main_test_timerfd(); > > return 0; > } > diff --git a/tools/perf/config/feature-checks/test-timerfd.c b/tools/perf/config/feature-checks/test-timerfd.c > new file mode 100644 > index 000000000000..8c5c083b4d3c > --- /dev/null > +++ b/tools/perf/config/feature-checks/test-timerfd.c > @@ -0,0 +1,18 @@ > +/* > + * test for timerfd functions used by perf-kvm-stat-live > + */ > +#include <sys/timerfd.h> > + > +int main(void) > +{ > + struct itimerspec new_value; > + > + int fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK); > + if (fd < 0) > + return 1; > + > + if (timerfd_settime(fd, 0, &new_value, NULL) != 0) > + return 1; > + > + return 0; > +} > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [tip:perf/core] perf kvm: Disable live command if timerfd is not supported 2013-10-29 16:43 ` [PATCH 2/2] perf kvm: Disable live command if timerfd is not supported David Ahern 2013-10-29 17:29 ` Jiri Olsa 2013-11-05 5:00 ` David Ahern @ 2013-11-06 5:43 ` tip-bot for David Ahern 2 siblings, 0 replies; 9+ messages in thread From: tip-bot for David Ahern @ 2013-11-06 5:43 UTC (permalink / raw) To: linux-tip-commits Cc: acme, linux-kernel, hpa, mingo, a.p.zijlstra, namhyung, jolsa, dsahern, tglx Commit-ID: 87419c9afff1431d4b62b388baf6bfa07e0b14ff Gitweb: http://git.kernel.org/tip/87419c9afff1431d4b62b388baf6bfa07e0b14ff Author: David Ahern <dsahern@gmail.com> AuthorDate: Tue, 29 Oct 2013 10:43:16 -0600 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Tue, 5 Nov 2013 10:03:22 -0300 perf kvm: Disable live command if timerfd is not supported If the OS does not have timerfd support (e.g., older OS'es like RHEL5) disable perf kvm stat live. Signed-off-by: David Ahern <dsahern@gmail.com> Reviewed-by: Jiri Olsa <jolsa@redhat.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1383064996-20933-2-git-send-email-dsahern@gmail.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/builtin-kvm.c | 12 ++++++++++++ tools/perf/config/Makefile | 7 +++++++ tools/perf/config/feature-checks/Makefile | 6 +++++- tools/perf/config/feature-checks/test-all.c | 5 +++++ tools/perf/config/feature-checks/test-timerfd.c | 18 ++++++++++++++++++ 5 files changed, 47 insertions(+), 1 deletion(-) diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c index cb05f39..cd9f920 100644 --- a/tools/perf/builtin-kvm.c +++ b/tools/perf/builtin-kvm.c @@ -20,7 +20,9 @@ #include "util/data.h" #include <sys/prctl.h> +#ifdef HAVE_TIMERFD_SUPPORT #include <sys/timerfd.h> +#endif #include <termios.h> #include <semaphore.h> @@ -337,6 +339,7 @@ static void init_kvm_event_record(struct perf_kvm_stat *kvm) INIT_LIST_HEAD(&kvm->kvm_events_cache[i]); } +#ifdef HAVE_TIMERFD_SUPPORT static void clear_events_cache_stats(struct list_head *kvm_events_cache) { struct list_head *head; @@ -358,6 +361,7 @@ static void clear_events_cache_stats(struct list_head *kvm_events_cache) } } } +#endif static int kvm_events_hash_fn(u64 key) { @@ -783,6 +787,7 @@ static void print_result(struct perf_kvm_stat *kvm) pr_info("\nLost events: %" PRIu64 "\n\n", kvm->lost_events); } +#ifdef HAVE_TIMERFD_SUPPORT static int process_lost_event(struct perf_tool *tool, union perf_event *event __maybe_unused, struct perf_sample *sample __maybe_unused, @@ -793,6 +798,7 @@ static int process_lost_event(struct perf_tool *tool, kvm->lost_events++; return 0; } +#endif static bool skip_sample(struct perf_kvm_stat *kvm, struct perf_sample *sample) @@ -872,6 +878,7 @@ static bool verify_vcpu(int vcpu) return true; } +#ifdef HAVE_TIMERFD_SUPPORT /* keeping the max events to a modest level to keep * the processing of samples per mmap smooth. */ @@ -1213,6 +1220,7 @@ static int kvm_live_open_events(struct perf_kvm_stat *kvm) out: return rc; } +#endif static int read_events(struct perf_kvm_stat *kvm) { @@ -1379,6 +1387,7 @@ kvm_events_report(struct perf_kvm_stat *kvm, int argc, const char **argv) return kvm_events_report_vcpu(kvm); } +#ifdef HAVE_TIMERFD_SUPPORT static struct perf_evlist *kvm_live_event_list(void) { struct perf_evlist *evlist; @@ -1566,6 +1575,7 @@ out: return err; } +#endif static void print_kvm_stat_usage(void) { @@ -1604,8 +1614,10 @@ static int kvm_cmd_stat(const char *file_name, int argc, const char **argv) if (!strncmp(argv[1], "rep", 3)) return kvm_events_report(&kvm, argc - 1 , argv + 1); +#ifdef HAVE_TIMERFD_SUPPORT if (!strncmp(argv[1], "live", 4)) return kvm_events_live(&kvm, argc - 1 , argv + 1); +#endif perf_stat: return cmd_stat(argc, argv, NULL); diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile index ffb5f55..be8bb9a 100644 --- a/tools/perf/config/Makefile +++ b/tools/perf/config/Makefile @@ -397,6 +397,13 @@ else endif endif +$(call feature_check,timerfd) +ifeq ($(feature-timerfd), 1) + CFLAGS += -DHAVE_TIMERFD_SUPPORT +else + msg := $(warning No timerfd support. Disables 'perf kvm stat live'); +endif + disable-python = $(eval $(disable-python_code)) define disable-python_code CFLAGS += -DNO_LIBPYTHON diff --git a/tools/perf/config/feature-checks/Makefile b/tools/perf/config/feature-checks/Makefile index d37d58d..c803f17 100644 --- a/tools/perf/config/feature-checks/Makefile +++ b/tools/perf/config/feature-checks/Makefile @@ -25,7 +25,8 @@ FILES= \ test-libunwind \ test-on-exit \ test-stackprotector-all \ - test-stackprotector + test-stackprotector \ + test-timerfd CC := $(CC) -MD @@ -136,6 +137,9 @@ test-on-exit: test-backtrace: $(BUILD) +test-timerfd: + $(BUILD) + -include *.d ############################### diff --git a/tools/perf/config/feature-checks/test-all.c b/tools/perf/config/feature-checks/test-all.c index 50d4318..59e7a70 100644 --- a/tools/perf/config/feature-checks/test-all.c +++ b/tools/perf/config/feature-checks/test-all.c @@ -81,6 +81,10 @@ # include "test-libnuma.c" #undef main +#define main main_test_timerfd +# include "test-timerfd.c" +#undef main + int main(int argc, char *argv[]) { main_test_libpython(); @@ -101,6 +105,7 @@ int main(int argc, char *argv[]) main_test_on_exit(); main_test_backtrace(); main_test_libnuma(); + main_test_timerfd(); return 0; } diff --git a/tools/perf/config/feature-checks/test-timerfd.c b/tools/perf/config/feature-checks/test-timerfd.c new file mode 100644 index 0000000..8c5c083 --- /dev/null +++ b/tools/perf/config/feature-checks/test-timerfd.c @@ -0,0 +1,18 @@ +/* + * test for timerfd functions used by perf-kvm-stat-live + */ +#include <sys/timerfd.h> + +int main(void) +{ + struct itimerspec new_value; + + int fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK); + if (fd < 0) + return 1; + + if (timerfd_settime(fd, 0, &new_value, NULL) != 0) + return 1; + + return 0; +} ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] tools/perf/build: Fix detection of non-core features 2013-10-29 16:43 [PATCH 1/2] tools/perf/build: Fix detection of non-core features David Ahern 2013-10-29 16:43 ` [PATCH 2/2] perf kvm: Disable live command if timerfd is not supported David Ahern @ 2013-10-29 17:29 ` Jiri Olsa 2013-10-31 8:50 ` Ingo Molnar 2013-11-05 4:59 ` David Ahern 2013-11-06 5:43 ` [tip:perf/core] " tip-bot for David Ahern 3 siblings, 1 reply; 9+ messages in thread From: Jiri Olsa @ 2013-10-29 17:29 UTC (permalink / raw) To: David Ahern; +Cc: acme, linux-kernel, Ingo Molnar, Peter Zijlstra, Namhyung Kim On Tue, Oct 29, 2013 at 10:43:15AM -0600, David Ahern wrote: > feature_check needs to be invoked through call, and LDFLAGS may not be set > so quotes are needed. and the problem is also when there's more than one option in LDFLAGS > > Thanks to Jiri for spotting the quotes around LDFLAGS; that one was driving > me nuts with the upcoming timerfd feature detection. > > Signed-off-by: David Ahern <dsahern@gmail.com> > Cc: Ingo Molnar <mingo@kernel.org> > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Jiri Olsa <jolsa@redhat.com> Reviewed-and-tested-by: Jiri Olsa <jolsa@redhat.com> jirka ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] tools/perf/build: Fix detection of non-core features 2013-10-29 17:29 ` [PATCH 1/2] tools/perf/build: Fix detection of non-core features Jiri Olsa @ 2013-10-31 8:50 ` Ingo Molnar 0 siblings, 0 replies; 9+ messages in thread From: Ingo Molnar @ 2013-10-31 8:50 UTC (permalink / raw) To: Jiri Olsa; +Cc: David Ahern, acme, linux-kernel, Peter Zijlstra, Namhyung Kim * Jiri Olsa <jolsa@redhat.com> wrote: > On Tue, Oct 29, 2013 at 10:43:15AM -0600, David Ahern wrote: > > feature_check needs to be invoked through call, and LDFLAGS may not be set > > so quotes are needed. > > and the problem is also when there's more than one option in LDFLAGS yeah. > > Thanks to Jiri for spotting the quotes around LDFLAGS; that one was driving > > me nuts with the upcoming timerfd feature detection. > > > > Signed-off-by: David Ahern <dsahern@gmail.com> > > Cc: Ingo Molnar <mingo@kernel.org> > > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > > Cc: Namhyung Kim <namhyung@kernel.org> > > Cc: Jiri Olsa <jolsa@redhat.com> > > Reviewed-and-tested-by: Jiri Olsa <jolsa@redhat.com> Acked-by: Ingo Molnar <mingo@kernel.org> Thanks, Ingo ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] tools/perf/build: Fix detection of non-core features 2013-10-29 16:43 [PATCH 1/2] tools/perf/build: Fix detection of non-core features David Ahern 2013-10-29 16:43 ` [PATCH 2/2] perf kvm: Disable live command if timerfd is not supported David Ahern 2013-10-29 17:29 ` [PATCH 1/2] tools/perf/build: Fix detection of non-core features Jiri Olsa @ 2013-11-05 4:59 ` David Ahern 2013-11-06 5:43 ` [tip:perf/core] " tip-bot for David Ahern 3 siblings, 0 replies; 9+ messages in thread From: David Ahern @ 2013-11-05 4:59 UTC (permalink / raw) To: acme, linux-kernel Cc: David Ahern, Ingo Molnar, Peter Zijlstra, Namhyung Kim, Jiri Olsa ping. did not see this one in your last push to Ingo. On 10/29/13, 10:43 AM, David Ahern wrote: > feature_check needs to be invoked through call, and LDFLAGS may not be set > so quotes are needed. > > Thanks to Jiri for spotting the quotes around LDFLAGS; that one was driving > me nuts with the upcoming timerfd feature detection. > > Signed-off-by: David Ahern <dsahern@gmail.com> > Cc: Ingo Molnar <mingo@kernel.org> > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Jiri Olsa <jolsa@redhat.com> > --- > tools/perf/config/Makefile | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile > index 543aa953bab1..c82772207e6e 100644 > --- a/tools/perf/config/Makefile > +++ b/tools/perf/config/Makefile > @@ -96,7 +96,7 @@ endif > > feature_check = $(eval $(feature_check_code)) > define feature_check_code > - feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) LDFLAGS=$(LDFLAGS) -C config/feature-checks test-$1 >/dev/null 2>/dev/null && echo 1 || echo 0) > + feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) LDFLAGS="$(LDFLAGS)" -C config/feature-checks test-$1 >/dev/null 2>/dev/null && echo 1 || echo 0) > endef > > feature_set = $(eval $(feature_set_code)) > @@ -233,7 +233,7 @@ CFLAGS += -I$(LIB_INCLUDE) > CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE > > ifndef NO_BIONIC > - $(feature_check,bionic) > + $(call feature_check,bionic) > ifeq ($(feature-bionic), 1) > BIONIC := 1 > EXTLIBS := $(filter-out -lrt,$(EXTLIBS)) > @@ -470,15 +470,15 @@ else > CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT > else > ifneq ($(feature-libbfd), 1) > - $(feature_check,liberty) > + $(call feature_check,liberty) > ifeq ($(feature-liberty), 1) > EXTLIBS += -lbfd -liberty > else > - $(feature_check,liberty-z) > + $(call feature_check,liberty-z) > ifeq ($(feature-liberty-z), 1) > EXTLIBS += -lbfd -liberty -lz > else > - $(feature_check,cplus-demangle) > + $(call feature_check,cplus-demangle) > ifeq ($(feature-cplus-demangle), 1) > EXTLIBS += -liberty > CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [tip:perf/core] tools/perf/build: Fix detection of non-core features 2013-10-29 16:43 [PATCH 1/2] tools/perf/build: Fix detection of non-core features David Ahern ` (2 preceding siblings ...) 2013-11-05 4:59 ` David Ahern @ 2013-11-06 5:43 ` tip-bot for David Ahern 3 siblings, 0 replies; 9+ messages in thread From: tip-bot for David Ahern @ 2013-11-06 5:43 UTC (permalink / raw) To: linux-tip-commits Cc: acme, linux-kernel, hpa, mingo, a.p.zijlstra, namhyung, jolsa, dsahern, tglx Commit-ID: 5febff0066b8111785d58903b54d414e9ec6a3d0 Gitweb: http://git.kernel.org/tip/5febff0066b8111785d58903b54d414e9ec6a3d0 Author: David Ahern <dsahern@gmail.com> AuthorDate: Tue, 29 Oct 2013 10:43:15 -0600 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Tue, 5 Nov 2013 10:08:03 -0300 tools/perf/build: Fix detection of non-core features feature_check needs to be invoked through call, and LDFLAGS may not be set so quotes are needed. Thanks to Jiri for spotting the quotes around LDFLAGS; that one was driving me nuts with the upcoming timerfd feature detection. Signed-off-by: David Ahern <dsahern@gmail.com> Reviewed-by: Jiri Olsa <jolsa@redhat.com> Tested-by: Jiri Olsa <jolsa@redhat.com> Acked-by: Ingo Molnar <mingo@kernel.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1383064996-20933-1-git-send-email-dsahern@gmail.com [ Fixed conflict with 8a0c4c2843d3 ("perf tools: Fix libunwind build and feature detection for 32-bit build") ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/config/Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile index be8bb9a..58b2d37 100644 --- a/tools/perf/config/Makefile +++ b/tools/perf/config/Makefile @@ -98,7 +98,7 @@ endif feature_check = $(eval $(feature_check_code)) define feature_check_code - feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS)" LDFLAGS=$(LDFLAGS) LIBUNWIND_LIBS="$(LIBUNWIND_LIBS)" -C config/feature-checks test-$1 >/dev/null 2>/dev/null && echo 1 || echo 0) + feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS)" LDFLAGS="$(LDFLAGS)" LIBUNWIND_LIBS="$(LIBUNWIND_LIBS)" -C config/feature-checks test-$1 >/dev/null 2>/dev/null && echo 1 || echo 0) endef feature_set = $(eval $(feature_set_code)) @@ -235,7 +235,7 @@ CFLAGS += -I$(LIB_INCLUDE) CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE ifndef NO_BIONIC - $(feature_check,bionic) + $(call feature_check,bionic) ifeq ($(feature-bionic), 1) BIONIC := 1 EXTLIBS := $(filter-out -lrt,$(EXTLIBS)) @@ -479,15 +479,15 @@ else CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT else ifneq ($(feature-libbfd), 1) - $(feature_check,liberty) + $(call feature_check,liberty) ifeq ($(feature-liberty), 1) EXTLIBS += -lbfd -liberty else - $(feature_check,liberty-z) + $(call feature_check,liberty-z) ifeq ($(feature-liberty-z), 1) EXTLIBS += -lbfd -liberty -lz else - $(feature_check,cplus-demangle) + $(call feature_check,cplus-demangle) ifeq ($(feature-cplus-demangle), 1) EXTLIBS += -liberty CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT ^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2013-11-06 5:43 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-10-29 16:43 [PATCH 1/2] tools/perf/build: Fix detection of non-core features David Ahern 2013-10-29 16:43 ` [PATCH 2/2] perf kvm: Disable live command if timerfd is not supported David Ahern 2013-10-29 17:29 ` Jiri Olsa 2013-11-05 5:00 ` David Ahern 2013-11-06 5:43 ` [tip:perf/core] " tip-bot for David Ahern 2013-10-29 17:29 ` [PATCH 1/2] tools/perf/build: Fix detection of non-core features Jiri Olsa 2013-10-31 8:50 ` Ingo Molnar 2013-11-05 4:59 ` David Ahern 2013-11-06 5:43 ` [tip:perf/core] " tip-bot for David Ahern
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox