Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 79d824e3 authored by Peter Hurley's avatar Peter Hurley Committed by Arnaldo Carvalho de Melo
Browse files

perf tools: Make numa benchmark optional



Commit "perf: Add 'perf bench numa mem'..." added a NUMA performance
benchmark to perf. Make this optional and test for required
dependencies.

Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
Acked-by: default avatarIngo Molnar <mingo@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1359337882-21821-1-git-send-email-peter@hurleysoftware.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 1c13f3c9
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -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
+4 −0
Original line number Diff line number Diff line
@@ -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 },
+11 −0
Original line number Diff line number Diff line
@@ -225,3 +225,14 @@ int main(void)
	return on_exit(NULL, NULL);
}
endef

define SOURCE_LIBNUMA
#include <numa.h>
#include <numaif.h>

int main(void)
{
	numa_available();
	return 0;
}
endef
 No newline at end of file