From 8452e3067c4081b3a6ee2b79e6384d7e17acca7c Mon Sep 17 00:00:00 2001 From: Peter Hurley Date: Sun, 27 Jan 2013 20:51:22 -0500 Subject: [PATCH] --- yaml --- r: 349999 b: refs/heads/master c: 79d824e31692d165f6c7d92bf4d1af0b9d969d76 h: refs/heads/master i: 349997: 5dc923ce9bbfb0dfd5653f54dddad8b2c6086e5c 349995: 32bb8abccb7d5e81fcf7a5300f0e8ca251c2268b 349991: 687b85c600e0297e99a5129414c5b9a53ef7a2b2 349983: d027d1e5d54078fe46ab7d244f127860b7780f8d v: v3 --- [refs] | 2 +- trunk/tools/perf/Makefile | 16 ++++++++++++++-- trunk/tools/perf/builtin-bench.c | 4 ++++ trunk/tools/perf/config/feature-tests.mak | 11 +++++++++++ 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index e4ed4b37d8f6..a3777a0d3c33 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1c13f3c9042f9d222959af7c9da6db93ea9f7e4c +refs/heads/master: 79d824e31692d165f6c7d92bf4d1af0b9d969d76 diff --git a/trunk/tools/perf/Makefile b/trunk/tools/perf/Makefile index b62dbc0d974a..4b1044cbd84c 100644 --- a/trunk/tools/perf/Makefile +++ b/trunk/tools/perf/Makefile @@ -47,6 +47,8 @@ include config/utilities.mak # backtrace post unwind. # # Define NO_BACKTRACE if you do not want stack backtrace debug feature +# +# Define NO_LIBNUMA if you do not want numa perf benchmark $(OUTPUT)PERF-VERSION-FILE: .FORCE-PERF-VERSION-FILE @$(SHELL_PATH) util/PERF-VERSION-GEN $(OUTPUT) @@ -103,7 +105,7 @@ ifdef PARSER_DEBUG endif CFLAGS = -fno-omit-frame-pointer -ggdb3 -funwind-tables -Wall -Wextra -std=gnu99 $(CFLAGS_WERROR) $(CFLAGS_OPTIMIZE) $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) $(PARSER_DEBUG_CFLAGS) -EXTLIBS = -lpthread -lrt -lelf -lm -lnuma +EXTLIBS = -lpthread -lrt -lelf -lm ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE ALL_LDFLAGS = $(LDFLAGS) STRIP ?= strip @@ -492,7 +494,6 @@ LIB_OBJS += $(OUTPUT)tests/python-use.o BUILTIN_OBJS += $(OUTPUT)builtin-annotate.o BUILTIN_OBJS += $(OUTPUT)builtin-bench.o # Benchmark modules -BUILTIN_OBJS += $(OUTPUT)bench/numa.o BUILTIN_OBJS += $(OUTPUT)bench/sched-messaging.o BUILTIN_OBJS += $(OUTPUT)bench/sched-pipe.o ifeq ($(RAW_ARCH),x86_64) @@ -839,6 +840,17 @@ ifndef NO_BACKTRACE endif endif +ifndef NO_LIBNUMA + FLAGS_LIBNUMA = $(ALL_CFLAGS) $(ALL_LDFLAGS) -lnuma + ifneq ($(call try-cc,$(SOURCE_LIBNUMA),$(FLAGS_LIBNUMA),libnuma),y) + msg := $(warning No numa.h found, disables 'perf bench numa mem' benchmark, please install numa-libs-devel or libnuma-dev); + else + BASIC_CFLAGS += -DLIBNUMA_SUPPORT + BUILTIN_OBJS += $(OUTPUT)bench/numa.o + EXTLIBS += -lnuma + endif +endif + ifdef ASCIIDOC8 export ASCIIDOC8 endif diff --git a/trunk/tools/perf/builtin-bench.c b/trunk/tools/perf/builtin-bench.c index e5d514bf5365..77298bf892b8 100644 --- a/trunk/tools/perf/builtin-bench.c +++ b/trunk/tools/perf/builtin-bench.c @@ -35,6 +35,7 @@ struct bench_suite { /* sentinel: easy for help */ #define suite_all { "all", "Test all benchmark suites", NULL } +#ifdef LIBNUMA_SUPPORT static struct bench_suite numa_suites[] = { { "mem", "Benchmark for NUMA workloads", @@ -44,6 +45,7 @@ static struct bench_suite numa_suites[] = { NULL, NULL } }; +#endif static struct bench_suite sched_suites[] = { { "messaging", @@ -78,9 +80,11 @@ struct bench_subsys { }; static struct bench_subsys subsystems[] = { +#ifdef LIBNUMA_SUPPORT { "numa", "NUMA scheduling and MM behavior", numa_suites }, +#endif { "sched", "scheduler and IPC mechanism", sched_suites }, diff --git a/trunk/tools/perf/config/feature-tests.mak b/trunk/tools/perf/config/feature-tests.mak index f5ac77485a4f..b4eabb44e381 100644 --- a/trunk/tools/perf/config/feature-tests.mak +++ b/trunk/tools/perf/config/feature-tests.mak @@ -225,3 +225,14 @@ int main(void) return on_exit(NULL, NULL); } endef + +define SOURCE_LIBNUMA +#include +#include + +int main(void) +{ + numa_available(); + return 0; +} +endef \ No newline at end of file