Anolis龙蜥操作系统安装测试plugsched

简介: Anolis龙蜥操作系统安装测试plugsched

Anolis开源plugsched 是 Linux 内核调度器子系统热升级的 SDK,它可以实现在不重启系统、应用的情况下动态替换调度器子系统。

龙蜥实验室中2核的机器1小时的时间不能完成内核的编译,需要阿里云ECS创建一台16核以上的按量计费机器,安装 Anolis OS 7.9 ANCK镜像,下载的kernel源码包是匹配这个版本的系统
因为需要编译内核,所以占用cpu较多,其他模块占用cpu较少
plugsched sdk在容器中可以找到
运行的脚本内容为以下内容,按 https://gitee.com/anolis/plugsched 说明整理,包括debuginfo包安装,容器启动,编译rpm包,安装rpm包,测试等过程,都在脚本中完成

#  Anolis OS 7.9 ANCK 使用
echo "=====安装 debuginfo====="
yum install anolis-repos -y
yum install yum-utils podman kernel-debuginfo-$(uname -r) kernel-devel-$(uname -r) --enablerepo=Plus-debuginfo --enablerepo=Plus -y
# yum install 如果没有安装debuginfo包,这里下载后安装
wget -c https://mirrors.openanolis.cn/anolis/7.9/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/7.9/Plus/x86_64/debug/Packages/kernel-debuginfo-$(uname -r).rpm
rpm -ivh kernel-debuginfo-$(uname -r).rpm
mkdir /tmp/work && cd /tmp/work
yumdownloader --source kernel-$(uname -r) --enablerepo=Plus --enablerepo=Plus-debuginfo
wget -c https://mirrors.openanolis.cn/anolis/7.9/Plus/source/Packages/kernel-4.19.91-25.7.an7.src.rpm
# 启动容器
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/core.diff <<EOF
diff --git a/scheduler/kernel/sched/mod/core.c b/scheduler/kernel/sched/mod/core.c
index 9f16b72..21262fd 100644
--- a/scheduler/kernel/sched/mod/core.c
+++ b/scheduler/kernel/sched/mod/core.c
@@ -3234,6 +3234,9 @@ static void __sched notrace __schedule(bool preempt)
        struct rq *rq;
        int cpu;
 
+       if (sched_feat(PLUGSCHED_TEST))
+               printk_once("I am the new scheduler: __schedule\n");
+
        cpu = smp_processor_id();
        rq = cpu_rq(cpu);
        prev = rq->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 <<EOF
set -x
cd /tmp/work
uname_r=\$(uname -r)
plugsched-cli extract_src kernel-\${uname_r%.*}.src.rpm ./kernel
plugsched-cli init $(uname -r) ./kernel ./scheduler
patch -p1 <core.diff
plugsched-cli build /tmp/work/scheduler
cp /usr/local/lib/plugsched/rpmbuild/RPMS/x86_64/scheduler-xxx-\${uname_r%.*}.yyy.x86_64.rpm /tmp/work/scheduler-xxx.rpm
EOF

# 执行容器中命令
podman exec plugsched bash /tmp/work/create_rpm.sh

echo "=====安装 scheduler====="
cat /sys/kernel/debug/sched_features
rpm -ivh /tmp/work/scheduler-xxx.rpm
lsmod | grep scheduler
dmesg | tail -n 10
cat /sys/kernel/debug/sched_features
echo PLUGSCHED_TEST > /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
目录
相关文章
|
10天前
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
10天前
|
IDE Java 开发工具
如何在Windows操作系统上安装PyCharm?
【7月更文挑战第5天】如何在Windows操作系统上安装PyCharm?
106 59
|
13天前
|
人工智能 Cloud Native 数据库
“云+AI”浪潮下,阿里云&龙蜥携手打造智算时代最佳服务器操作系统
AI 时代的来临,也推动着云计算发展迎来第三次浪潮。
|
13天前
|
Anolis
免费延保四年!Anolis OS 7 延保计划通知
在 2024 年 6 月 30 日 EOL 的基础上为用户提供免费四年时间的 ELS 延保服务,即延保至 2028 年 6 月 30 日。延保结束后,龙蜥社区将停止对 Anolis OS 7 的维护更新及技术支持。
免费延保四年!Anolis OS 7 延保计划通知
|
19天前
|
Java Maven
maven跳过测试清理、打包、安装
maven跳过测试清理、打包、安装
19 4
|
19天前
|
Linux 测试技术 开发工具
CentOS Linux 8使用阿里源(安装jdk11、git测试)
CentOS Linux 8使用阿里源(安装jdk11、git测试)
97 1
|
1月前
|
Linux 数据安全/隐私保护 虚拟化
04. 【Linux教程】安装 Linux 操作系统
04. 【Linux教程】安装 Linux 操作系统
69 3
04. 【Linux教程】安装 Linux 操作系统
|
7天前
|
机器学习/深度学习 存储 Linux
我的OS Copilot测试文章
在阿里云管理控制台尝试重置密码时遇到错误,未能成功跳转至相应实例;但后续的密码重置流程顺利,安全组设置和SSH连接快速无阻,且体验到AccessKey预警系统的实用性。在处理代码时曾因未替换特殊字符报错,但最终解决了问题,实现了Python代码分析功能,确认系统为Linux,并对OS工具的交互性和实用性表示赞赏,特别是其与Linux环境的兼容性。遇到过一次生成实例的错误,但整体体验良好,有兴趣参与OS Copilot的开源开发。
|
13天前
|
人工智能 运维 安全
浪潮信息与龙蜥社区联合发布!服务器操作系统KOS V5.8,并推出“停更无忧”计划
浪潮信息联合龙蜥社区重磅推出“停更无忧”行动计划,提供漏洞及Bug修复、故障定位与解决、安全加固等服务,有效防范CentOS停服后可能出现的新型漏洞、恶意代码引发的信息泄露、业务中断以及勒索攻击等严重风险。
|
1月前
|
安全 开发工具 虚拟化
6 大亮点!全新 Anolis OS 23.1 GA 版正式发布,满足多样化平台支持
结合新时代技术发展需求,龙蜥正式发布全新发行版 Anolis OS 23.1。