• 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# 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