xref: /aosp_15_r20/external/ltp/testcases/kernel/controllers/memcg/functional/memcg_failcnt.sh (revision 49cdfc7efb34551c7342be41a7384b9c40d7cab7)
1#!/bin/sh
2# SPDX-License-Identifier: GPL-2.0-or-later
3# Copyright (c) 2009 FUJITSU LIMITED
4# Copyright (c) 2016 Cyril Hrubis <[email protected]>
5# Copyright (c) 2021 Joerg Vehlow <[email protected]>
6#
7# Author: Li Zefan <[email protected]>
8# Restructure for LTP: Shi Weihua <[email protected]>
9# Added memcg enable/disable functionality: Rishikesh K Rajak <[email protected]>
10
11MEMCG_TESTFUNC=do_test
12MEMCG_SHMMAX=1
13TST_TEST_DATA="--mmap-anon --mmap-file --shm"
14
15do_test()
16{
17	ROD echo $MEMORY_LIMIT \> memory.limit_in_bytes
18
19	start_memcg_process $2 -s ${MEMORY_TO_ALLOCATE}
20	ROD echo $MEMCG_PROCESS_PID \> tasks
21
22	signal_memcg_process ${MEMORY_TO_ALLOCATE}
23	signal_memcg_process ${MEMORY_TO_ALLOCATE}
24
25	stop_memcg_process
26
27	failcnt=$(cat memory.failcnt)
28	if [ $failcnt -gt 0 ]; then
29		tst_res TPASS "memory.failcnt is $failcnt, > 0 as expected"
30	else
31		tst_res TFAIL "memory.failcnt is $failcnt, <= 0 expected"
32	fi
33}
34
35. memcg_lib.sh
36
37MEMORY_LIMIT=$PAGESIZE
38MEMORY_TO_ALLOCATE=$((MEMORY_LIMIT * 2))
39
40tst_run
41