Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.17.
  1#!/bin/bash
  2# SPDX-License-Identifier: GPL-2.0
  3#
  4# Copyright (C) 2018 Uladzislau Rezki (Sony) <urezki@gmail.com>
  5#
  6# This is a test script for the kernel test driver to analyse vmalloc
  7# allocator. Therefore it is just a kernel module loader. You can specify
  8# and pass different parameters in order to:
  9#     a) analyse performance of vmalloc allocations;
 10#     b) stressing and stability check of vmalloc subsystem.
 11
 12TEST_NAME="test_hmm"
 13DRIVER="test_hmm"
 14
 15# 1 if fails
 16exitcode=1
 17
 18# Kselftest framework requirement - SKIP code is 4.
 19ksft_skip=4
 20
 21check_test_requirements()
 22{
 23	uid=$(id -u)
 24	if [ $uid -ne 0 ]; then
 25		echo "$0: Must be run as root"
 26		exit $ksft_skip
 27	fi
 28
 29	if ! which modprobe > /dev/null 2>&1; then
 30		echo "$0: You need modprobe installed"
 31		exit $ksft_skip
 32	fi
 33
 34	if ! modinfo $DRIVER > /dev/null 2>&1; then
 35		echo "$0: You must have the following enabled in your kernel:"
 36		echo "CONFIG_TEST_HMM=m"
 37		exit $ksft_skip
 38	fi
 39}
 40
 41load_driver()
 42{
 43	if [ $# -eq 0 ]; then
 44		modprobe $DRIVER > /dev/null 2>&1
 45	else
 46		if [ $# -eq 2 ]; then
 47			modprobe $DRIVER spm_addr_dev0=$1 spm_addr_dev1=$2
 48				> /dev/null 2>&1
 49		else
 50			echo "Missing module parameters. Make sure pass"\
 51			"spm_addr_dev0 and spm_addr_dev1"
 52			usage
 53		fi
 54	fi
 55}
 56
 57unload_driver()
 58{
 59	modprobe -r $DRIVER > /dev/null 2>&1
 60}
 61
 62run_smoke()
 63{
 64	echo "Running smoke test. Note, this test provides basic coverage."
 65
 66	load_driver $1 $2
 67	$(dirname "${BASH_SOURCE[0]}")/hmm-tests
 68	unload_driver
 69}
 70
 71usage()
 72{
 73	echo -n "Usage: $0"
 74	echo
 75	echo "Example usage:"
 76	echo
 77	echo "# Shows help message"
 78	echo "./${TEST_NAME}.sh"
 79	echo
 80	echo "# Smoke testing"
 81	echo "./${TEST_NAME}.sh smoke"
 82	echo
 83	echo "# Smoke testing with SPM enabled"
 84	echo "./${TEST_NAME}.sh smoke <spm_addr_dev0> <spm_addr_dev1>"
 85	echo
 86	exit 0
 87}
 88
 89function run_test()
 90{
 91	if [ $# -eq 0 ]; then
 92		usage
 93	else
 94		if [ "$1" = "smoke" ]; then
 95			run_smoke $2 $3
 96		else
 97			usage
 98		fi
 99	fi
100}
101
102check_test_requirements
103run_test $@
104
105exit 0