diff --git a/tools/install_test_tool.sh b/tools/install_test_tool.sh new file mode 100644 index 0000000000000000000000000000000000000000..f4fcb1a4a18ded140e1ea7284dbc8d34e7134c2e --- /dev/null +++ b/tools/install_test_tool.sh @@ -0,0 +1,90 @@ +# 按README提取的Anolis 测试安装plugsched工具,运行命令都在这个脚本 + +echo "=====安装 debuginfo=====" +VERSION=`cat /etc/os-release | grep "VERSION=" | awk -F '"' '{print $2}'` +yum install anolis-repos -y +yum install yum-utils podman -y +yum install kernel-debuginfo-$(uname -r) kernel-devel-$(uname -r) --enablerepo=Plus-debuginfo --enablerepo=Plus -y + +# yum install 如果没有安装debuginfo包,这里下载后安装 +if [ -z "`rpm -qa | grep kernel-debuginfo`" ]; then + wget -c https://mirrors.openanolis.cn/anolis/${VERSION}/Plus/x86_64/debug/Packages/kernel-debuginfo-common-x86_64-$(uname -r).rpm + rpm -ivh kernel-debuginfo-common-x86_64-$(uname -r).rpm + wget -c https://mirrors.openanolis.cn/anolis/${VERSION}/Plus/x86_64/debug/Packages/kernel-debuginfo-$(uname -r).rpm + rpm -ivh kernel-debuginfo-$(uname -r).rpm + rm -vf kernel-debuginfo-common-x86_64-$(uname -r).rpm kernel-debuginfo-$(uname -r).rpm +fi +mkdir -p /tmp/work && cd /tmp/work +yumdownloader --source kernel-$(uname -r) --enablerepo=Plus --enablerepo=Plus-debuginfo +uname_version=`uname -r | sed 's/.x86_64//'` +if [ -f "kernel-${uname_version}.src.rpm" ]; then + wget -c https://mirrors.openanolis.cn/anolis/${VERSION}/Plus/source/Packages/kernel-${uname_version}.src.rpm +fi + +# 拉取镜像,可能比较慢 +(podman images | grep docker.io/plugsched/plugsched-sdk) || podman pull docker.io/plugsched/plugsched-sdk +# 启动容器 +(podman ps | grep plugsched) && podman stop plugsched && podman rm plugsched +podman run -itd --name=plugsched -v /tmp/work:/tmp/work -v /usr/src/kernels:/usr/src/kernels -v /usr/lib/debug/lib/modules:/usr/lib/debug/lib/modules docker.io/plugsched/plugsched-sdk + +echo "=====创建 rpm=====" +cat >/tmp/work/test.diff <curr; +diff --git a/scheduler/kernel/sched/mod/features.h b/scheduler/kernel/sched/mod/features.h +index 4c40fac..8d1eafd 100644 +--- a/scheduler/kernel/sched/mod/features.h ++++ b/scheduler/kernel/sched/mod/features.h +@@ -1,4 +1,6 @@ + /* SPDX-License-Identifier: GPL-2.0 */ ++SCHED_FEAT(PLUGSCHED_TEST, false) ++ + /* + * Only give sleepers 50% of their service deficit. This allows + * them to run sooner, but does not allow tons of sleepers to +EOF + +cat >/tmp/work/create_rpm.sh < /sys/kernel/debug/sched_features +dmesg | tail -n 5 + +echo "=====移除 scheduler=====" +rpm -e scheduler-xxx +dmesg | tail -n 8 +cat /sys/kernel/debug/sched_features