1#!/bin/sh 2################################################################################ 3# 4# Copyright (C) 2022 Huawei Device Co., Ltd. 5# SPDX-License-Identifier: GPL-2.0 6# 7# Legacy blkg rwstat helpers enabled by CONFIG_BLK_CGROUP_RWSTAT. 8# Do not use in new code. 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16################################################################################ 17# File: cpuisolation05.sh 18# 19# Description: check CPU lightweight isolation trace test 20# 21# Authors: liudanning - liudanning@h-partners.com 22# 23# History: Mar 24 2022 - init scripts 24# 25################################################################################ 26 27source tst_oh.sh 28 29do_setup() 30{ 31 tracing_on=$(cat /sys/kernel/debug/tracing/tracing_on) 32 eval_need=$(cat /sys/kernel/debug/tracing/events/sched/core_ctl_eval_need/enable) 33 set_busy=$(cat /sys/kernel/debug/tracing/events/sched/core_ctl_set_busy/enable) 34 update_nr_need=$(cat /sys/kernel/debug/tracing/events/sched/core_ctl_update_nr_need/enable) 35} 36 37do_test() 38{ 39 tst_res TINFO "Start to check CPU lightweight isolation trace test." 40 echo 1 > /sys/kernel/debug/tracing/tracing_on 41 echo 1 > /sys/kernel/debug/tracing/events/sched/core_ctl_eval_need/enable 42 echo 1 > /sys/kernel/debug/tracing/events/sched/core_ctl_set_busy/enable 43 echo 1 > /sys/kernel/debug/tracing/events/sched/core_ctl_update_nr_need/enable 44 45 tst_res TINFO "Start CPU trace catching test ..." 46 bytrace -t 10 -b 32000 --overwrite sched ace app disk ohos graphic sync \ 47 workq ability > cputrace.ftrace & 48 sleep 5 49 for i in $(seq 1 8);do 50 sh create_process.sh 40 51 sleep 2 52 ps -ef | grep "create_process" | grep -v "grep" | cut -c 9-18 | xargs kill -9 53 done & 54 for i in $(seq 1 100);do 55 echo 1 /sys/devices/system/cpu/cpu0/core_ctl/max_cpus 56 echo $((RANDOM %4 + 1)) /sys/devices/system/cpu/cpu0/core_ctl/max_cpus 57 done& 58 sleep 40 59 60 tst_res TINFO "Checking CPU trace ..." 61 cat cputrace.ftrace | grep "set_busy" && 62 cat cputrace.ftrace | grep "update_nr_need" 63 if [ $? -eq 0 ]; then 64 tst_res TPASS "trace info found." 65 rm -rf cputrace.ftrace 66 else 67 tst_res TFAIL "trace info no found!" 68 fi 69} 70 71do_clean() 72{ 73 echo $tracing_on > /sys/kernel/debug/tracing/tracing_on 74 echo $eval_need > /sys/kernel/debug/tracing/events/sched/core_ctl_eval_need/enable 75 echo $set_busy > /sys/kernel/debug/tracing/events/sched/core_ctl_set_busy/enable 76 echo $update_nr_need > /sys/kernel/debug/tracing/events/sched/core_ctl_update_nr_need/enable 77 echo 4 /sys/devices/system/cpu/cpu0/core_ctl/max_cpus 78 echo 1 /sys/devices/system/cpu/cpu0/core_ctl/min_cpus 79 ps -ef | grep "create_process" | grep -v "grep" | cut -c 9-18 | xargs kill -9 80 rm -rf taskpid.txt 81} 82 83do_setup 84do_test 85do_clean 86tst_exit