• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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