summaryrefslogtreecommitdiffstats
path: root/kernel/tools/testing/selftests/x86/Makefile
blob: 9b0d8baf2934ed30acb88df525275aa2da64f275 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
all:

include ../lib.mk

.PHONY: all all_32 all_64 warn_32bit_failure clean

TARGETS_C_BOTHBITS := sigreturn single_step_syscall
TARGETS_C_32BIT_ONLY := entry_from_vm86

TARGETS_C_32BIT_ALL := $(TARGETS_C_BOTHBITS) $(TARGETS_C_32BIT_ONLY)
BINARIES_32 := $(TARGETS_C_32BIT_ALL:%=%_32)
BINARIES_64 := $(TARGETS_C_BOTHBITS:%=%_64)

CFLAGS := -O2 -g -std=gnu99 -pthread -Wall

UNAME_M := $(shell uname -m)
CAN_BUILD_I386 := $(shell ./check_cc.sh $(CC) trivial_32bit_program.c -m32)
CAN_BUILD_X86_64 := $(shell ./check_cc.sh $(CC) trivial_64bit_program.c)

ifeq ($(CAN_BUILD_I386),1)
all: all_32
TEST_PROGS += $(BINARIES_32)
endif

ifeq ($(CAN_BUILD_X86_64),1)
all: all_64
TEST_PROGS += $(BINARIES_64)
endif

all_32: $(BINARIES_32)

all_64: $(BINARIES_64)

clean:
	$(RM) $(BINARIES_32) $(BINARIES_64)

$(TARGETS_C_32BIT_ALL:%=%_32): %_32: %.c
	$(CC) -m32 -o $@ $(CFLAGS) $(EXTRA_CFLAGS) $^ -lrt -ldl

$(TARGETS_C_BOTHBITS:%=%_64): %_64: %.c
	$(CC) -m64 -o $@ $(CFLAGS) $(EXTRA_CFLAGS) $^ -lrt -ldl

# x86_64 users should be encouraged to install 32-bit libraries
ifeq ($(CAN_BUILD_I386)$(CAN_BUILD_X86_64),01)
all: warn_32bit_failure

warn_32bit_failure:
	@echo "Warning: you seem to have a broken 32-bit build" 2>&1; 	\
	echo "environment.  This will reduce test coverage of 64-bit" 2>&1; \
	echo "kernels.  If you are using a Debian-like distribution," 2>&1; \
	echo "try:"; 2>&1; \
	echo "";							\
	echo "  apt-get install gcc-multilib libc6-i386 libc6-dev-i386"; \
	echo "";							\
	echo "If you are using a Fedora-like distribution, try:";	\
	echo "";							\
	echo "  yum install glibc-devel.*i686";				\
	exit 0;
endif
#39;ovsdb-server': 'ovsdb/ovsdb-server', 'ovsdb-tool': 'ovsdb/ovsdb-tool', 'ovsschema': 'vswitchd/vswitch.ovsschema', 'ovs-vsctl': 'utilities/ovs-vsctl', 'ovs-ofctl': 'utilities/ovs-ofctl', 'ovs-dpctl': 'utilities/ovs-dpctl', 'ovs-appctl': 'utilities/ovs-appctl', }, 'bin': { 'ovs-vswitchd': 'ovs-vswitchd', 'ovsdb-server': 'ovsdb-server', 'ovsdb-tool': 'ovsdb-tool', 'ovsschema': '/usr/share/openvswitch/vswitch.ovsschema', 'ovs-vsctl': 'ovs-vsctl', 'ovs-ofctl': 'ovs-ofctl', 'ovs-dpctl': 'ovs-dpctl', 'ovs-appctl': 'ovs-appctl', } }, 'ovs_var_tmp': '/usr/local/var/run/openvswitch/', 'ovs_etc_tmp': '/usr/local/etc/openvswitch/', } # default OvsVanilla configuration is similar to OvsDpdkVhost except 'path' and 'modules' PATHS['vswitch'].update({'OvsVanilla' : copy.deepcopy(PATHS['vswitch']['OvsDpdkVhost'])}) PATHS['vswitch']['OvsVanilla']['src']['path'] = os.path.join(ROOT_DIR, 'src_vanilla/ovs/ovs/') PATHS['vswitch']['OvsVanilla']['src']['modules'] = ['datapath/linux/openvswitch.ko'] PATHS['vswitch']['OvsVanilla']['bin']['modules'] = ['openvswitch'] # ############################ # vswitch configuration # ############################ # These are DPDK EAL parameters and they may need to be changed depending on # hardware configuration, like cpu numbering and NUMA. # # parameters used for legacy DPDK configuration through '--dpdk' option of ovs-vswitchd # e.g. ovs-vswitchd --dpdk --socket-mem 1024,0 VSWITCHD_DPDK_ARGS = ['-c', '0x4', '-n', '4', '--socket-mem 1024,0'] # options used for new type of OVS configuration via calls to ovs-vsctl # e.g. ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem="1024,0" VSWITCHD_DPDK_CONFIG = { 'dpdk-init' : 'true', 'dpdk-lcore-mask' : '0x4', 'dpdk-socket-mem' : '1024,0', } # Note: VSPERF will automatically detect, which type of DPDK configuration should # be used. # To enable multi queue with dpdk modify the below param to the number of # queues for dpdk. 0 = disabled VSWITCH_DPDK_MULTI_QUEUES = 0 # Use old style OVS DPDK Multi-queue startup. If testing versions of OVS 2.5.0 # or before, enable this setting to allow DPDK Multi-queue to enable correctly. OVS_OLD_STYLE_MQ = False # parameters passed to ovs-vswitchd in case that OvsVanilla is selected VSWITCHD_VANILLA_ARGS = [] # Bridge name to be used by VSWTICH VSWITCH_BRIDGE_NAME = 'br0' # directory where hugepages will be mounted on system init HUGEPAGE_DIR = '/dev/hugepages' # If no hugepages are available, try to allocate HUGEPAGE_RAM_ALLOCATION. # Default is 10 GB. # 10 GB (10485760 kB) or more is recommended for PVP & PVVP testing scenarios. HUGEPAGE_RAM_ALLOCATION = 10485760 # Sets OVS PMDs core mask to 30 for affinitization to 5th and 6th CPU core. # Note that the '0x' notation should not be used. VSWITCH_PMD_CPU_MASK = '30' VSWITCH_AFFINITIZATION_ON = 1 VSWITCH_FLOW_TIMEOUT = '30000' # log file for ovs-vswitchd LOG_FILE_VSWITCHD = 'vswitchd.log' # log file for ovs-dpdk LOG_FILE_OVS = 'ovs.log' # default vswitch implementation VSWITCH = "OvsDpdkVhost"