| #! /bin/bash | |
| # SPDX-License-Identifier: GPL-2.0 | |
| set -e | |
| set -u | |
| set -x | |
| unset KBUILD_OUTPUT | |
| CONF_FILE="" | |
| FLAGS=() | |
| GENERATE_GCOV_REPORT=0 | |
| ENABLE_RDMA=0 | |
| while getopts "gc:r" opt; do | |
| case ${opt} in | |
| g) | |
| GENERATE_GCOV_REPORT=1 | |
| ;; | |
| c) | |
| CONF_FILE=$OPTARG | |
| ;; | |
| r) | |
| ENABLE_RDMA=1 | |
| ;; | |
| :) | |
| echo "USAGE: config.sh [-g] [-c config] [-r]" | |
| exit 1 | |
| ;; | |
| ?) | |
| echo "Invalid option: -${OPTARG}." | |
| exit 1 | |
| ;; | |
| esac | |
| done | |
| if [[ "$CONF_FILE" != "" ]]; then | |
| FLAGS=(--file "$CONF_FILE") | |
| fi | |
| # enable RDS | |
| scripts/config "${FLAGS[@]}" --enable CONFIG_RDS | |
| scripts/config "${FLAGS[@]}" --enable CONFIG_RDS_TCP | |
| if [ "$GENERATE_GCOV_REPORT" -eq 1 ]; then | |
| # instrument RDS and only RDS | |
| scripts/config "${FLAGS[@]}" --enable CONFIG_GCOV_KERNEL | |
| scripts/config "${FLAGS[@]}" --disable GCOV_PROFILE_ALL | |
| scripts/config "${FLAGS[@]}" --enable GCOV_PROFILE_RDS | |
| else | |
| scripts/config "${FLAGS[@]}" --disable CONFIG_GCOV_KERNEL | |
| scripts/config "${FLAGS[@]}" --disable GCOV_PROFILE_ALL | |
| scripts/config "${FLAGS[@]}" --disable GCOV_PROFILE_RDS | |
| fi | |
| # need network namespaces to run tests with veth network interfaces | |
| scripts/config "${FLAGS[@]}" --enable CONFIG_NET_NS | |
| scripts/config "${FLAGS[@]}" --enable CONFIG_VETH | |
| # simulate packet loss | |
| scripts/config "${FLAGS[@]}" --enable CONFIG_NET_SCH_NETEM | |
| if [ "$ENABLE_RDMA" -eq 1 ]; then | |
| # enable RDS over InfiniBand / RDMA (rds_rdma test) | |
| scripts/config "${FLAGS[@]}" --enable CONFIG_INFINIBAND | |
| scripts/config "${FLAGS[@]}" --enable CONFIG_INFINIBAND_ADDR_TRANS | |
| scripts/config "${FLAGS[@]}" --enable CONFIG_RDMA_RXE | |
| scripts/config "${FLAGS[@]}" --enable CONFIG_RDS_RDMA | |
| fi |