Commit Graph

95 Commits

Author SHA1 Message Date
LoGin efd974ab32
ci: fix mm test (#1578)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-30 09:12:20 +08:00
LoGin e8fc8b3af9
ci: 添加rust-slabmalloc的主机测试工作流和属性测试 (#1577)
Build multiversion docs / build-multiversion (push) Waiting to run Details
Sync to CNB.cool / sync (push) Waiting to run Details
Test MM (Host) / Build slab_stress (host) (push) Waiting to run Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 128) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 255) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 256) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 64) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 128) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 255) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 256) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 64) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 128) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 255) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 256) (push) Blocked by required conditions Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 64) (push) Blocked by required conditions Details
Test x86_64 / Integration Test (push) Waiting to run Details
- 新增GitHub Actions工作流,用于在主机上构建并运行slab_stress压力测试
- 添加proptest依赖,实现随机分配/释放序列的属性测试
- 新增slab_stress二进制工具,支持Valgrind内存检查
- 完善测试文档,说明主机测试的使用方法
- 修复页面状态迁移测试,确保Full/Partial/Empty列表转换正确

Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-30 08:37:47 +08:00
LoGin cb33f73ce0
ci: Add checkout step in nightly build workflow (#1477)
Build multiversion docs / build-multiversion (push) Waiting to run Details
Sync to CNB.cool / sync (push) Waiting to run Details
Test x86_64 / Integration Test (push) Waiting to run Details
- Introduced a step to checkout the DragonOS code in the nightly build workflow, ensuring the latest code is available for the build process.
2025-12-15 17:39:09 +08:00
LoGin 186b47c411
Feat add nightly build workflow (#1476)
* ci: Remove unused COMMIT_SHORT variable from nightly build workflow

- Eliminated the COMMIT_SHORT variable from the nightly build workflow as it was not being utilized, streamlining the script.

* ci: Update nightly build workflow to conditionally run build and publish jobs

- Added conditions to the build and publish jobs in the nightly build workflow to ensure they only execute for specific events or when the repository matches 'DragonOS-Community/DragonOS'. This enhances control over workflow execution.
2025-12-15 16:43:35 +08:00
LoGin c87e275610
ci: Restore HOME environment variable in nightly build workflow (#1475)
- Reintroduced the HOME environment variable in the nightly build workflow to ensure proper directory context for the build process.
2025-12-15 16:19:22 +08:00
LoGin f1d384a7ac
ci: Update nightly build workflow to prepare directory for artifacts (#1474)
- Added a step to create a 'bin' directory in the nightly build workflow to organize build artifacts more effectively.
2025-12-15 15:49:15 +08:00
LoGin 6211826a7f
ci: Refactor nightly build workflow to separate build and publish steps (#1473)
- Updated the nightly build workflow to include distinct build and publish jobs.
- Added steps to compress build artifacts into a tarball and upload them for later use.
- Modified the Dockerfile to copy the compressed artifacts instead of individual files, enhancing efficiency and organization.
2025-12-15 15:19:42 +08:00
LoGin 0d0c78fee0
ci: Update nightly build workflow with new environment variables (#1472)
- Added HOME, RUSTUP_DIST_SERVER, and RUSTUP_UPDATE_ROOT environment variables to the nightly build workflow to enhance Rust toolchain management and configuration.
2025-12-15 14:58:06 +08:00
LoGin b5190986d4
ci: Update nightly build workflow to use containerized environment and streamline build steps (#1471) 2025-12-15 14:42:05 +08:00
LoGin 6e7deb9a0e
ci: Remove HOME environment variable from nightly build workflow (#1470) 2025-12-15 14:29:50 +08:00
LoGin 200f6fdc35
ci: 新增夜间构建与发布工作流 (#1469)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-15 14:24:58 +08:00
Samuel Dai 92c81deea3
feat(dev): Add devcontainer support base on cnb image (#1449)
* feat(dev): add devcontainer support base on cnb image, remove default installation of grub during disk creation

* fix(ci): Change source to github from default mirror server
2025-12-11 11:42:52 +08:00
LoGin f2cca87d2b
refactor(wait_queue): 重构等待队列机制,引入Waiter/Waker模式 (#1452)
* refactor(wait_queue): 重构等待队列机制,引入Waiter/Waker模式

- 重构WaitQueue,引入Waiter/Waker模式避免唤醒丢失
- 统一等待接口,提供wait_event_interruptible/uninterruptible方法
- 重构futex、epoll、eventfd、semaphore、completion等模块使用新等待队列
- 优化进程等待子进程退出逻辑,使用新等待队列接口
- 添加等待队列设计文档说明新机制

Signed-off-by: longjin <longjin@DragonOS.org>

* feat: 添加SKIP_GRUB选项以支持在CI或无图形界面环境中跳过GRUB安装

Signed-off-by: longjin <longjin@DragonOS.org>

* fix: 修复信号处理和futex唤醒的错误码

- 在sys_rt_sigtimedwait中消费信号后及时刷新HAS_PENDING_SIGNAL状态,避免后续等待路
径误判
- 将futex可中断唤醒的错误码从ERESTARTSYS改为EINTR,以符合Linux语义

Signed-off-by: longjin <longjin@DragonOS.org>

* ci: Update Docker image source in test-x86 workflow

- Changed the Docker image source from `docker.cnb.cool/dragonos-community/dragonos/dragonos-dev:v1.19` to `dragonos/dragonos-dev:v1.19` for consistency in CI workflows.

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-10 14:04:05 +08:00
Samuel Dai c989c6b13b
feat(ci): Bump build container to v1.19 and CI fixes (#1442)
Build multiversion docs / build-multiversion (push) Waiting to run Details
Sync to CNB.cool / sync (push) Waiting to run Details
Test x86_64 / Integration Test (push) Waiting to run Details
Publish Docker images / docker (push) Has been cancelled Details
* Bump build container to v1.18 and CI fixes

Add --ci install mode and APT_FLAG (--no-install-recommends) to
bootstrap.sh, skip grub/docs on CI, and remove legacy RUST_VERSION_OLD
install steps. Use --no-install-recommends in Dockerfile, adjust build
scripts and BUILD_CONTAINER_VERSION, and apply minor whitespace and echo
message updates.

* chore: 更新DADK版本至v0.5.1并调整构建脚本

- 将DADK安装版本从v0.5.0升级至v0.5.1
- 调整bootstrap.sh中install_python_pkg的调用位置,确保在CI和非CI环境下都能正确执行
- 更新DragonReach的git修订版本号

Signed-off-by: longjin <longjin@DragonOS.org>

* ci: 更新CI工作流中的Docker镜像源

- 将所有工作流中的容器镜像源从
``dragonos/dragonos-dev:v1.18``更改为
``docker.cnb.cool/dragonos-community/dragonos/dragonos-dev:v1.18``

Signed-off-by: longjin <longjin@DragonOS.org>

* ci: Bump build container to v1.19 and add riscv64 libc

Add linux-libc-dev-riscv64-cross to the Ubuntu/Debian bootstrap install
list to provide riscv64 cross libc headers for cross-compilation.

* ci: 更新CI工作流中的Docker镜像仓库地址

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: longjin <longjin@DragonOS.org>
2025-12-09 13:59:57 +08:00
LoGin 264b36b4f8
ci: 优化Claude代码审查工作流的配置和提示词 (#1447)
- 启用进度跟踪功能
- 扩展Claude参数以支持更多工具
- 重构提示词结构,明确代码审查的五个重点领域
- 移除重复的注释更新指令,简化工作流逻辑

Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-08 23:23:08 +08:00
LoGin d47501b254
docs: 更新代码审查工作流中的反馈说明 (#1446)
Build multiversion docs / build-multiversion (push) Waiting to run Details
Sync to CNB.cool / sync (push) Waiting to run Details
Test x86_64 / Integration Test (push) Waiting to run Details
- 明确使用特定工具进行内联评论和状态更新
- 提供单行和多行评论的具体操作指导
- 简化PR状态总结的要求

Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-08 17:21:03 +08:00
LoGin c7c6757e52
fix: fix claude cr (#1445)
Build multiversion docs / build-multiversion (push) Waiting to run Details
Sync to CNB.cool / sync (push) Waiting to run Details
Test x86_64 / Integration Test (push) Waiting to run Details
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-08 11:41:05 +08:00
LoGin 67643974ed
ci: add auto CR by claude code (#1440)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-05 17:25:57 +08:00
LoGin f9e19e55d8
ci: fix claude action (#1438)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-05 15:40:31 +08:00
LoGin 4d43c2250c
ci: fix claude action (#1437)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-05 15:27:33 +08:00
LoGin fe5fd4fad7
ci: fix claude action (#1436)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-05 14:32:55 +08:00
LoGin 83707759b4
ci: add claude review (#1435)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-05 14:12:01 +08:00
LoGin 1e6ccecc17
fix(ci): 修复CI流程中测试失败但返回成功状态的问题 (#1403)
- 移除syscall测试的continue-on-error配置,确保测试失败时CI流程正确失败
- 优化上传步骤的条件判断,使用always()确保上传步骤始终执行
- 改进dry-run模式输出,添加verbose选项显示详细信息
- 修复API密钥检查逻辑,在密钥不存在时使用dry-run模式继续执行

Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-24 13:32:02 +08:00
LoGin 690602368c
ci: 更新构建容器版本至v1.17 (#1399)
将容器内的镜像源改为crates.io

Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-22 00:43:23 +08:00
LoGin d93301b512
feat: 实现基于异常表的安全用户空间内存访问机制 (#1383)
* feat: 实现基于异常表的安全用户空间内存访问机制

- 新增异常表机制,在系统调用中安全处理用户空间内存访问错误
- 实现带异常表保护的memcpy和memset函数,防止无效用户地址导致内核在内存拷贝处以及pagefault处理程序之间反复横跳
- 重构用户空间访问API,提供安全的UserBuffer包装类型
- 更新页错误处理程序,支持异常表修复路径
- 添加异常表测试程序,验证各种边界情况
- 更新内存管理文档,详细说明异常表设计原理和使用场景

Signed-off-by: longjin <longjin@DragonOS.org>

* chore: 更新应用黑名单配置

- 添加 test_ebpf_new, test_ebpf_tp 到黑名单,原因:aya上游发版问题导致CI失败

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-18 21:02:07 +08:00
LoGin 1596425060
ci: 升级构建容器版本至v1.16 (#1381)
- 更新所有CI工作流文件中的容器镜像版本
- 修改构建脚本中的容器版本引用
- 更新构建容器版本配置文件
- 移除fork测试中的COWSegment测例

Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-18 00:27:02 +08:00
LoGin 0874383697
feat(ci): 添加测试结果上传功能并优化构建流程 (#1380)
- 新增测试结果解析和上传工具,支持多种测试框架格式
- 在CI工作流中添加测试结果上传步骤
- 引入磁盘节省模式,优化构建缓存管理
- 更新DADK版本要求至0.5.1

Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-17 22:01:13 +08:00
LoGin 8215106866
ci: 增强syscall测试监控脚本的健壮性 (#1364)
- 添加超时配置和进程自动检测机制
- 改进资源清理和错误处理逻辑
- 增加详细的诊断信息和进度报告
- 优化测试流程监控和超时处理

Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-12 15:31:15 +08:00
LoGin fbcc00ab39
chore: 将构建容器版本从v1.14升级到v1.15 (#1353)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-10 17:31:06 +08:00
黄铭涛 b74420f48e
feat(test): 增加系统启动后执行syscall集成测试的make命令并将其加入流水线中 (#1306)
* feat(test): 增加系统启动后执行syscall集成测试的make命令并将其加入流水线中
2025-10-09 22:34:51 +08:00
LoGin a8e4a826a4
feat(build, kernel): 添加内核版本信息生成与显示功能 (#1269)
添加了内核构建时自动生成版本信息的功能,包括版本号、构建时间、编译器信息、Git提交等。
在内核启动时打印版本信息,并可通过/proc/version文件查询。更新了about应用使用uname系统调用

Signed-off-by: longjin <longjin@DragonOS.org>
2025-08-28 13:16:31 +08:00
LoGin fd2f96dfbd
doc: 0.2.0 release log未被加入sphinix索引树的问题 (#1265)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-08-22 23:17:14 +08:00
LoGin 40e92db370
chore: Upgrade kernel toolchain to 250810 (#1257)
chore: 升级Rust工具链至nightly-2025-08-10

- 更新工作流容器版本至v1.14
- 升级Rust工具链至nightly-2025-08-10
- 更新多个依赖库版本(bitflags、gimli、itertools等)
- 修复代码格式和文档注释
- 优化内存对齐检查使用is_multiple_of()
- 改进错误处理和日志输出
- 移除过时的特性标记和代码

Signed-off-by: longjin <longjin@DragonOS.org>
2025-08-18 13:25:19 +08:00
LoGin 5ef0a83b59
ci: 优化文档翻译工作流配置 (#1222)
- 减少MAX_WORKERS从20降到5
- 更换OPENAI_MODEL为hunyuan-turbos-latest

Signed-off-by: longjin <longjin@DragonOS.org>
2025-06-29 17:27:35 +08:00
linfeng 723ac05719
feat: Update rbpf to mainline (#1209)
* feat: Update rbpf to mainline

Enable JIT compilation on x86 platform.

Signed-off-by: Godones <chenlinfeng25@outlook.com>

* fix: remove rbpf test

Signed-off-by: Godones <chenlinfeng25@outlook.com>

* fix: remove rbpf info

Signed-off-by: Godones <chenlinfeng25@outlook.com>

---------

Signed-off-by: Godones <chenlinfeng25@outlook.com>
2025-06-20 10:49:59 +08:00
LoGin ae987c6f9a
doc: Add Q&A docs (#1174)
* docs: 添加常见问题解答文档并更新工作流配置

- 新增questions目录及构建错误FAQ文档
- 更新文档翻译工作流触发分支为master和doc-*
- 优化PR创建时的提交信息格式

Signed-off-by: longjin <longjin@DragonOS.org>

* ci: 改进文档翻译工作流并添加失败处理

- 添加获取短SHA步骤用于PR标题
- 在翻译脚本中添加失败退出逻辑

Signed-off-by: longjin <longjin@DragonOS.org>

* docs: Translation update [b7b5ea2c] (#1173)

* Update translated documentation
---------

Co-authored-by: dragonosbot <bot@dragonos.org>

* 1

* 1

---------

Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dragonosbot <bot@dragonos.org>
2025-05-23 02:02:48 +08:00
LoGin 6242ecb2bd
ci: 添加文档翻译的GitHub Actions工作流 (#1171)
* ci: 添加文档翻译的GitHub Actions工作流

新增了用于自动翻译文档的GitHub Actions工作流

Signed-off-by: longjin <longjin@DragonOS.org>


---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-22 15:09:37 +08:00
chiichen fccfa6f7ff
feat: 支持动态链接 (#910)
* feat: 支持动态链接

Authored-By: chiichen <chiichen@qq.com>
Co-authored-by: longjin <longjin@DragonOS.org>
Signed-off-by: longjin <longjin@DragonOS.org>

* build: 更新构建容器版本至v1.12并指定DADK安装版本

- 将BUILD_CONTAINER_VERSION从v1.11升级到v1.12
- 修改bootstrap.sh和user/Makefile中DADK的安装方式,明确指定版本v0.4.0

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@dragonos.org>
Co-authored-by: chiichen <chiichen@qq.com>
Co-authored-by: longjin <longjin@dragonos.org>
Co-authored-by: Jomo <xuzihao@dragonos.org>
Co-authored-by: MemoryShore <1353318529@qq.com>
2025-05-19 14:29:55 +08:00
LoGin 37aa18e09f
ci: 限制Docker镜像推送和CNB.cool同步任务仅在主仓库执行 (#1150)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-07 13:20:06 +08:00
LoGin 187a501f4b
feat: 添加同步到CNB.cool的GitHub Actions工作流 (#1136)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-04-22 21:01:35 +08:00
LoGin 2c81a9760e
fix: la64 ci (#1134)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-04-22 01:35:30 +08:00
LoGin e80796eb82
feat: la64 boot (#1132)
* la64能够进入到kernel_main
* ci: 添加为ubuntu编译qemu-loongarch64的脚本
* feat: la64能输出hello world
* la64 安装gcc && 配置github ci
* chore: 更新CI工作流和构建脚本中的Docker镜像版本至v1.10

Signed-off-by: longjin <longjin@DragonOS.org>
2025-04-20 18:51:45 +08:00
LoGin 03015e2559
feat: 支持在rv64下,运行rust编写的helloworld程序 (#1125)
* 添加 riscv_rust_init 这个helloworld程序

Signed-off-by: longjin <longjin@DragonOS.org>

* feat: 支持在riscv下启动rust编写的hello world程序

TODO: 支持sys ppoll

Signed-off-by: longjin <longjin@DragonOS.org>

* chore: 更新构建容器版本至v1.9

Signed-off-by: longjin <longjin@DragonOS.org>

* 1

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-30 01:28:41 +08:00
LoGin c09af909c5
chore: 修复编译镜像未能正确安装工具链的问题 (#1071)
Signed-off-by: longjin <longjin@DragonOS.org>
2024-12-07 16:37:15 +08:00
LoGin e8b1db320d
chore: Bump dadk to 0.2.0 (#1058)
# 概述

把dadk版本升级到0.2.0

dadk 0.2.0能够提升编译速度,并且支持使用dadk对内核进行profiling。
新版dadk的文档: https://docs.dragonos.org.cn/p/dadk/

# 注意

这是一个breaking change,升级后,将无法使用dadk 0.2.0去编译旧的项目。如有需要,请手动降级到dadk 0.1.11:
```shell
cargo install --git  https://git.mirrors.dragonos.org.cn/DragonOS-Community/DADK --tag v0.1.11
```

# 更改列表

* chore: 把管理用户程序编译的dadk配置文件改为新格式的

* feat: 使用新版dadk来创建\挂载\卸载磁盘镜像

* chore: bump dadk min version to 0.2.0

* chore: fix ci

* chore: 更新github ci镜像到1.7

* doc: 添加文档

---------
Co-Authored-by: xuzihao <xuzihao@dragonos.org>
Signed-off-by: longjin <longjin@DragonOS.org>
2024-11-27 01:30:31 +08:00
LoGin e232830c18
ci: 推送文档到s3时,不同步`p/*`目录下的文件 (#1050)
这些文件夹被用于其他子项目的文档
2024-11-15 00:10:32 +08:00
linfeng 7c28051e8c
chore: update toolchain version to 2024-11-05 (#1031)
* chore: update toolchain version to 2024-11-05

* update dragon reach to e945c217b3

* update dog to 6f2c0c8f12

---------

Co-authored-by: longjin <longjin@DragonOS.org>
2024-11-11 21:29:15 +08:00
LoGin 7b0ef10895
ci: change rust src to crates-io-index while using GitHub workflow (#1023)
Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-31 01:05:34 +08:00
LoGin 37c2359ac4
ci: 删除PR #948 代入的cache-toolchain.toml (#1012) 2024-10-25 18:59:54 +08:00
linfeng fae6e9ade4
feat(ebpf):[WIP] add eBPF support (#948)
* feat(kprobe): Add basic kprobe support for x86_64

* feat: add ebpf support (#912)

- 实现bpf()一部分命令,包括几种基本map,相关的helper函数
- 实现部分perf相关的数据结构
- 暂时为文件实现简单mmap
- 实现一个使用kprobe统计syscall 调用次数的ebpf程序

对eBPF支持程度(基本):

- 简单的eBPF程序(没有指定特殊的Map)
- 使用内核已经实现的Map的eBPF程序
- 可以和kprobe配合使用
- 内核Map相关的接口定义已经实现,添加新的Map较为简单

不支持的功能:
- 区分不同的eBPF程序类型(Network/Cgroup)并限定可调用的helper函数集
- 与内核其它跟踪机制配合(tracepoint)
- 其它helper和Map


todo

- [ ]  修改mmap,需要讨论,因为这个和块缓存层相关
- [x]  添加文档
- [x]  修复可能的错误
- [x] 增加rbpf版本信息

* feat: add /sys/devices/system/cpu/possible file

* feat: add /sys/devices/system/cpu/online
2024-10-25 15:59:57 +08:00