brintos

brintos / linux-shallow public Read only

0
0
Text · 1.7 KiB · 42a6628 Raw
78 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03#4# Basc test for cpuset v1 interfaces write/read5#6 7skip_test() {8	echo "$1"9	echo "Test SKIPPED"10	exit 4 # ksft_skip11}12 13write_test() {14	dir=$115	interface=$216	value=$317	original=$(cat $dir/$interface)18	echo "testing $interface $value"19	echo $value > $dir/$interface20	new=$(cat $dir/$interface)21	[[ $value -ne $(cat $dir/$interface) ]] && {22		echo "$interface write $value failed: new:$new"23		exit 124	}25}26 27[[ $(id -u) -eq 0 ]] || skip_test "Test must be run as root!"28 29# Find cpuset v1 mount point30CPUSET=$(mount -t cgroup | grep cpuset | head -1 | awk '{print $3}')31[[ -n "$CPUSET" ]] || skip_test "cpuset v1 mount point not found!"32 33#34# Create a test cpuset, read write test35#36TDIR=test$$37[[ -d $CPUSET/$TDIR ]] || mkdir $CPUSET/$TDIR38 39ITF_MATRIX=(40	#interface			value		expect 	root_only41	'cpuset.cpus			0-1		0-1	0'42	'cpuset.mem_exclusive		1		1	0'43	'cpuset.mem_exclusive		0		0	0'44	'cpuset.mem_hardwall		1		1	0'45	'cpuset.mem_hardwall		0		0	0'46	'cpuset.memory_migrate		1		1	0'47	'cpuset.memory_migrate		0		0	0'48	'cpuset.memory_spread_page	1		1	0'49	'cpuset.memory_spread_page	0		0	0'50	'cpuset.memory_spread_slab	1		1	0'51	'cpuset.memory_spread_slab	0		0	0'52	'cpuset.mems			0		0	0'53	'cpuset.sched_load_balance	1		1	0'54	'cpuset.sched_load_balance	0		0	0'55	'cpuset.sched_relax_domain_level	2	2	0'56	'cpuset.memory_pressure_enabled	1		1	1'57	'cpuset.memory_pressure_enabled	0		0	1'58)59 60run_test()61{62	cnt="${ITF_MATRIX[@]}"63	for i in "${ITF_MATRIX[@]}" ; do64		args=($i)65		root_only=${args[3]}66		[[ $root_only -eq 1 ]] && {67			write_test "$CPUSET" "${args[0]}" "${args[1]}" "${args[2]}"68			continue69		}70		write_test "$CPUSET/$TDIR" "${args[0]}" "${args[1]}" "${args[2]}"71	done72}73 74run_test75rmdir $CPUSET/$TDIR76echo "Test PASSED"77exit 078