Skip to content

Latest commit

 

History

History
1272 lines (932 loc) · 99.2 KB

2024-02-01.md

File metadata and controls

1272 lines (932 loc) · 99.2 KB

PLCT 开源进展·第 54 期·2024 年 2 月 1 日

卷首语

时间步入2月,立春节气已然到来,春节也在眼前了,PLCT的小伙伴们即将迎来2周的春节假期,大家或早或晚地给兔年的忙碌画上句号,陆续开始准备休假、回家、过年啦。律回春晖渐,万象始更新,PLCT给大家拜个早年,祝愿每一位PLCT的小伙伴和每一位PLCT开源进展的读者朋友龙年龙翔万里,乘风而上!

本期亮点

年终岁末之际,RISC-V架构也依然在如火如荼地被讨论、传播和推动。 1月中旬,PLCT实验室的项目总监吴伟老师和工程师刘阳参加了由日本RISC-V协会等机构在东京大学举办的2024冬季RISC-V Day活动,会上分享了RuyiSDK的技术路线和最新进展。 1月下旬,吴伟老师又赴阿尔巴尼亚参加了首届中欧RISC-V与计算机体系结构研发合作研讨会,并在会上分享了PLCT实验室对于十年RISC-V生态发展的预测和行动计划。 以RISC-V为桥梁,PLCT实验室的愿景和行动目标也在这次交流中得到了传播,相信通过在RISC-V领域的更多交流和合作,有越来越多的中国的工程师、研究者和企业,都能走出国门,走到世界信息技术的前沿,和来自全球各地的伙伴们达成共识、合作共进,共同推动知识和技术的进步。

RuyiSDK IDE

IDE部分主要开展了 Eclipse 和 VSCode 对C、Rust、Golang 进行了RISC-V架构上编译和调试现有插件的调研,目前整体来说C、Rust和Golang在RISC-V架构下的交叉编译可走通,但是调试插件还或多或少存在一些问题,缺乏成熟插件甚至无可用调试插件支持。

RuyiSDK 包管理器

项目地址:https://github.com/ruyisdk/ruyi

切换至双周迭代节奏之后,1 月份 RuyiSDK 发布了两个新版本:0.3 与 0.4,分别对应 RuyiSDK 包管理器的 0.3.0 与 0.4.0 正式版本。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

两个版本的更新内容主要有:

  • 增加了软件源新闻消息功能。ruyi update 后,如有未读的新闻消息,会输出提示信息。您可用新增的 ruyi news listruyi news read 命令阅读这些消息文章。
  • 增加了开发板安装器功能:ruyi device provision。这是个一步步指导您为手头的 RISC-V 开发板烧写系统镜像、引导器等初始数据的向导。截至 RuyiSDK 0.4,支持了以下的板卡:
    • Allwinner 哪吒 D1
    • Milk-V Duo
    • Milk-V Pioneer
    • Sipeed LicheePi 4A
    • Sipeed Lichee RV
    • StarFive VisionFive
    • StarFive VisionFive2
  • ruyi device provision 会将 fastboot 的调用以 sudo 包装了。
  • ruyi self uninstall --purge 不会忘记删除 ~/.local/state/ruyi 目录了。
  • 从软件源下载文件失败时,会提供一些有助于用户自助排查问题的提示讯息了。
  • 为提供更稳定的服务,RuyiSDK 软件源仓库现已搬迁至 GitHub。
  • 在 RuyiSDK 软件源中,新增打包了以下内容:
    • 适用于 amd64 架构的 RISC-V QEMU 系统模拟器二进制包,
    • 适用于 riscv64 架构的 DynamoRIO 二进制包。

V8

  1. 在RISC-V上支持WASM OOB trap handler 特性 5227604: [riscv] Enable OOB trap handler | https://chromium-review.googlesource.com/c/v8/v8/+/5227604
  2. 清理maglev,为在RISC-V上实现malgev准备 5252429: [maglev] Replace CompareRoot/JumpIf by JumpIfRoot or JumpIfNotRoot | https://chromium-review.googlesource.com/c/v8/v8/+/5252429
  3. V8目前已经可以在Android 上成功运行并执行回归测试 https://github.com/riscv-collab/v8/wiki/How-to-Run-v8-on-Android-RISCV

Port 上游

Spidermonkey

OpenJDK Upstream

  1. Co-authored JDK-mainline PRs:
  • openjdk/jdk#17103 (8321972: test runtime/Unsafe/InternalErrorTest.java timeout on linux-riscv64 platform)
  1. Reviewed JDK-mainline PRs:
  1. Reviewed JDK22 upstream PRs:
  • openjdk/jdk22#19 (8322154: RISC-V: JDK-8315743 missed change in MacroAssembler::load_reserved)
  1. Reviewed JDK17u upstream PRs:
  1. JDK-mainline PRs:
  • openjdk/jdk#17192 (8322583: RISC-V: Enable fast class initialization checks)
  • openjdk/jdk#17436 (8323694: RISC-V: Unnecessary ResourceMark in NativeCall::set_destination_mt_safe)
  • openjdk/jdk#17548 (8324125: Improve class initialization barrier in TemplateTable::_new for RISC-V)
  1. JDK22U backport PRs:
  • openjdk/jdk22u#34 (8324280: RISC-V: Incorrect implementation in VM_Version::parse_satp_mode)
  1. JDK21U backport PRs:
  1. JDK17U backport PRs:

OpenJDK RV32G

OpenJDK8 Backporting

[OpenJDK8 ZERO for RISCV64 在sg2042上移植记录]https://zhuanlan.zhihu.com/p/677129085 [关于zero版本的backport] axiangyushanhaijing/powerpoint#372

OpenCV RISC-V 优化

  • 添加面向 Packed SIMD (RVP) 扩展的函数优化(DNN模块)

    PR #24556 已被接受: Optimization based on RISC-V P Packed SIMD Extension v0.5.2

GNU Toolchain

Jiawei Chen

  • 重新提交了第六版ZC扩展的Binutils支持,目前仍在review中:
  • Backporting RISC-V特性到RUYISDK GCC10上的RISC-V支持:
  • 正在添加香山cpu-info到gcc支持,预计5月初发送:
  • SIG-Toolcahin会议上讨论了Profiles的支持情况,由于Profiels TG对部分扩展添加争议较大,Palmer建议延后工具链合并的时间,等待5月初重新发送Profiles的GCC支持patch

Shihua Liao

Yixuan Chen

Yulong Shi

Yang Liu

RISC-V GNU Toolchain会议Slides链接

https://docs.google.com/presentation/d/19a-BUj_DnjEsltXFNXaoXveHukU7DZcTWESqGAABLCQ/edit

LLVM Monorepo

针对中端添加了回归测试, https://github.com/dtcxzyw/llvm-opt-benchmark

Chunyu Liao

Kiva

Yongtai Li

Junjie Zheng

gollvm

LIBCXX Experimental/simd

本期共有4个PR提交至LLVM上游,其中,2个已合并,2个正在等待审核:

目前项目共有17个patch已合并进入LLVM上游仓库。

LuaJIT RV64G Porting

We discovered that riscv_flush_icache would not work properly in musl libc, which is used by our LuaJIT port and pratically many other JIT compilers. We have sent a patch to musl and have it merged, while also applied a workaround ourside.

gem5

Spike

QEMU

DynamoRIO RV64GC

box64

xctan

ksco

dynarmic

dynarmic 作为 AArch32 和 AArch64 的二进制翻译器被 Citra、yuzu 等模拟器使用,我们已经开始尝试为它增加 RISC-V backend,目前已提交的代码被合并到了上游的 feature/rv64 分支中,待真正可用后会合并进主线。

biscuit 是类似于 Xbyak 的运行时 RISC-V 汇编器,作为 dynarmic 的依赖用于代码生成。下面是 biscuit 的 PR:

riscv-vector-tests

日常维护 RVV 测试集。

SAIL/ACT

openArkCompiler community

MLIR

Buddy Compiler

buddy-mlir

代码仓库:https://github.com/buddy-compiler/buddy-mlir

  • Add initial vector GetVL and SetVL operation.
  • Add initial Graph infrastructure.

buddy-benchmark

代码仓库:https://github.com/buddy-compiler/buddy-benchmark

  • Update with latest developments in buddy-mlir.
  • Update comparison projects (OpenCV, Eigen, etc.) to specific version.

CAAT

coreboot for riscv

本期没有新的进展。

openocd

本期没有新的进展。

opensbi

  • 在fw_base.S中移除_runtime_offset变量。1
  • 优化fw_base.S中无符号32数的加载。1
  • Makefile为clang 移除编译选项-mstrict-align,否则clang 17.06会编译报错。1
  • 把部分汇编实现移动到C代码中,减少汇编代码大小。1
  • 修正startfive jh7110的系统时钟的dt兼容字符串。1
  • 修正jh7110 i2c的时钟使能代码。1
  • 添加dt节点用于指定哪些核心可以冷启动。1
  • 给链接器添加排除库文件的选项--exclude-libs。1
  • 添加dynsym段防止一些链接器抱怨。1
  • 允许平台代码处理load/store access fault(可以模拟设备,或者过滤一些物理设备的访问)。1

u-boot

本期没有新的进展。

Aya Theorem Prover

eBPF

Benchmarking

LibreOffice

Arch Linux

(可以根据每个人的产出分开,按照人名增加三级缩进,也可以由 leader/mentor 汇总后统一PR)

RevyOS (Debian)

Debian

2024年1月份的主要工作:

  1. 修复 Debian unstable 中的 FTBFS 包,保证 riscv64 testing 及时合入更多的包
  2. 向 upstream 报告 riscv64 build 问题
  3. 协助转移实验室机器, 加入一台licheepi4a 到debci

以下是外部链接:

Gentoo

Nixpkgs

openEuler

(可以根据每个人的产出分开,按照人名增加三级缩进,也可以由 leader/mentor 汇总后统一PR)

Fedora

(可以根据每个人的产出分开,按照人名增加三级缩进,也可以由 leader/mentor 汇总后统一PR)

openKylin

openAnolis

RT-Thread

第3测试小队

1. 测试规划和策略

1.1 RuyiSDK

1.2 openEuler

2024.01.08 第三测试小队之前主导oerv的测试,2024.01.08吴洁老师回归oerv小队,第三测试小队主要测试内容为Ruyi项目,使用2周左右向吴洁老师进行了交接和支持。

1.3 基础设施建设

  • Jenkins CI 架构调整

20240117 日开始 GitHub 无法裸连,需要添加一个旁路网关。由于测试 QEMU Agent 搭建在容器中,则需要一个新容器搭建网关。实体测试机则在同网段添加实体网关。远程测试机使用 TCP 模式也出现无法稳定连接 Jenkins CI 的情况,因此将主页转移到国内服务器。

                                           +---------+
+-------------------+                   +--| browser |
| main server       |      GuangZhou    |  +---------+
|    +------------+ |   +------------+  |  +--------+
|  +-| Jenkins CI ======= web server |<-+->| github |
|  | +------------+ |   +------------+  |  +--------+
|  |    +---------+ |                   |  +------------------------+
|  +----+ Agent 0 | |                   |  |   +------------------+ |
|  |    +---------+ |                   |  | +-+ External Agent 1 | |
|  |    +---------+ |                   |  | | +------------------+ |
|  +----+ Agent 1 | |                   |  | | +------------------+ |
|  |    +---------+ |                   |  | +-+ External Agent 2 | |
| ...       ...     |                   +--+ | +------------------+ |
|  |    +---------+ |                      |...        ...          |
|  +----+ Agent N | |                      | | +------------------+ |
|  |    +---------+ |                      | +-+ External Agent N | |
|  |    +---------+ |                      | | +------------------+ |
|  +----+ Gateway | |                      | | +---------+          |
|       +---------+ |                      | +-+ Gateway |          |
+-------------------+                      |   +---------+          |
                                           +------------------------+
  • 山大 SG2042 服务器网络接入
    • 搭建 Tailscale DERP 中继节点,优化国内连接延迟
    • 尝试解决 Share out machine 无法使用自建 DERP 节点的问题
    • 记录 文档

2. 测试

2.1 RuyiSDK 测试

测试中,20240128对v0.4 Beta版本开始快速测试,部分缺陷修复后,20240130对v0.4版本开始正式测试

2.2 openEuler RISC-V 24.03 测试准备和 23.09 独立版本测试

2024.01.08 第三测试小队之前主导oerv的测试,2024.01.08吴洁老师回归oerv小队,第三测试小队主要测试内容为Ruyi项目,使用2周时间向吴杰老师进行了交接和支持。

  • oERV 24.03 测试调研工作

    • mmtest on SG2042 测试/摸底工作
      • SG2042 上能跑通,但出现了计划外的硬件问题(PCI-E Switch 风扇故障),更换了桥片风扇后继续进行测试
      • 测试 log 见 mmtests
      • 结果分析见:week1
      • mmtest 会拉起 LTP 进行测试,有重叠部分
      • 安装脚本更新:commit
    • 测试策略更新:PR
    • 测试结果分析
  • 修包工作:iozone spec 添加 riscv64 支持 !PR (已合入)

  • 调查 oERV perf top SIGSEGV 问题,并提交 core dump 结果:I8TLYZ

  • 对openEuler RISC-V 23.09 独立版本Mugen失败测试用例结果进行了分析,将分析结果提交了issue

测试用例名 测试用例 状态 原因 行动
freeipmi oe_test_service_ipmiseld fail 服务无法启动 I8U0BE
os-basic oe_test_power_powertop2tuned_optimize fail Powertop版本不兼容 I8U0JM
oe_test_ar x86 fail 未预装ar I8U0LF
oe_test_aureport x86 fail 未预装auditd I8U0MM
oe_test_envsubst fail 未预装envsubst I8U0OK
oe_test_glibc x86 fail 未预装gcc I8S53J
oe_test_c_stat x86 fail 未预装gcc I8S53J
oe_test_pcre_use x86 fail 未预装gcc I8S53J
oe_test_libunistring x86 fail 未预装gcc I8S53J
oe_test_cairo x86 fail 未预装gcc I8S53J
oe_test_libidn fail 未安装gcc I8S53J
kpatch oe_test_service_kpatch fail 软件源内没有kpatch I8U0NB
amanda oe_test_amanda_amcheck fail /usr/bin/gettext: No such file or directory I8RX4Z
clevis oe_test_install_clevis fail 密钥不可用 I8S2GB
oe_test_high_nbde fail 软件源没有包cryptsetup-reencrypt I8S2JX
oe_test_tang_encrypt x86 fail 无法连接至目标端口 I8S31S
oe_test_service_clevis-luks-askpass x86 fail 测试用例编写错误? I8S30G
pywbem_0.12.4 oe_test_pywbem_base_mof_compiler_01 fail 连接失败 I8VSD0
oe_test_pywbem_base_mof_compiler_02 fail 连接失败 I8VSD0
wsmancli oe_test_wsmancli_wseventmgr_02 fail 网络原因无法下载对应测试文件 I8VSDM
oe_test_wsmancli_wseventmgr_01 fail 网络原因无法下载对应测试文件 I8VSDM
oe_test_wsmancli_wsman_06 fail 连接smash/ipmi时超时 I8VSDM
oe_test_wsmancli_wsman_07 fail 连接网络时超时 I8VSDM
oe_test_wsmancli_wsman_05 fail 连接网络时超时 I8VSDM
oe_test_wsmancli_wsman_02 fail 缺少对应docker I8VSDM
hbase oe_test_service_hbase-regionserver fail 没有包hbase,hadoop-3.1-hdfs,hadoop-3.1-mapreduce,hadoop-3.1-yarn I8VS5N
oe_test_service_hbase-rest fail 没有包hbase,hadoop-3.1-hdfs,hadoop-3.1-mapreduce,hadoop-3.1-yarn I8VS5N
oe_test_service_hbase-thrift fail 没有包hbase,hadoop-3.1-hdfs,hadoop-3.1-mapreduce,hadoop-3.1-yarn I8VS5N
  • 截止目前为止将当前的测试分析结果整合进主文档 pr#11

  • 将剩余的仅RV失败的测试用例提交至riscv issue #I8XL9B

  • 其他 mugen 测试失败issue

issue 链接 issue 标题
I8T734 smoke-basic-os 测试套 oe_test_CPUinfo_001 用例在 openEuler 2309 RISC-V 测试失败
I8T7KM smoke-basic-os 测试套 oe_test_skopeo 用例在 openEuler 2309 RISC-V 测试失败
I8TABT libreswan 测试套 oe_test_libreswan_ipsec_setup 和 oe_test_libreswan_ipsec_systemctl 用例在 openEuler 2309 RISC-V 测试失败
I8T97I 2309 版本 mugen 测试 vdo 测试套部分用例超时
I8TIK4 smoke-basic-os 测试套 oe_test_MEMinfo_001 用例在 openEuler 2309 RISC-V 测试失败
I8TLYZ smoke-basic-os 测试套 oe_test_perf_top_01 用例在 openEuler 2309 RISC-V QEMU 环境测试失败
I8TM3K smoke-basic-os 测试套 oe_test_yumgroup_001 用例在 openEuler 2309 RISC-V 测试失败
I8TMKQ iSulad 测试套部分用例使用的 docker 镜像只支持 x86_64 和 aarch64 架构
I8TMQ8 iSulad 测试套部分用例在 openEuler 2309 RISC-V 测试失败
I8TNLH audit 测试套部分用例在 openEuler 2309 RISC-V 异常超时
I8TNQ4 kernel 测试套 oe_test_kernel_cmd_01 用例在 openEuler 2309 测试失败
I8TO6D kernel 测试套 oe_test_hinic 用例在 openEuler 2309 RISC-V 测试失败
I8TO66 kernel 测试套 oe_test_hinic 用例期望的内核模块名与实际不符
I8TPY5 kernel 测试套 oe_test_nbd 用例在 openEuler 2309 有概率测试失败

2.3 独立测试

  • RepChain技术支持

  • SG2042 / Milk-V Pioneer InferGLM / ChatGLM 测试

    • InferLLM 带 Vector 加速
    • ChatGLM.cpp 不带 Vector 加速
    • 产出文档 InferLLM

3. 自动化测试工具开发

3.1 Ruyi Mugen 开发

  • mugen-ruyi 测试仓库从 Gitee 迁移到 GitHub ruyi-mugen ,同时清除上游无用测试套及其历史,缩减仓库体积。 Jenkins CI 在已有环境的基础上做 ruyi-mugen 仓库的 GitHub 集成。

  • ruyi-mugen 增加测试用例

    用例名 变更
    ruyi_test_common 增加 ~/.local/state 目录测试
    ruyi_test_xdg 增加 $XDG_STATE_DIR 环境变量测试
    ruyi_test_news 新增用例, news 命令测试
    ruyi_test_device 新增用例, device 命令测试
  • ruyi-mugen 测试用例 ruyi_test_device 更新

    commit 标题 commit 链接
    Update Jenkinsfile ea9e2c5
    Run test with sudo 33d3bfa
    Run dep_install with sudo 8e32995
    Delete huawei oErv 2309 support 829051f
    chown log files b0d2de4
    Update README 842871d
    Update oe_test_ruyi_cmake_ninja execute time to 60m 0a3d6e1
    Update ruyi test version and remove oe from test names 22f7d72
    Merge pull request #1 from KotorinMinami/ruyisdk 6f656fb
    Change device test tmp dir d984e0d
    Fix device test b845e1f
    Check ruyi install failure message 7638bb4
    Backup device logs 1fd449f
    Update device test timeout to 1440 min 56dcce6
    Add ruyi unzip dependency 916c6ba
    Update jenkins testing time to 24 hrs 1400e23
    Clean after each image test c5c70c5
    Add recursion_run check point 5b48c59
    Update device log tarball name b303609
    Check parameter length 8023e22
    Fix source libs 9bdd1e6
    Fix log files a02b4ec
    Update test admin af89fae
    Update ruyi bd64974
    Retry when download failed a38f1f3
    Redirect full log to tmp output file 98ae4d7

3.2 Ruyi openQA 开发

3.2.1 autotest

搭建自动化测试框架

autotest -f <config.toml> -c <case.js>

  • 模块

    • cli 模块 (提供命令行工具入口进程)

      • Feature
        • autotest: 提供命令行入口
    • console 模块 (负责和机器终端交互)

      • ssh
        • Feature
          • 支持 private_key, password 登录
          • 在全局 shell session 交互式运行脚本
          • 在单独 shell session 运行命令
          • 等待 ssh tty 输出匹配文本
      • serial
        • Feature
          • 支持 password 登录
          • 在全局 session 交互式运行脚本
          • 等待 tty 输出匹配文本
          • 捕获所有串口输出文本,包括系统 boot 阶段 输出参考
      • vnc
        • Feature
          • 支持 vnc 连接,密码登录
          • 提供密码登录
    • binding 模块 (负责测试脚本对接)

      • 语言支持
        • js (基于 quickjs 完成 JS 测试脚本运行)
      • api
        • 通用
        • sleep: 为脚本提供统一的 sleep 函数实现
        • get_env: 获取 config.toml 定义的环境变量
        • assert_script_run: 根据配置文件自动选择 console, serial 优先于 ssh. 根据命令返回值判断,如果不为 0, 则会 panic
        • script_run: 同上,只运行命令,不处理返回值
        • write_string: 同上,只输入一段字符串,不包含控制字符
        • ssh
        • ssh_assert_script_run_global: 调用 ssh 在主 session 执行脚本,断言命令返回值
        • ssh_script_run_seperate: 调用 ssh 在分离 session 执行脚本,其他同上
        • ssh_script_run_global: 调用 ssh 在主 session 执行脚本,只确保执行完成,不超时
        • ssh_write_string: 调用 ssh 在主 session 写入文本
        • serial
        • serial_assert_script_run_global: 调用 serial 在主 session 执行脚本
        • serial_script_run_global: 调用 serial 在主 session 执行脚本,断言命令返回值
        • serial_write_string: 调用 serial 在主 session 执行脚本
        • vnc
        • assert_screen: 调用 vnc 断言屏幕
        • check_screen: 调用 vnc 比较屏幕
        • mouse_click: 调用 vnc 鼠标点击
        • mouse_move: 调用 vnc 移动鼠标
        • mouse_hide: 调用 vnc 隐藏鼠标
    • t-vnc 模块 (fork 自 whitequark/rust-vnc, MIT)

      • 解决 windows 无法编译
    • config 模块 (提供测试,命令行 需要的通用配置文件解析)

    • util 模块 (工具库)

    • ci (github action)

      • test.yaml: 提交代码或 pr 时运行 cargo check, test, fmt, clippy, build(linux)
      • build.yaml: 自动分发 linux, macos, windows 三平台二进制文件。下载地址
  • 测试用例

3.3 openEuler Mugen 开发

  • mugen pr
pr 链接 pr 标题
2313 smoke-basic-os: oe_test_CPUinfo_001 failed on riscv64
2314 smoke-basic-os: oe_test_skopeo failed on riscv64
2319 libreswan: oe_test_libreswan_ipsec_systemctl and oe_test_libreswan_ipsec_setup failed on riscv64
2325 smoke-basic-os: oe_test_MEMinfo_001 failed on riscv64
2330 kernel: oe_test_nbd add sleep time
2331 kernel: oe_test_kernel_cmd_01 test failed on openEuler 2309
  • mugen docs

mugen 测试详细文档 《 mugen 原理和扩展应用》 文档

  • 进行mugen的样例分析,commit

  • 对分析得到的问题进行issue的提交, include:

    • pyyaml解析问题:I8U4TG

    • 输出与预期匹配问题:I8U4Z0

    • 软件安装后仍command not found问题:I8U4S6

4. 技术调研

4.1 RISC-V 开发板对操作系统的支持情况调研

从基础7种开发板,扩展为72种开发板,24种操作系统。

4.2 RISC-V IDE 调研(未进行技术分享内容)

4.3 进行DynamoRIO的学习,尝试跑通RISC-V上的用例

4.4 其他RuyiSDK发布的调研

5. 其他项目

5.1 qtrvsim

5.2 SAIL

任务分配,继续2024.11月-12月的基础继续进行技术储备,详见之前的PLCT技术分享

6. 职工

6.1 蔡玮霖

6.1.1 RuyiSDK
  • 完成调研任务《基于 Eclipse 以任一个 demo 走通 RUST RISC-V 交叉编译和运行过程》,产出调研文档《Eclipse Rust 交叉编译环境的配置和简单调试的实现》 任务页面 文档

  • 提交 Eclipse Rust 调研报告

    commit 标题 commit 链接
    Add rust on eclipse investigation 898c108
  • 完成 SOC 系统集成调研条目 18 条,关联 GD32VF 系列、 CH32V 系列、 ESP32-C3 系列、INTEL Nios V 系列和 Renode 模拟器,产出调研文档 mcu_invest.md

  • mugen-ruyi 测试仓库从 Gitee 迁移到 GitHub ruyi-mugen ,同时清除上游无用测试套及其历史,缩减仓库体积。 Jenkins CI 在已有环境的基础上做 ruyi-mugen 仓库的 GitHub 集成。

  • ruyi-mugen 增加测试用例

    用例名 变更
    ruyi_test_common 增加 ~/.local/state 目录测试
    ruyi_test_xdg 增加 $XDG_STATE_DIR 环境变量测试
    ruyi_test_news 新增用例, news 命令测试
    ruyi_test_device 新增用例, device 命令测试
  • ruyi-mugen 测试用例 ruyi_test_device 更新

    commit 标题 commit 链接
    Update Jenkinsfile ea9e2c5
    Run test with sudo 33d3bfa
    Run dep_install with sudo 8e32995
    Delete huawei oErv 2309 support 829051f
    chown log files b0d2de4
    Update README 842871d
    Update oe_test_ruyi_cmake_ninja execute time to 60m 0a3d6e1
    Update ruyi test version and remove oe from test names 22f7d72
    Merge pull request #1 from KotorinMinami/ruyisdk 6f656fb
    Change device test tmp dir d984e0d
    Fix device test b845e1f
    Check ruyi install failure message 7638bb4
    Backup device logs 1fd449f
    Update device test timeout to 1440 min 56dcce6
    Add ruyi unzip dependency 916c6ba
    Update jenkins testing time to 24 hrs 1400e23
    Clean after each image test c5c70c5
    Add recursion_run check point 5b48c59
    Update device log tarball name b303609
    Check parameter length 8023e22
    Fix source libs 9bdd1e6
    Fix log files a02b4ec
    Update test admin af89fae
    Update ruyi bd64974
    Retry when download failed a38f1f3
    Redirect full log to tmp output file 98ae4d7
  • RUYI 包管理 v0.3 测试,提交 x86_64 Fedora 38 、 x86_64 Ubuntu 22.04 LTS 、 x86_64 openEuler 23.09 、 riscv64 Container RevyOS 20231210 、 riscv64 openEuler 23.09 五个环境的测试结果

    pr 标题 pr 链接
    添加 ruyi-mugen 测试日志和报告 !2
    添加自动化测试相关视频 !5
  • RUYI 包管理 mugen 测试失败用例提交 issue

    issue 标题 issue 链接
    20240116 版本 self uninstall --purge 没有删除 state/ruyi 目录 #45
    镜像下载是否需要支持断点续传 #64
  • RUYI 包管理文档添加,更新 ruyisdk/docs 仓库和 ruyisdk/doc4test 仓库

    pr 标题 pr 链接
    Add new feature for v0.3 release #31
    commit 标题 commit 链接
    Add 20240116 new feature c443cf7
    Add 20240116 page to vitepress config b3da86d
    Add v0.3 note 26ec191
    Add github release note 1c0311b
    Add 20240116's new feature 2776153
    Add sudo note 64dc1ac
6.1.2 技术分享
  • 1 月 24 日周三做技术分享《基于 Eclipse 介绍 Rust 在 IDE 上的交叉编译和调试》,提纲PPT
6.1.3 Jenkins CI 架构调整

17 日开始 GitHub 无法裸连,需要添加一个旁路网关。由于测试 QEMU Agent 搭建在容器中,则需要一个新容器搭建网关。实体测试机则在同网段添加实体网关。

另外远程测试机使用 TCP 模式也出现无法稳定连接 Jenkins CI 的情况,故将主页转移到境内。

                                           +---------+
+-------------------+                   +--| browser |
| main server       |      GuangZhou    |  +---------+
|    +------------+ |   +------------+  |  +--------+
|  +-| Jenkins CI ======= web server |<-+->| github |
|  | +------------+ |   +------------+  |  +--------+
|  |    +---------+ |                   |  +------------------------+
|  +----+ Agent 0 | |                   |  |   +------------------+ |
|  |    +---------+ |                   |  | +-+ External Agent 1 | |
|  |    +---------+ |                   |  | | +------------------+ |
|  +----+ Agent 1 | |                   |  | | +------------------+ |
|  |    +---------+ |                   |  | +-+ External Agent 2 | |
| ...       ...     |                   +--+ | +------------------+ |
|  |    +---------+ |                      |...        ...          |
|  +----+ Agent N | |                      | | +------------------+ |
|  |    +---------+ |                      | +-+ External Agent N | |
|  |    +---------+ |                      | | +------------------+ |
|  +----+ Gateway | |                      | | +---------+          |
|       +---------+ |                      | +-+ Gateway |          |
+-------------------+                      |   +---------+          |
                                           +------------------------+
6.1.4 oErv
  • mugen issue
issue 链接 issue 标题
I8T734 smoke-basic-os 测试套 oe_test_CPUinfo_001 用例在 openEuler 2309 RISC-V 测试失败
I8T7KM smoke-basic-os 测试套 oe_test_skopeo 用例在 openEuler 2309 RISC-V 测试失败
I8TABT libreswan 测试套 oe_test_libreswan_ipsec_setup 和 oe_test_libreswan_ipsec_systemctl 用例在 openEuler 2309 RISC-V 测试失败
I8T97I 2309 版本 mugen 测试 vdo 测试套部分用例超时
I8TIK4 smoke-basic-os 测试套 oe_test_MEMinfo_001 用例在 openEuler 2309 RISC-V 测试失败
I8TLYZ smoke-basic-os 测试套 oe_test_perf_top_01 用例在 openEuler 2309 RISC-V QEMU 环境测试失败
I8TM3K smoke-basic-os 测试套 oe_test_yumgroup_001 用例在 openEuler 2309 RISC-V 测试失败
I8TMKQ iSulad 测试套部分用例使用的 docker 镜像只支持 x86_64 和 aarch64 架构
I8TMQ8 iSulad 测试套部分用例在 openEuler 2309 RISC-V 测试失败
I8TNLH audit 测试套部分用例在 openEuler 2309 RISC-V 异常超时
I8TNQ4 kernel 测试套 oe_test_kernel_cmd_01 用例在 openEuler 2309 测试失败
I8TO6D kernel 测试套 oe_test_hinic 用例在 openEuler 2309 RISC-V 测试失败
I8TO66 kernel 测试套 oe_test_hinic 用例期望的内核模块名与实际不符
I8TPY5 kernel 测试套 oe_test_nbd 用例在 openEuler 2309 有概率测试失败
  • mugen pr
pr 链接 pr 标题
2313 smoke-basic-os: oe_test_CPUinfo_001 failed on riscv64
2314 smoke-basic-os: oe_test_skopeo failed on riscv64
2319 libreswan: oe_test_libreswan_ipsec_systemctl and oe_test_libreswan_ipsec_setup failed on riscv64
2325 smoke-basic-os: oe_test_MEMinfo_001 failed on riscv64
2330 kernel: oe_test_nbd add sleep time
2331 kernel: oe_test_kernel_cmd_01 test failed on openEuler 2309
  • mugen docs

mugen 测试详细文档 《 mugen 原理和扩展应用》 文档

6.2 郑景坤

6.2.1 RuyiSDK
6.2.2 RuyiSDK 测试

LPi4A:

  • openEuler
    • mugen 自动化测试 Gitee
    • 镜像刷写测试 Gitee

Milk-V Pioneer / SG2042

  • openEuler
    • mugen 自动化测试 Gitee
    • 镜像刷写测试 Gitee
  • Fedora
    • mugen 自动化测试 Gitee

Milk-V Duo

更新刷写文档:commit

  • 缺陷列表
Issue 详细信息
RISC-V 开发板系统镜像安装工具,增加 4 款 RISC-V 开发板 确定 D1 两款开发板硬件 & DTB 情况:硬件略有不同,系统已兼容两种开发板,建议手动修改 GRUB 启动项
Device provision: warn users about adding udev rules for LPi4A fastboot 需要特权或配置 udev 规则,已修复
emulator/qemu-system-riscv-upstream: missing libfdt.so.1 on Ubuntu 20.04.3 LTS 打包问题,已修复
Device provision: link is dead? package index 问题,已修复
6.2.2 openEuler RISC-V
  • oERV 24.03 测试调研工作
    • mmtest on SG2042 测试/摸底工作
      • SG2042 上能跑通,但出现了计划外的硬件问题(PCI-E Switch 风扇故障),更换了桥片风扇后继续进行测试
      • 测试 log 见 mmtests
      • 结果分析见:week1
      • mmtest 会拉起 LTP 进行测试,有重叠部分
      • 安装脚本更新:commit
    • 测试策略更新:PR
    • 测试结果分析
  • 修包工作:iozone spec 添加 riscv64 支持 !PR (已合入)
  • 调查 oERV perf top SIGSEGV 问题,并提交 core dump 结果:I8TLYZ
6.2.3 其他工作

6.3 朱旭昌

6.3.1 RuyiSDK
6.3.2 openEuler
  • 对Mugen仓库失败测试用例结果进行了分析,将分析结果提交了issue
测试用例名 测试用例 状态 原因 行动
freeipmi oe_test_service_ipmiseld fail 服务无法启动 I8U0BE
os-basic oe_test_power_powertop2tuned_optimize fail Powertop版本不兼容 I8U0JM
oe_test_ar x86 fail 未预装ar I8U0LF
oe_test_aureport x86 fail 未预装auditd I8U0MM
oe_test_envsubst fail 未预装envsubst I8U0OK
oe_test_glibc x86 fail 未预装gcc I8S53J
oe_test_c_stat x86 fail 未预装gcc I8S53J
oe_test_pcre_use x86 fail 未预装gcc I8S53J
oe_test_libunistring x86 fail 未预装gcc I8S53J
oe_test_cairo x86 fail 未预装gcc I8S53J
oe_test_libidn fail 未安装gcc I8S53J
kpatch oe_test_service_kpatch fail 软件源内没有kpatch I8U0NB
amanda oe_test_amanda_amcheck fail /usr/bin/gettext: No such file or directory I8RX4Z
clevis oe_test_install_clevis fail 密钥不可用 I8S2GB
oe_test_high_nbde fail 软件源没有包cryptsetup-reencrypt I8S2JX
oe_test_tang_encrypt x86 fail 无法连接至目标端口 I8S31S
oe_test_service_clevis-luks-askpass x86 fail 测试用例编写错误? I8S30G
pywbem_0.12.4 oe_test_pywbem_base_mof_compiler_01 fail 连接失败 I8VSD0
oe_test_pywbem_base_mof_compiler_02 fail 连接失败 I8VSD0
wsmancli oe_test_wsmancli_wseventmgr_02 fail 网络原因无法下载对应测试文件 I8VSDM
oe_test_wsmancli_wseventmgr_01 fail 网络原因无法下载对应测试文件 I8VSDM
oe_test_wsmancli_wsman_06 fail 连接smash/ipmi时超时 I8VSDM
oe_test_wsmancli_wsman_07 fail 连接网络时超时 I8VSDM
oe_test_wsmancli_wsman_05 fail 连接网络时超时 I8VSDM
oe_test_wsmancli_wsman_02 fail 缺少对应docker I8VSDM
hbase oe_test_service_hbase-regionserver fail 没有包hbase,hadoop-3.1-hdfs,hadoop-3.1-mapreduce,hadoop-3.1-yarn I8VS5N
oe_test_service_hbase-rest fail 没有包hbase,hadoop-3.1-hdfs,hadoop-3.1-mapreduce,hadoop-3.1-yarn I8VS5N
oe_test_service_hbase-thrift fail 没有包hbase,hadoop-3.1-hdfs,hadoop-3.1-mapreduce,hadoop-3.1-yarn I8VS5N

SG2042 Upstream

Duo Upstream

RVI Collaborations

Jie Wu

参考链接