[问题描述]: 1、anolis23LTP测试中cgroup相关测试为v1版本命令,Anolis 23默认cgroup版本为v2 2、anolis23测试LTP controllers模块中,测试命令为v1版本,部分测试命令依然成功,部分提示为:'xx'already mounted or mount point busy。 查看默认挂载项 [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount | grep cgroup cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,seclabel,nsdelegate,memory_recursiveprot) [环境信息]: 机器类型:ECS [内核信息]: [root@iZbp1ivbnxxe7k7crvylttZ cgroup]# uname -r 5.10.134-12.1.an23.x86_64 操作系统信息: [root@iZbp1ivbnxxe7k7crvylttZ cgroup]# cat /etc/os-release NAME="Anolis OS" VERSION="23" ID="anolis" VERSION_ID="23" PLATFORM_ID="platform:an23" PRETTY_NAME="Anolis OS 23" ANSI_COLOR="0;31" HOME_URL="https://openanolis.cn/" BUG_REPORT_URL="https://bugzilla.openanolis.cn/" [问题发生概率]:必现 [期望结果] 如果v1、v2版本不可同时使用,需要合理的将未开启的版本禁用,如使用v2版本 v1的挂载操作不应部分正常,部分异常。 如果v1、v2可以共存,期望v1的挂载命令挂载均正常。 [复现步骤]: 执行LTP controllers模块
之前不确定默认版本是v2时,验证anolis23 cgroup v1挂载测试,部分模块可以挂载 部分模块提示已经挂载。 查看默认挂载项 [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount | grep cgroup cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,seclabel,nsdelegate,memory_recursiveprot) 在/sys/fs/cgroup/路径下创建任意文件夹,此处创建的是memory文件夹 挂载上面查询到的各个子系统 [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount -t cgroup -o cpuset mem /sys/fs/cgroup/memory [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount -t cgroup -o memory memory /sys/fs/cgroup/memory mount: /sys/fs/cgroup/memory: memory already mounted or mount point busy. dmesg(1) may have more information after failed mount system call. [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount -t cgroup -o blkio blkio /sys/fs/cgroup/memory mount: /sys/fs/cgroup/memory: blkio already mounted or mount point busy. dmesg(1) may have more information after failed mount system call. [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount -t cgroup -o devices /sys/fs/cgroup/memory mount: /sys/fs/cgroup/memory: can't find in /etc/fstab. [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount -t cgroup -o devices devi /sys/fs/cgroup/memory [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount -t cgroup -o freezer free /sys/fs/cgroup/memory [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount -t cgroup -o net_cls net /sys/fs/cgroup/memory [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount -t cgroup -o pids pid /sys/fs/cgroup/memory mount: /sys/fs/cgroup/memory: pid already mounted or mount point busy. dmesg(1) may have more information after failed mount system call. [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount -t cgroup -o perf_event perf /sys/fs/cgroup/memory [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount -t cgroup -o rdma rdma /sys/fs/cgroup/memory [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount -t cgroup -o hugetlb huge /sys/fs/cgroup/memory [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount -t cgroup -o blkio mem /sys/fs/cgroup/memory mount: /sys/fs/cgroup/memory: mem already mounted on /sys/fs/cgroup/memory. dmesg(1) may have more information after failed mount system call. [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount | grep cgroup. cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,seclabel,nsdelegate,memory_recursiveprot) tmpfs on /usr/local/aegis/cgroup type tmpfs (rw,relatime,seclabel,size=51200k) cgroup on /usr/local/aegis/cgroup/cpu type cgroup (rw,relatime,seclabel,cpu) mem on /sys/fs/cgroup/memory type cgroup (rw,relatime,seclabel,cpuset) devi on /sys/fs/cgroup/memory type cgroup (rw,relatime,seclabel,devices) free on /sys/fs/cgroup/memory type cgroup (rw,relatime,seclabel,freezer) net on /sys/fs/cgroup/memory type cgroup (rw,relatime,seclabel,net_cls) perf on /sys/fs/cgroup/memory type cgroup (rw,relatime,seclabel,perf_event) rdma on /sys/fs/cgroup/memory type cgroup (rw,relatime,seclabel,rdma) huge on /sys/fs/cgroup/memory type cgroup (rw,relatime,seclabel,hugetlb) 最终结果:存在v1版本部分模块可以挂载,memory、pids、blkio无法正常挂载的现象。
(In reply to anolislhy from comment #0) > [问题描述]: > 1、anolis23LTP测试中cgroup相关测试为v1版本命令,Anolis 23默认cgroup版本为v2 > > 2、anolis23测试LTP controllers模块中,测试命令为v1版本,部分测试命令依然成功,部分提示为:'xx'already > mounted or mount point busy。 > > > 查看默认挂载项 > [root@iZbp18osflnsnyoj47cbkoZ cgroup]# mount | grep cgroup > cgroup2 on /sys/fs/cgroup type cgroup2 > (rw,nosuid,nodev,noexec,relatime,seclabel,nsdelegate,memory_recursiveprot) > > [环境信息]: > 机器类型:ECS > > [内核信息]: > [root@iZbp1ivbnxxe7k7crvylttZ cgroup]# uname -r > 5.10.134-12.1.an23.x86_64 > > 操作系统信息: > [root@iZbp1ivbnxxe7k7crvylttZ cgroup]# cat /etc/os-release > NAME="Anolis OS" > VERSION="23" > ID="anolis" > VERSION_ID="23" > PLATFORM_ID="platform:an23" > PRETTY_NAME="Anolis OS 23" > ANSI_COLOR="0;31" > HOME_URL="https://openanolis.cn/" > BUG_REPORT_URL="https://bugzilla.openanolis.cn/" > > [问题发生概率]:必现 > > [期望结果] > 如果v1、v2版本不可同时使用,需要合理的将未开启的版本禁用,如使用v2版本 v1的挂载操作不应部分正常,部分异常。 > 如果v1、v2可以共存,期望v1的挂载命令挂载均正常。 > > [复现步骤]: > 执行LTP controllers模块 原因: 1. anolis 23默认在/sys/fs/cgroup/ 下挂载了cgroup v2 2. systemd在使能cpu,pids,memory等子系统的前提下,创建了user.slice,system.slice等子cgroup 3. 内核有限制,在cgroup v2中开启了子系统,且有子cgroup的情况下,不允许再以cgroup v1的方式挂子系统 4. LTP controllers的部分testcase以cgroup v1的方式挂载子系统,出现错误 解决办法: 上游社区LTP controllers已经适配了系统默认cgroup v2的情况,以memcg_regression_test为例,对应的commit为 https://github.com/linux-test-project/ltp/commit/4d3ad2e5a8badd09573f650668c54f4997edb2e1 建议tone的LTP进行更新