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