[LTP] [PATCH] add cpuplugd
Elif Aslan
elas@linux.vnet.ibm.com
Thu Feb 14 14:15:45 CET 2019
---
testcases/commands/cpuplugd/README.md | 39 +++
testcases/commands/cpuplugd/cmm.conf | 16 +
testcases/commands/cpuplugd/cpu.conf | 14 +
testcases/commands/cpuplugd/cpuplugd.conf | 21 ++
testcases/commands/cpuplugd/cpuplugd.sh | 311 ++++++++++++++++++
testcases/commands/cpuplugd/cpuplugd_1.sh | 197 +++++++++++
testcases/commands/cpuplugd/cpuplugdcmm.conf | 16 +
testcases/commands/cpuplugd/cpuplugdtemp.conf | 21 ++
8 files changed, 635 insertions(+)
create mode 100644 testcases/commands/cpuplugd/README.md
create mode 100644 testcases/commands/cpuplugd/cmm.conf
create mode 100644 testcases/commands/cpuplugd/cpu.conf
create mode 100644 testcases/commands/cpuplugd/cpuplugd.conf
create mode 100644 testcases/commands/cpuplugd/cpuplugd.sh
create mode 100644 testcases/commands/cpuplugd/cpuplugd_1.sh
create mode 100644 testcases/commands/cpuplugd/cpuplugdcmm.conf
create mode 100644 testcases/commands/cpuplugd/cpuplugdtemp.conf
diff --git a/testcases/commands/cpuplugd/README.md b/testcases/commands/cpuplugd/README.md
new file mode 100644
index 000000000..e72162dfd
--- /dev/null
+++ b/testcases/commands/cpuplugd/README.md
@@ -0,0 +1,39 @@
+# TOOL_s390_kernel_1
+
+cpuplugd: Daemon that manages CPU and memory resources based on a set of rules.
+Depending on the workload CPUs can be enabled or disabled.
+The amount of memory can be increased or decreased exploiting the Cooperative Memory Management (CMM1) feature.
+
+## Getting started
+
+The test case contains the following scripts:
+
+- **cmm.conf** _configuration file_
+- **cpu.conf** _configuration file_
+- **cpuplugd.conf** _configuration file_
+- **cpuplugd.sh** _verification of cpuplugd tool_
+- **cpuplugdcmm.conf** _configuration file_
+- **cpuplugdtemp.conf** _configuration file_
+- **mon_fsstatd.sh** _mon tool tests_
+
+## Prerequisites
+
+z/VM guest must be prepared to be populated with SLES guest OS, all scripts must be available on some local server via http to be fetched from zVM guest when ready.
+
+## Installation
+
+OpenQA deploys SLE onto a z/VM guest automatically.
+
+## Running the tests
+
+Transfer test case to the target system and run locally:
+`./cpuplugd.sh`
+`./mon_fsstatd.sh`
+
+## Versioning
+
+Tested already on SLES12.3.
+
+## License
+
+The files in this directory are licensed under the "FSF All Permissive License" except if indicated otherwise in the file.
diff --git a/testcases/commands/cpuplugd/cmm.conf b/testcases/commands/cpuplugd/cmm.conf
new file mode 100644
index 000000000..d94a0700d
--- /dev/null
+++ b/testcases/commands/cpuplugd/cmm.conf
@@ -0,0 +1,16 @@
+# Copyright (C) 2018 IBM Corp.
+#
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved. This file is offered as-is,
+# without any warranty.
+
+
+UPDATE="1"
+
+CMM_MIN="5000"
+CMM_INC="100"
+CMM_MAX="20000"
+
+MEMPLUG="swaprate < 200"
+MEMUNPLUG="swaprate > 5000"
diff --git a/testcases/commands/cpuplugd/cpu.conf b/testcases/commands/cpuplugd/cpu.conf
new file mode 100644
index 000000000..167ad6001
--- /dev/null
+++ b/testcases/commands/cpuplugd/cpu.conf
@@ -0,0 +1,14 @@
+# Copyright (C) 2018 IBM Corp.
+#
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved. This file is offered as-is,
+# without any warranty.
+
+
+CPU_MIN="1"
+CPU_MAX="3"
+UPDATE="1"
+
+HOTPLUG="(loadavg > onumcpus + 0.75) & (idle < 10.0)"
+HOTUNPLUG="(loadavg < onumcpus - 0.25) | (idle > 50)"
diff --git a/testcases/commands/cpuplugd/cpuplugd.conf b/testcases/commands/cpuplugd/cpuplugd.conf
new file mode 100644
index 000000000..dd3190b7d
--- /dev/null
+++ b/testcases/commands/cpuplugd/cpuplugd.conf
@@ -0,0 +1,21 @@
+# Copyright (C) 2018 IBM Corp.
+#
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved. This file is offered as-is,
+# without any warranty.
+
+
+CPU_MIN="1"
+CPU_MAX="3"
+UPDATE="1"
+
+HOTPLUG="(loadavg > onumcpus + 0.75) & (idle < 10.0)"
+HOTUNPLUG="(loadavg < onumcpus - 0.25) | (idle > 50)"
+
+CMM_MIN="0"
+CMM_INC="10"
+CMM_MAX="10"
+
+MEMPLUG="swaprate < 200"
+MEMUNPLUG="swaprate > 5000"
diff --git a/testcases/commands/cpuplugd/cpuplugd.sh b/testcases/commands/cpuplugd/cpuplugd.sh
new file mode 100644
index 000000000..2089431f2
--- /dev/null
+++ b/testcases/commands/cpuplugd/cpuplugd.sh
@@ -0,0 +1,311 @@
+# Copyright (C) 2018 IBM Corp.
+#
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved. This file is offered as-is,
+# without any warranty.
+
+
+#!/usr/bin/env bash
+###############################################################################
+# The following changes were made in order to fix the cpuplugd daemon status
+# verification and also to perform it before trying to stop the daemon:
+#
+# - serviceruns and assert_cpuplugd_not_running functions eliminated;
+# - stop_cpuplugd function rebuilt;
+# - assert_cpuplugd_running, assert_cpuplugd_not_running and serviceruns
+# functions merged into new rebuilt assert_cpuplugd_running function;
+# - changed all assert_cpuplugd_running function calls to use 2 arguments;
+# - inserted assert_cpuplugd_running function calls before trying to stop
+# cpuplugd daemon.
+#
+# Changes
+# -------
+# 07.03.2018 Corrections for SLES15 (no PID file when
+# running in interactive mode)
+#
+###############################################################################
+TST_CNT=11
+TST_TESTFUNC=cpuplugd_test
+. tst_test.sh
+
+number_of_cpus=$(lscpu | grep -wF "CPU(s):" | awk 'FNR == 1 {print $2}')
+(( SLEEP_X = number_of_cpus * 2 ))
+
+# inherit all variables to subprocesses
+set -a
+
+readonly CMM_MOD="$(grep "CONFIG_CMM=" /boot/config-$(uname -r) | cut -d= -f2 | tr '[:upper:]' '[:lower:]')"
+
+for f in lib/*.sh; do source $f; done
+source ./cpuplugd_1.sh || exit 1
+
+init_tests
+
+cpuplugd_run()
+{
+
+ $1
+ if [ $? -eq $2 ]; then
+ tst_res TPASS "'$1' returned '$2'. Test passed"
+ else
+ tst_res TFAIL "'$1' did not return '$2'. Test failed"
+ fi
+}
+
+cpuplugd_test1()
+{
+ echo "Cpuplugd version"
+ cpuplugd=$(cpuplugd -v | head -n 1 | cut -d":" -f2 | cut -d" " -f10)
+ cpuplugd_run "cpuplugd -v" 0
+ echo "Cpuplugd version $cpuplugd"
+}
+cpuplugd_test2()
+{
+ echo "Cpuplugd Help information checking"
+ echo "Checking for Help information with -h option"
+ cpuplugd_run "cpuplugd -h" 0
+ echo "Checking for Help information with --help option"
+ cpuplugd_run "cpuplugd --help" 0
+}
+#
+# Run several tests with incomplete/broken configuration.
+# Correct behavior for the daemon is not to start.
+#
+cpuplugd_test3()
+{
+ echo "Invalid options checking"
+ echo "Checking for Invalid option -H"
+ cpuplugd_run "cpuplugd -H" 1
+ echo "Checking for Invalid option -1234"
+ cpuplugd_run "cpuplugd -1234" 1
+}
+
+cpuplugd_test4()
+{
+ echo "Run daemon without UPDATE entry in config"
+ prepare_incomplete_cpu_test_config UPDATE
+ cpu_test_with_error_in_cpuplgdtest_conf 1 1
+}
+
+cpuplugd_test5()
+{
+ echo "Run Daemon without CPU_MIN entry"
+ prepare_incomplete_cpu_test_config CPU_MIN
+ if isVM; then
+ if [[ "${CMM_MOD}" = "m" || -z "${CMM_MOD}" ]]; then
+ cpu_test_with_error_in_cpuplgdtest_conf 1 1
+ elif [[ "${CMM_MOD}" = "y" ]]; then
+ cpu_test_with_error_in_cpuplgdtest_conf 0 1
+ fi
+ else
+ cpu_test_with_error_in_cpuplgdtest_conf 1 1
+ fi
+}
+
+cpuplugd_test6()
+{
+ echo "Run Daemon without CPU_MAX entry"
+ prepare_incomplete_cpu_test_config CPU_MAX
+ cpu_test_with_error_in_cpuplgdtest_conf 1 1
+}
+cpuplugd_test7()
+{
+ echo "Run Daemon without HOTPLUG entry"
+ prepare_incomplete_cpu_test_config HOTPLUG
+ if isVM; then
+ if [[ "${CMM_MOD}" = "m" || -z "${CMM_MOD}" ]]; then
+ cpu_test_with_error_in_cpuplgdtest_conf 1 1
+ elif [[ "${CMM_MOD}" = "y" ]]; then
+ cpu_test_with_error_in_cpuplgdtest_conf 0 1
+ fi
+ else
+ cpu_test_with_error_in_cpuplgdtest_conf 1 1
+ fi
+}
+cpuplugd_test8()
+{
+ echo "Run Daemon without HOTUNPLUG entry"
+ prepare_incomplete_cpu_test_config HOTUNPLUG
+ if isVM; then
+ if [[ "${CMM_MOD}" = "m" || -z "${CMM_MOD}" ]]; then
+ cpu_test_with_error_in_cpuplgdtest_conf 1 1
+ elif [[ "${CMM_MOD}" = "y" ]]; then
+ cpu_test_with_error_in_cpuplgdtest_conf 0 1
+ fi
+ else
+ cpu_test_with_error_in_cpuplgdtest_conf 1 1
+ fi
+}
+
+#
+# Good path test for CPU plugging
+#
+# Run daemon with only cpu configuration in configuration file
+# CPU Hotplug with 3 Active cpus and CPU_MIN=1 and CPU_MAX=3
+# Verify that number of CPUs is reduced after daemon is started
+# and restored after daemon is stopped.
+#
+
+cpuplugd_test9()
+{
+ echo "Run Daemon with only cpu configuration"
+
+ assert_cpuplugd_running 1 1
+
+ cpusbefore=$(grep "processors" /proc/cpuinfo | cut -d":" -f2)
+ echo "running daemon with only cpu config" > cpuf
+ echo "start cpuplugd -V -c cpu.conf -f "
+ cpuplugd -V -c cpu.conf -f >> cpuf &
+ sleep 2
+
+ assert_cpuplugd_running 0 1
+ RC=$?
+ echo "Let Daemon run for few seconds, so that it does the hotplugging"
+ sleep ${SLEEP_X}
+
+ cpusrunning=$(grep "processors" /proc/cpuinfo | cut -d":" -f2)
+
+ if [[ ${RC} -eq 0 ]]; then
+ stop_cpuplugd
+ fi
+
+ sleep 2
+ cpusafter=$(grep "processors" /proc/cpuinfo | cut -d":" -f2)
+ i=0
+
+ if (( "$cpusbefore" != "$cpusrunning" )) && (( "$cpusbefore" == "$cpusafter" )); then
+ i=1
+ fi
+
+ assert_warn $i 1 "Verify that number of CPUs before, while and after the daemon runs changes: cpusbefore=$cpusbefore, cpusduring=$cpusrunning, cpusafterter=$cpusafter"
+}
+
+cpuplugd_test10()
+{
+#
+# Memory Hotplug tests (z/VM only)
+#
+ if isVM; then
+ #
+ # Run several tests with incomplete/broken configuration.
+ # Correct behavior for the daemon is not to start.
+ #
+
+ echo "Run Daemon without loading CMM module"
+ if [[ "${CMM_MOD}" != "m" ]]; then
+ assert_warn 0 0 "This test is not possible to be performed since CMM was builtin within the kernel and cannot be unloaded."
+ else
+ assert_cpuplugd_running 1 0
+ RC=$?
+
+ if [[ ${RC} -eq 0 ]]; then
+ stop_cpuplugd
+ fi
+
+ rmmod cmm
+ lsmod | grep -q cmm
+ assert_warn $? 1 "Verify that CMM module is not loaded"
+
+ cpuplugd -V -c cmm.conf -f >> cmm.log &
+ echo "Daemon should fail to run as CMM module is not loaded"
+ sleep 2
+
+ assert_cpuplugd_running 1 1
+ RC=$?
+
+ rm -rf cmm.log
+
+ if [[ ${RC} -eq 0 ]]; then
+ stop_cpuplugd
+ fi
+ fi
+
+
+ echo "Run Daemon without CMM_MIN entry"
+ prepare_incomplete_cmm_test_config CMM_MIN
+ cmm_test_with_error_in_cpuplgdtest_conf 1 1
+
+
+ echo "Run Daemon without CMM_MAX entry"
+ prepare_incomplete_cmm_test_config CMM_MAX
+ cmm_test_with_error_in_cpuplgdtest_conf 1 1
+
+
+ echo "Run Daemon without CMM_INC entry"
+ prepare_incomplete_cmm_test_config CMM_INC
+ cmm_test_with_error_in_cpuplgdtest_conf 1 1
+
+
+ echo "Run Daemon without MEMPLUG entry"
+ prepare_incomplete_cmm_test_config MEMPLUG
+ cmm_test_with_error_in_cpuplgdtest_conf 1 1
+
+
+ echo "Run Daemon without MEMUNPLUG entry"
+ prepare_incomplete_cmm_test_config MEMUNPLUG
+ cmm_test_with_error_in_cpuplgdtest_conf 1 1
+
+
+#
+# Good path test for CMM plugging
+#
+ echo "Run Daemon with only CMM configuration"
+ if [[ "${CMM_MOD}" = "m" ]]; then
+ modprobe cmm
+ fi
+
+ echo 1000 > /proc/sys/vm/cmm_pages
+ sleep 1
+
+ cmm_pages_before=$(cat /proc/sys/vm/cmm_pages)
+ cpusbefore=$(grep "processors" /proc/cpuinfo | cut -d":" -f2)
+ cpuplugd -V -c cmm.conf -f >> cmm.log &
+ sleep 2
+
+ assert_cpuplugd_running 0 1
+ RC=$?
+ sleep 4
+
+ cmm_pages_running=$(cat /proc/sys/vm/cmm_pages)
+ cpusrunning=$(grep "processors" /proc/cpuinfo | cut -d":" -f2)
+
+ if [[ ${RC} -eq 0 ]]; then
+ stop_cpuplugd
+ fi
+
+ sleep 2
+
+ cmm_pages_after=$(cat /proc/sys/vm/cmm_pages)
+ cpusafter=$(grep "processors" /proc/cpuinfo | cut -d":" -f2)
+ i=0
+
+ if (( "$cmm_pages_before" != "$cmm_pages_running" )) && (( "$cmm_pages_before" == "$cmm_pages_after" )); then
+ if (( "$cpusbefore" == "$cpusrunning" )) && (( "$cpusbefore" == "$cpusafter" )); then
+ i=1
+ fi
+ fi
+
+ assert_warn $i 1 "Verify that the number of cmm_pages before, while and after the daemon runs changes: cmm_pages_before=$cmm_pages_before, cmm_pages_running=$cmm_pages_running, cmm_pages_after=$cmm_pages_after. CPU hotplugging should not happen and cpu configuration should remain constant: cpus_before=$cpusbefore, cpus_during=$cpusrunning, cpus_after=$cpusafter"
+
+ else
+ # if it is LPAR, Memory Hotplug cannot be done
+ assert_exec 1 "modprobe vmcp"
+ echo "This is LPAR. Skip CMM Tests"
+ fi
+}
+
+cpuplugd_test11()
+{
+ echo "Doing the cleanup tasks ..."
+ cpuplugd_run "service cpuplugd stop" 0
+
+ if [[ "${CMM_MOD}" = "m" ]]; then
+ cpuplugd_run "rmmod cmm" 0
+ fi
+
+ cpuplugd_run "rm -rf cpuf cmm log cmm.log cpuplugdtest.conf te.tes out.txt.tmp" 0
+
+}
+
+tst_run
diff --git a/testcases/commands/cpuplugd/cpuplugd_1.sh b/testcases/commands/cpuplugd/cpuplugd_1.sh
new file mode 100644
index 000000000..32d596377
--- /dev/null
+++ b/testcases/commands/cpuplugd/cpuplugd_1.sh
@@ -0,0 +1,197 @@
+# Copyright (C) 2018 IBM Corp.
+#
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved. This file is offered as-is,
+# without any warranty.
+
+
+#!/usr/bin/env bash
+
+for f in lib/*.sh; do source $f; done
+
+assert_cpuplugd_running() {
+ local NOT_RUNNING=${1}
+ local WARN=${2}
+
+ if [[ ${NOT_RUNNING} -eq 0 ]]; then
+ MESSAGE="cpuplugd is running"
+ elif [[ ${NOT_RUNNING} -eq 1 ]]; then
+ MESSAGE="cpuplugd is not running"
+ fi
+
+ ps -e | grep -q cpuplugd
+ RC=$?
+
+ if [[ ${WARN} -eq 1 ]]; then
+ if [ ${RC} -eq ${NOT_RUNNING} ]; then
+ tst_res TPASS "${MESSAGE}"
+ else
+ tst_res TFAIL "${MESSAGE}"
+ fi
+ fi
+
+ return ${RC}
+}
+
+stop_cpuplugd() {
+ echo "stop cpuplugd"
+ # With Sles15 there is no PID file for cpuplugd
+ # when running in the foreground
+ # if ( isSles15 ); then
+ # if [ -e /run/cpuplugd.pid ]; then
+ # kill $(cat /run/cpuplugd.pid)
+ # else
+ # kill $(ps -e | grep -i cpuplugd | awk '{print $1}')
+ # fi
+ # else
+ # kill $(cat /var/run/cpuplugd.pid)
+ # fi
+ #########################################################
+ # updated start #
+ #########################################################
+ if [ -e /run/cpuplugd.pid ]; then
+ kill $(cat /run/cpuplugd.pid)
+ elif [ -e /var/run/cpuplugd.pid ]; then
+ kill $(cat /var/run/cpuplugd.pid)
+ else
+ kill $(ps -e | grep -i cpuplugd | awk '{print $1}')
+ fi
+ #########################################################
+ # updated end #
+ #########################################################
+
+ until ! assert_cpuplugd_running 1 0; do
+ echo "cpuplugd is still running"
+ sleep 1
+ done
+
+ echo "check cpuplugd is not running"
+ if [ $? -eq 0 ]; then
+ tst_res TPASS "Test passed"
+ else
+ tst_res TFAIL "Test failed"
+ fi
+
+}
+
+#Function to remove the given entry ($1) from test configuration file
+prepare_incomplete_cpu_test_config() {
+ rm -rf cpuplugdtest.conf
+ cp cpuplugd.conf cpuplugdtest.conf
+ sed -e 's/'$1'/#'$1'/' -i cpuplugdtest.conf
+}
+
+prepare_incomplete_cmm_test_config() {
+ rm -rf cpuplugdtest.conf
+ cp cpuplugdcmm.conf cpuplugdtest.conf
+ sed -e 's/'$1'/#'$1'/' -i cpuplugdtest.conf
+}
+
+#run cpuplgd with cpuplugdtest.conf and verify change in number of cpus before/during/after running the daemon
+cpu_test_with_error_in_cpuplgdtest_conf() {
+ local NOT_RUNNING=${1}
+ local WARN=${2}
+
+ # cmm must not be loaded so that cpuplugd will only consider the cpu configuration
+ if [[ "${CMM_MOD}" = "m" ]]; then
+ rmmod cmm
+ fi
+
+ assert_cpuplugd_running 1 0
+ RC=$?
+
+ if [[ ${RC} -eq 0 ]]; then
+ stop_cpuplugd
+ fi
+
+ cpusbefore=$(grep "processors" /proc/cpuinfo | cut -d":" -f2)
+ echo "start cpuplugd -V -c cpuplugdtest.conf -f"
+ cpuplugd -V -c cpuplugdtest.conf -f >> cpuf &
+ sleep 2
+
+ if [[ "${CMM_MOD}" = "m" ]]; then
+ assert_cpuplugd_running ${NOT_RUNNING} ${WARN}
+ else
+ assert_cpuplugd_running ${NOT_RUNNING} ${WARN}
+ fi
+
+ RC=$?
+
+ # Wait a little to allow for (undesired) cpu configuration change
+ sleep ${SLEEP_X}
+ cpusrunning=$(grep "processors" /proc/cpuinfo | cut -d":" -f2)
+
+ if [[ ${RC} -eq 0 ]]; then
+ stop_cpuplugd
+ fi
+
+ cpusafter=$(grep "processors" /proc/cpuinfo | cut -d":" -f2)
+ i=0
+
+ if (( "$cpusbefore" == "$cpusrunning" )) && (( "$cpusrunning" == "$cpusafter" )); then
+ i=1
+ fi
+
+ echo "Verify that CPU configuration does not change: cpusbefore=$cpusbefore, cpusduring=$cpusrunning, cpusafterter=$cpusafter"
+ if [ $i -eq 1 ]; then
+ tst_res TPASS "Test passed"
+ else
+ tst_res TFAIL "Test failed"
+ fi
+}
+
+#run cpuplgd with cpuplugdtest.conf and verify change in number of cmm pagess before/during/after running the daemon
+cmm_test_with_error_in_cpuplgdtest_conf() {
+ local NOT_RUNNING=${1}
+ local WARN=${2}
+
+ assert_cpuplugd_running 1 0
+ RC=$?
+
+ if [[ ${RC} -eq 0 ]]; then
+ stop_cpuplugd
+ fi
+
+ if [[ "${CMM_MOD}" = "m" ]]; then
+ modprobe cmm
+ fi
+
+ echo 1000 > /proc/sys/vm/cmm_pages
+ sleep 2
+
+ cmm_pages_before=$(cat /proc/sys/vm/cmm_pages)
+
+ echo "start cpuplugd -V -c cpuplugdtest.conf -f"
+ cpuplugd -V -c cpuplugdtest.conf -f >> cmm &
+ sleep 2
+
+ assert_cpuplugd_running ${NOT_RUNNING} ${WARN}
+ RC=$?
+
+ # Wait a little to allow for (undesired) cpu configuration change
+ sleep ${SLEEP_X}
+ cmm_pages_running=$(cat /proc/sys/vm/cmm_pages)
+
+ if [[ ${RC} -eq 0 ]]; then
+ stop_cpuplugd
+ fi
+
+ cmm_pages_after=$(cat /proc/sys/vm/cmm_pages)
+ i=0
+
+ if (( "$cmm_pages_before" == "$cmm_pages_running" )) && (( "$cmm_pages_running" == "$cmm_pages_after" )); then
+ i=1
+ fi
+
+ echo "Verify that the number of available CMM pages does not change: cmm_pages_before=$cmm_pages_before, cmm_pages_running=$cmm_pages_running, cmm_pages_after=$cmm_pages_after"
+ if [ ${i} -eq 1 ]; then
+ tst_res TPASS "Test passed"
+ else
+ tst_res TFAIL "Test failed"
+ fi
+
+ if [[ "${CMM_MOD}" = "m" ]]; then
+ rmmod cmm
+ fi
+}
diff --git a/testcases/commands/cpuplugd/cpuplugdcmm.conf b/testcases/commands/cpuplugd/cpuplugdcmm.conf
new file mode 100644
index 000000000..8866b2939
--- /dev/null
+++ b/testcases/commands/cpuplugd/cpuplugdcmm.conf
@@ -0,0 +1,16 @@
+# Copyright (C) 2018 IBM Corp.
+#
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved. This file is offered as-is,
+# without any warranty.
+
+
+UPDATE="1"
+
+CMM_MIN="0"
+CMM_INC="10"
+CMM_MAX="10"
+
+MEMPLUG="swaprate < 200"
+MEMUNPLUG="swaprate > 5000"
diff --git a/testcases/commands/cpuplugd/cpuplugdtemp.conf b/testcases/commands/cpuplugd/cpuplugdtemp.conf
new file mode 100644
index 000000000..9c8eafe0b
--- /dev/null
+++ b/testcases/commands/cpuplugd/cpuplugdtemp.conf
@@ -0,0 +1,21 @@
+# Copyright (C) 2018 IBM Corp.
+#
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved. This file is offered as-is,
+# without any warranty.
+
+
+CPU_MIN="1"
+CPU_MAX="3"
+UPDATE="1"
+
+HOTPLUG="(loadavg > onumcpus + 0.75) & (idle < 10.0)"
+HOTUNPLUG="(loadavg < onumcpus - 0.25) | (idle > 50)"
+
+#CMM_MIN="0"
+CMM_INC="10"
+CMM_MAX="10"
+
+MEMPLUG="swaprate < 200"
+MEMUNPLUG="swaprate > 5000"
--
2.17.2 (Apple Git-113)
More information about the ltp
mailing list