summaryrefslogtreecommitdiff
path: root/automated/linux
diff options
context:
space:
mode:
authorJosep Puigdemont <josep.puigdemont@linaro.org>2017-03-20 13:34:46 +0100
committerMilosz Wasilewski <milosz.wasilewski@linaro.org>2017-04-19 09:06:38 +0000
commit3598bcc02d53eac8d645912a71cccb1da3af8ddb (patch)
tree784f0033d99b155c46aec7f66a543cc4bb4b45cc /automated/linux
parent6cdfbb5fcf3d939d11661bc5bf4aa3c496beb898 (diff)
nginx-server: add odp-dpdk-git tests
Change-Id: I8d262f9e9ba0d29b902c15f6dad3e75df3b0d75c Signed-off-by: Josep Puigdemont <josep.puigdemont@linaro.org>
Diffstat (limited to 'automated/linux')
-rw-r--r--automated/linux/nginx-server/nginx-odp-dpdk-git.yaml36
-rw-r--r--automated/linux/nginx-server/odp-dpdk-git.sh85
2 files changed, 121 insertions, 0 deletions
diff --git a/automated/linux/nginx-server/nginx-odp-dpdk-git.yaml b/automated/linux/nginx-server/nginx-odp-dpdk-git.yaml
new file mode 100644
index 0000000..acf3e37
--- /dev/null
+++ b/automated/linux/nginx-server/nginx-odp-dpdk-git.yaml
@@ -0,0 +1,36 @@
+# NOTE: when calling this test, kernel-headers must have been installed
+metadata:
+ name: httperf-nginx-ofp-odp-dpdk-git
+ format: Lava-Test-Shell Test Definition 1.0
+ description: Server running OFP+ODP+DPDK NGiNX from git
+ environment:
+ - lava-test-shell
+ maintainer:
+ - josep.puigdemont@linaro.org
+ os:
+ - debian
+ - ubuntu
+ devices:
+ - x86
+
+install:
+ deps:
+ - bash
+ - ethtool
+ - pciutils
+ - procps
+ - sysstat
+ - wget
+
+params:
+ MAX_CORES: 0
+ VLAND_NAME: vlan_one
+ BUILD_DIR: /build
+
+run:
+ steps:
+ - sysctl -w vm.nr_hugepages=1024
+ - modprobe uio
+ - export CONFIG_TYPE=odp-dpdk-git
+ - export MAX_CORES VLAND_NAME
+ - lava-test-case httperf-nginx-server --shell ./automated/linux/nginx-server/nginx-server.sh
diff --git a/automated/linux/nginx-server/odp-dpdk-git.sh b/automated/linux/nginx-server/odp-dpdk-git.sh
new file mode 100644
index 0000000..9838f74
--- /dev/null
+++ b/automated/linux/nginx-server/odp-dpdk-git.sh
@@ -0,0 +1,85 @@
+#!/bin/bash
+
+exit_error() {
+ echo "-- SERVER ERROR"
+ lava-test-case server_up --status fail
+}
+trap exit_error ERR
+
+do_configure_system() {
+ local cores=$1
+ local vland_iface=$2
+ local server_ip=$3
+ local driver=${DPDK_DRIVER:-igb_uio}
+ local pci_dev
+
+ pci_dev=$(basename "$(readlink -f "/sys/class/net/${vland_iface}/device")")
+
+ if ! which dpdk-devbind &>/dev/null; then
+ echo "ERROR: dpdk not installed"
+ exit 1
+ fi
+
+ modprobe uio
+ insmod "$RTE_SDK/$RTE_TARGET/lib/modules/$(uname -r)/extra/dpdk/${driver}.ko"
+
+ dpdk-devbind -u "$pci_dev"
+ dpdk-devbind -b "$driver" "$pci_dev"
+ dpdk-devbind -s
+
+ # when using write_config, we need to have /www mounted
+ configure_ramdisk
+
+ # shellcheck disable=SC2034
+ WRITE_CONFIG_CORE=""
+ WRITE_CONFIG_EVENTS="use select;"
+ WRITE_CONFIG_LISTEN="listen $server_ip:80 default_server so_keepalive=off;"
+ echo <<-EOF
+ WRITE_CONFIG_CORE=$WRITE_CONFIG_CORE
+ WRITE_CONFIG_EVENTS=$WRITE_CONFIG_EVENTS
+ WRITE_CONFIG_LISTEN=$WRITE_CONFIG_LISTEN
+ EOF
+}
+
+do_stop_nginx() {
+ if [ -f "${BASE_DIR}/install/run/nginx.pid" ]; then
+ stop_nginx.sh 1
+ fi
+}
+
+do_start_nginx() {
+ start_nginx.sh 1
+}
+
+do_write_nginx_config() {
+ local cores=$1
+
+ # when using write_config, we need to have /www mounted
+ write_config "$cores" "${BASE_DIR}/install/etc/nginx/nginx.conf"
+}
+
+do_pre_test_cb() {
+ rm -rf /dev/hugepages/*
+}
+
+do_post_test_cb() {
+ local cores=$1
+ local pid
+
+ echo "-- AFFINITY $cores"
+ for pid in $(pgrep nginx); do
+ taskset -p "$pid"
+ done
+}
+
+BASE_DIR=${BASE_DIR:-/build}
+
+if [ ! -f "${BASE_DIR}/environ" ]; then
+ echo "ERROR: ${BASE_DIR}/environ file not found!" >&2
+ exit 1
+fi
+
+# shellcheck disable=SC1090
+. "${BASE_DIR}/environ"
+
+echo "-- odp-dpdk-git NGiNX initialized" >&2