DragonOS/kernel
Yuming Jiang 7543a33658
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
fix(ipc): 修复部分 `shm_test` 错误的测试用例 (#1674)
* fix(mm): 克隆地址空间时对于映射到 SysV 共享内存的 VMA 增加 shm map_count。

* fix(ipc): 使 shm 元数据与 Linux 对齐

- 补充 `ShmFlags::PERM_MASK` 用于获取 POSIX 权限位
    - 该掩码用于屏蔽掉非权限位的一次性标志,如 `IPC_CREAT`、`IPC_EXCL` 等。
- 使 KernelShm 能正确创建并初始化
    - 正确初始化 uid/gid/cuid/cgid,并使用 `PERM_MASK` 正确获取权限位。
    - shm_lpid 初始化为 0(因为 lpid 只记录最后一个执行 attach/detach 操作的进程 ID,而在创建时没有这样的进程)。
- 使 `shm_stat` 能够正确获取共享内存状态信息
    - 使 `shm_stat` 正确获取 shm_perm.mode。
    - 使 `shm_stat` 将 shm_{a,d,c}time 以秒为单位输出,

* fix(ipc/sys_shmget): 完善 sys_shmget 创建一个 key 已经存在的共享内存段时的错误处理

- 添加了对 size 参数的检查,确保如果 size 大于已存在段的大小,则返回错误。

* feat(ipc): 添加KernIpcPerm构造函数

* docs(ipc/shm): 优化 SysV Shm 模块部分注释,标记待实现的 ShmId 生成机制

- 统一称呼“Shm Segment”为“共享内存段”,避免混淆
- 使用 “attach” 和 “detach” 术语,避免使用中文翻译。
- 优化部分注释的表达,使其更清晰易懂
- 标记待实现的 ShmId 生成机制

* refactor(mm/ucontext): 优化 `InnerAddressSpace::munmap` 函数和其内部调用 `extract` 函数的注释

- 重构并优化 `InnerAddressSpace::munmap()` 函数的注释
    - 调整了部分代码的顺序以提升可读性
    - 优化了检查 related_vmas 循环中的注释和变量命名,使其更清晰易懂
    - 添加了循环 unmap related_vmas 的每次循环的操作的逻辑注释,帮助理解代码意图
- 优化 `LockedVMA::extract()` 函数注释,增加参数和返回值说明

* docs(mm/UserMappings): 优化 `remove_vma` 函数的注释

* refactor(mm/ucontext): 优化 LockedVMA::unmap() 临时变量命名

- 优化共享内存管理器的detach_shm函数注释,增加对副作用的说明
- 优化 unmap() 函数中变量的命名

* refactor(ipc/shm): 优化 KernIpcPerm 构造函数,简化权限信息传递

* docs(ipc/shm): 更新 KernelShm 结构体中 shm_lprid 字段的注释,明确操作者定义

* fmt

* docs(ipc/shm): 更新 KernelShm 构造函数中 lprid 填充为0 的注释

* fix(ipc): 修复 shm 路径 unwrap 崩溃

* fix(ipc): 处理 fork 中 shm 段删除竞态

* fix(ipc/shmget): sys_shmget 共享内存段状态不一致

- 添加根据 shm_id 获取实际共享内存段的错误处理,防止在 “检查” -> “获取” 过程中状态变化导致的不一致问题。

* fix(ipc/shm): 处理 shm 相关类型转换溢出

* 补充 try_clone 锁顺序说明

* clean: 清除未使用的 PosixShmPerm::new 函数

* ci: restart CI pipeline

---------

Co-authored-by: longjin <longjin@DragonOS.org>
2026-01-23 00:03:23 +08:00
..
.cargo
crates
src fix(ipc): 修复部分 `shm_test` 错误的测试用例 (#1674) 2026-01-23 00:03:23 +08:00
submodules
.clippy.toml
.gitignore
Cargo.lock feat(net): 新增TCP_INFO支持并优化网络接口选择逻辑 (#1623) 2026-01-09 10:44:21 +08:00
Cargo.toml feat(net): 新增TCP_INFO支持并优化网络接口选择逻辑 (#1623) 2026-01-09 10:44:21 +08:00
Makefile
build.rs
env.mk
rust-toolchain.toml