LoGin
1949188db7
feat: 完善CPU时间统计与IO等待支持 ( #1701 )
...
Build multiversion docs / build-multiversion (push) Has been cancelled
Details
Sync to CNB.cool / sync (push) Has been cancelled
Details
Test MM (Host) / Build slab_stress (host) (push) Has been cancelled
Details
Test x86_64 / Integration Test (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 64) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 64) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 64) (push) Has been cancelled
Details
- 新增/proc/stat和/proc/[pid]/stat的CPU时间统计功能
- 实现IO等待统计,区分iowait与idle时间
- 扩展等待队列支持IO等待标记
- 更新TCP套接字使用IO等待接口
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-23 16:24:08 +08:00
Yuming Jiang
7543a33658
fix(ipc): 修复部分 `shm_test` 错误的测试用例 ( #1674 )
...
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(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
LoGin
f63030f3fa
refactor(arch/x86_64/ipc): 重构信号栈帧设置流程以优化锁持有时间 ( #1699 )
...
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
- 调整setup_frame函数中用户态数据准备与写入的顺序
- 将用户态ucontext和fpstate的生成提前至持有锁期间,避免在锁内访问用户内存
- 将数据写入用户栈的操作移至释放锁之后,减少锁的持有时间并处理可能的缺页异常
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-22 16:09:55 +08:00
LoGin
a728b27356
feat(x86_64): 添加KVM时钟源支持 ( #1683 )
...
* feat(x86_64): 添加KVM时钟源支持
- 新增kvm_clock模块,支持在KVM虚拟化环境中使用pvclock作为时钟源
- 添加kvm_para和pvclock模块,提供KVM特性检测和pvclock数据结构
- 修改TSC管理器,添加从KVM设置TSC频率的方法
- 调整时钟源初始化顺序,优先使用KVM时钟源
- 修复时钟源选择和timekeeper初始化的相关问题
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: kaleidoscope416 <jiangruizhi@DragonOS.org>
2026-01-22 15:23:40 +08:00
LoGin
a345616436
feat(procfs): 新增loadavg文件支持并完善负载统计 ( #1695 )
...
- 新增/proc/loadavg文件,显示系统负载、运行进程数和最后分配的PID
- 实现负载计算模块,支持1分钟、5分钟、15分钟平均负载
- 修复进程唤醒时nr_uninterruptible计数问题
- 在PID命名空间中添加last_pid跟踪
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-22 14:08:05 +08:00
LoGin
5badcbb5ae
fix(signal): 修复信号处理中的pending状态更新和等待队列中断处理 ( #1697 )
...
* fix(signal): 修复信号处理中的pending状态更新和等待队列中断处理
- 在do_signal中无信号时添加recalc_sigpending调用
- 移除多处手动设置HAS_PENDING_SIGNAL标志的代码,改用wq_wait_event_interruptible
的错误传播
- 在set_sigprocmask中屏蔽SIGKILL和SIGSTOP信号
Signed-off-by: longjin <longjin@DragonOS.org>
* fix(kernel): 修复group_exit线程级SIGKILL避免go_demo退出卡住
在 group_exit 中对线程组内每个线程发送线程级 SIGKILL(PidType::PID)
使用 SigCode::Kernel 构造内核发起的终止信号,确保语义正确
避免进程级共享 pending 仅被单线程消费导致线程组残留
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-22 14:07:10 +08:00
火花
7e8a84fb73
feat(filesystem): improve mknod support for devfs and tmpfs ( #1698 )
...
Implement proper mknod syscall support in DevFS and TmpFS by adding
logic to create character devices, block devices, and FIFO pipes
based on the mode parameter.
- DevFS: Add mknod method to create device nodes
- TmpFS: Enhance mknod to correctly set file type and device number
- Remove ENOSYS error for block/char device creation in TmpFS
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2026-01-22 11:51:31 +08:00
LoGin
878033ceff
refactor(ipc): 重构信号处理逻辑,优化锁顺序并简化接口 ( #1694 )
...
* refactor(ipc): 重构信号处理逻辑,优化锁顺序并简化接口
- 在`ProcessControlBlock`中新增`dequeue_pending_signal`
方法,统一处理线程与进程共享信号队列,遵循`sighand -> sig_info`
的锁顺序以避免死锁
- 移除`ProcessSignalInfo::dequeue_signal`方法,替换为更明确的
`dequeue_thread_signal`,仅处理线程私有信号
- 简化`recalc_sigpending`方法签名,移除可选的`siginfo_guard`参数,内部统一获取锁
- 更新`do_signal`、`signalfd`、`sys_rt_sigtimedwait`
等调用点以使用新接口,消除冗余锁操作
- 在`Sighand`结构体中添加`inner_read`方法以支持上述锁顺序
Signed-off-by: longjin <longjin@DragonOS.org>
* add doc
* fix(net): 修复TCP套接字事件通知和关闭流程
- 在`incoming()`方法中增加对EPOLLHUP和EPOLLERR事件的检查
- 在关闭流程中显式释放writer并触发通知
- 在接收和发送数据成功后调用`notify()`方法更新事件状态
- 修改事件检查逻辑,使用`intersects()`替代`contains()`以支持多事件判断
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-22 00:23:21 +08:00
LoGin
50fbcf2212
feat(mm): 新增页缓存统计与监控功能 ( #1692 )
...
- 新增页缓存统计模块,跟踪文件页、脏页、回写页、映射页、共享内存页等状态
- 在/proc/meminfo中新增Cached、Dirty、Writeback、Mapped、Shmem等统计信息
- 新增/proc/vmstat文件,提供完整的虚拟内存统计信息
- 新增/proc/sys/vm/drop_caches接口,支持清理页缓存
- 在/sys/kernel/mm/pagecache下新增sysfs属性,提供页缓存统计信息
- 重构页缓存驱逐逻辑,支持更灵活的驱逐策略
- 为tmpfs共享内存页缓存添加统计支持
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-21 20:34:37 +08:00
LoGin
5285c1510b
feat(net): 实现SO_RCVLOWAT选项并完善socket选项处理 ( #1693 )
...
- 为UDP、TCP、Unix域socket添加SO_RCVLOWAT选项支持
- 修复SO_SNDTIMEO/SO_RCVTIMEO选项处理,支持无限超时(u64::MAX)
- 实现SO_TYPE、SO_DOMAIN、SO_PROTOCOL等基础socket选项
- 为TCP socket添加SO_REUSEADDR、SO_BROADCAST、SO_PASSCRED、SO_NO_CHECK选项
- 修复TCP缓冲区大小计算,区分SNDBUF和RCVBUF的最小值
- 改进timeval解析逻辑,支持负值和零值处理
- 添加gvisor测试白名单,支持更多socket测试用例
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-21 20:34:21 +08:00
LoGin
84f1fe454d
feat(net): 新增TCP/IP套接字选项支持与Cork缓冲区超时机制 ( #1691 )
...
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
- 新增TCP_LINGER2、IP_MULTICAST_TTL、IP_MULTICAST_LOOP、SO_OOBINLINE等套接字选项
的读写支持
- 为TCP_CORK选项实现自动超时刷新机制,防止数据在缓冲区中滞留过久
- 在TCP状态处理中区分Closed与TimeWait状态,返回更精确的错误码
- 新增相关网络常量定义,提升与Linux内核的兼容性
- 更新gvisor测试白名单,添加socket_ip_tcp_generic_loopback_test
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-21 15:10:05 +08:00
LoGin
ff5082c1ea
fix(net/tcp): 修复TCP套接字关闭和接收逻辑 ( #1690 )
...
* fix(net/tcp): 修复TCP套接字关闭和接收逻辑
- 修复TCP套接字关闭时未处理未读数据的问题
- 修复接收逻辑中状态检查错误返回ECONNRESET的问题
- 添加cork缓冲区刷新互斥锁防止重复刷新
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(net/tcp): 实现TCP keepalive和linger选项支持
- 新增TCP_KEEPIDLE、TCP_KEEPINTVL、TCP_KEEPCNT选项的读写支持
- 实现SO_LINGER选项设置,支持立即中止连接
- 修改连接关闭逻辑,当linger_abort为true时立即中止连接
- 添加相关选项的默认值和验证逻辑
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-21 13:20:30 +08:00
LoGin
1ee52548ed
feat(page_cache): 重构页缓存为异步IO模型并添加回调机制 ( #1688 )
...
* feat(page_cache): 重构页缓存为异步IO模型并添加回调机制
- 将SyncPageCacheBackend重构为AsyncPageCacheBackend,支持异步读写操作
- 在BioRequest中添加complete_callbacks字段和on_complete方法,支持完成回调
- 重构PageCache内部结构,引入PageEntry管理页面状态和异步等待
- 新增PageCacheManager提供统一的管理接口,简化外部调用
- 更新文件系统(ext4、fat、tmpfs)使用新的异步页缓存后端
- 修改块设备读写接口,使用异步BIO提交和等待机制
- 优化页面错误处理、预读、写回等流程,支持异步操作
Signed-off-by: longjin <longjin@DragonOS.org>
* refactor(filesystem): 重构页面缓存状态管理逻辑
将页面状态管理逻辑重构为循环处理模式,增加compare_exchange_state方法
提取状态解码逻辑到独立方法decode_state
优化脏页处理流程,减少锁竞争
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-21 09:57:27 +08:00
LoGin
df62bcbd8f
fix(wait): align WNOHANG/PGID wait semantics with Linux 6.6 ( #1689 )
...
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
- return ECHILD when no matching children exist
- handle PGID WNOHANG scanning correctly
- add WNOTHREAD wait test for thread-created child
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-21 01:04:23 +08:00
Vitus
6755a4024b
fix(syscall): 修复 ppoll 系统调用使其符合 Linux 6.6 标准 ( #1671 )
...
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(syscall): 修复 ppoll 系统调用使其符合 Linux 6.6 标准
修复 gvisor ppoll 测试套件中的多个失败用例:
1. timespec 验证
- 添加 tv_sec < 0 检查,返回 EINVAL
- 添加 tv_nsec 范围检查 [0, 999999999],越界返回 EINVAL
- 修复 InvalidTimeoutNegative 和 InvalidTimeoutNotNormalized 测试
2. sigsetsize 参数
- 添加第 5 个参数 sigsetsize(原只有 4 个参数)
- 验证 sigsetsize 必须等于 sizeof(SigSet)
- 修复 InvalidMaskSize 测试
3. 信号掩码处理
- 使用 has_pending_not_masked_signal() 替代 signal_pending_state()
- 确保被屏蔽的信号不会中断 ppoll,只处理未屏蔽的信号
- 修复 SignalMaskBlocksSignal 和 SignalMaskAllowsSignal 测试
4. 错误码转换
- 在 poll_select_finish 中添加 ERESTART_RESTARTBLOCK → EINTR 转换
- 移除 ppoll 中不必要的 restart block 设置
* feat(时间处理): 添加as_millis_saturating_u64方法并用于ppoll超时计算
添加PosixTimeSpec的as_millis_saturating_u64方法,处理大数值时的饱和运算
在sys_ppoll中使用新方法替代原有超时计算逻辑,避免潜在溢出问题
---------
Co-authored-by: longjin <longjin@DragonOS.org>
Signed-off-by: zhzvitus <zhzvitus@gmail.com>
2026-01-20 15:40:54 +08:00
LoGin
62149de157
feat(ipc/signal): 重构 nanosleep 重启函数以支持进程/线程 CPU 时间等待 ( #1687 )
...
- 新增`ktime_now`和`calc_remaining`辅助函数
- 在`RestartFnNanosleep`中为`ProcessCPUTimeID`和`ThreadCPUTimeID`
实现基于等待队列的精确等待
- 在`de_thread`中清除待终止线程的退出信号,避免信号误传
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-20 15:39:54 +08:00
LoGin
d252e73f6d
refactor(page_cache): 引入PageCacheBackend抽象层并重构相关文件系统 ( #1686 )
...
- 新增PageCacheBackend trait和SyncPageCacheBackend实现,用于抽象页面缓存后端操作
- 修改PageCache构造函数,支持传入自定义后端
- 重构ext4、fat、tmpfs文件系统使用新的PageCache后端机制
- 优化页面回收和预读逻辑,使用后端接口进行读写操作
- 修复页面错误处理逻辑,移除直接文件读取改用page_cache.read_pages()
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-20 02:19:53 +08:00
LoGin
a900ef4719
feat(exec): 实现多线程exec的去线程化功能 ( #1682 )
...
* feat(exec): 实现多线程exec的去线程化功能
- 在de_thread()中实现线程组清理与PID交换逻辑
- 添加GROUP_EXEC标志防止exec期间创建新线程
- 修改fork、exit、signal处理以支持去线程化语义
Signed-off-by: longjin <longjin@DragonOS.org>
* fix(process): 修复多线程exec时父进程提前回收旧leader的问题
- 在de_thread中增加对旧leader的回收逻辑,确保由exec线程负责回收
- 新增reap_blocked_by_group_exec函数,在do_wait和do_waitpid中检查并跳过被exec阻
塞的进程回收
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(ipc/sighand): 实现线程组exec的同步机制
- 在SigHand结构体中添加group_exec_wait_queue和group_exec_notify_count字段,用于
线程组exec期间的同步
- 新增wait_group_exec_event_interruptible和wait_group_exec_event_killable方法,
支持可中断和可终止的等待
- 在de_thread函数中使用新的等待机制替代忙等待,提高效率
- 在进程退出时正确处理group_exec_notify_count的递减和唤醒操作
- 修复fork时对GROUP_EXEC和GROUP_EXIT标志的检查,防止在exec期间创建新线程
- 调整进程父子关系处理逻辑,确保wait系统调用在__WNOTHREAD标志下的正确行为
- 在wait_queue模块中新增killable等待模式,支持可终止的信号等待
Signed-off-by: longjin <longjin@DragonOS.org>
* docs: 新增de_thread机制文档并清理调试日志
- 新增de_thread机制原理文档,详细说明多线程exec的去线程化流程
- 清理exec.rs和exit.rs中的调试日志输出
Signed-off-by: longjin <longjin@DragonOS.org>
* refactor(ipc): 添加 with_group_exec_check 方法以统一处理线程组并发插入
- 在 SigHand 结构体中新增 with_group_exec_check 方法,用于在
GROUP_EXEC/GROUP_EXIT 锁下执行关键区操作,避免并发插入线程组
- 重构 ProcessManager
中的线程组加入逻辑,使用新方法替代原有的手动标志检查,提升代码可维护性
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(ipc): 重构线程组exec状态管理
- 新增`start_group_exec`方法,合并设置exec标志与记录执行者操作
- 重构`exchange_tid_and_raw_pids`方法,整合线程ID与原始PID交换逻辑
- 修复`finish_group_exec`调用条件判断逻辑
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-19 14:00:25 +08:00
xboHodx
f7298ff726
feat: 增强VFS系统调用并重构sysinfo ( #1622 )
...
Build multiversion docs / build-multiversion (push) Has been cancelled
Details
Sync to CNB.cool / sync (push) Has been cancelled
Details
Test MM (Host) / Build slab_stress (host) (push) Has been cancelled
Details
Test x86_64 / Integration Test (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 64) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 64) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 64) (push) Has been cancelled
Details
- 修复do_fchmodat中空路径返回ENOENT的问题
- 在do_sys_openat2中添加O_NOFOLLOW符号链接处理
- 改进do_mkdir_at的权限检查顺序以符合Linux语义
- 重构sysinfo系统调用为独立模块并添加进程计数
- 添加uptime_secs函数并优化时间更新逻辑
- 移除gvisor测试黑名单以启用更多测试用例
Signed-off-by: xbohodx2024 <xbohodx2024@gmail.com>
2026-01-17 22:33:55 +08:00
LoGin
1e29f81cc3
fix(mm/pagecache): track vma on filemap prefault ( #1677 )
...
Build multiversion docs / build-multiversion (push) Has been cancelled
Details
Sync to CNB.cool / sync (push) Has been cancelled
Details
Test MM (Host) / Build slab_stress (host) (push) Has been cancelled
Details
Test x86_64 / Integration Test (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 64) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 64) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 64) (push) Has been cancelled
Details
- Mark filemap prefaulted pages with insert_vma to keep map_count consistent with mappings.
- Avoid redundant mapping in filemap_map_pages when a PTE already exists.
- Ensure page-cache created pages are fully initialized and UPTODATE.
**Motivation**
Setting PG_UPTODATE enables prefault mapping via filemap_map_pages.
Those pages were mapped without updating vma_set, causing map_count to stay at 0
and enabling reclaim/writeback paths to treat mapped pages as unmapped, leading to mmap hangs.
The fix aligns VMA tracking with prefault mappings and adds diagnostics to
validate mapping correctness.
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-16 14:42:13 +08:00
LoGin
e1fe2bfc9e
fix(mm): 修复预读文件页偏移计算错误 ( #1676 )
...
- 将`(1 << MMArch::PAGE_ENTRY_SHIFT)`替换为`MMArch::PAGE_ENTRY_MASK`
- 修正`fs.map_pages`调用中的起始偏移计算逻辑
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-16 13:37:36 +08:00
LoGin
bed929e01a
refactor(block&filesystem): 移除块设备缓存层并实现FAT表缓存 ( #1669 )
...
* refactor: 移除块设备缓存层并实现FAT表缓存
- 删除块设备缓存模块及相关代码
- 修改块设备接口直接使用同步读写路径
- 在FAT文件系统中添加LRU缓存优化FAT表查询
- 更新文档,移除未实现的系统调用列表并添加支持的文件系统
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-15 20:53:43 +08:00
火花
d7eecdfd08
feat(sysfs): sysfs 支持挂载 ( #1667 )
...
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
* feat(sysfs): sysfs支持挂载
实现 FileSystem 和 MountableFileSystem trait,使 sysfs 成为可挂载文件系统。
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* feat(qemu): 将虚拟机内存调整至2G,避免OOM
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
---------
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2026-01-15 13:22:58 +08:00
火花
e7add27923
feat(procfs): procfs支持挂载 ( #1639 )
...
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
* feat: procfs支持挂载
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* fix: 增加错误处理
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
---------
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2026-01-14 23:56:18 +08:00
LoGin
39c95d5792
fix(mm): clamp file page writeback length to one page ( #1662 )
...
* fix(mm): clamp file page writeback length to one page
PageReclaimer::page_writeback computed len as file_size - page_start, which
could exceed PAGE_SIZE and cause writeback to read beyond the page buffer and
rewrite large trailing ranges repeatedly.
Clamp len to at most PAGE_SIZE, handle pages past EOF, and avoid panic on I/O
errors by setting PG_ERROR and keeping PG_DIRTY for retry.
Signed-off-by: longjin <longjin@DragonOS.org>
* fix(mm/page): 修复脏页回写后仍被标记为脏页时的处理逻辑
- 在脏页回写后检查页面是否仍被标记为脏页
- 若仍为脏页,则重新插入页面到回收器队列中,避免错误删除
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-14 23:25:50 +08:00
LoGin
a3cbe901c4
feat(block): 新增异步BIO框架并集成到virtio-blk驱动 ( #1659 )
...
* feat(block): 新增异步BIO框架并集成到virtio-blk驱动
- 新增BIO请求结构体(BioRequest)和FIFO队列(BioQueue),支持异步读写操作
- 在BlockDevice
trait中增加submit_bio、submit_bio_read、submit_bio_write方法,提供异步接口和同步
回退机制
- 重构virtio-blk驱动,使用异步BIO框架替代原有的同步读写,提升IO性能
- 新增IO线程处理BIO请求,支持批量处理和budget控制,避免CPU独占
- 使用tasklet处理中断下半部,完成BIO请求的异步回调
- 将BlockDevManager和BlockDevMeta中的SpinLock替换为Mutex,改善锁机制
Signed-off-by: longjin <longjin@DragonOS.org>
* refactor(kernel): 将FutexData的锁类型从SpinLock替换为Mutex,并调整进程退出时调度实体停用的顺序
- 将FutexData结构体及其方法中的SpinLock和SpinLockGuard替换为Mutex和MutexGuard
- 在进程退出流程中,将调度实体deactivate操作移至清理用户态资源之后,以避免潜在的
用户态缺页异常
Signed-off-by: longjin <longjin@DragonOS.org>
* fix: 修复进程退出的时候,持自旋锁访问用户内存触发磁盘读取,导致panic的问题
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-14 22:50:30 +08:00
LoGin
7272045ca9
fix(net): start iface id at 1 to match Linux ifindex semantics ( #1658 )
...
Linux ifindex must be non-zero. Make generate_iface_id() start from 1
so loopback and other devices never get ifindex 0, fixing raw socket
tests relying on if_nametoindex("lo") returning a valid index.
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-14 18:20:04 +08:00
LoGin
4d7478c3fb
refactor(futex): 重构优先级继承 futex 实现 ( #1656 )
...
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
- 在 FutexHashBucket 中添加 PI 相关字段(pi_owner、pi_waiters)并重构初始化逻辑
- 为 FutexObj 添加 tid 字段以支持 PI 功能
- 重构 pi_futex.rs 中的锁获取、释放和尝试获取逻辑,优化竞争条件处理
- 新增 handle_pi_futex_death 方法处理 PI futex 的 owner death 场景
- 在 robust list 处理中优先尝试处理 PI futex
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-14 14:59:23 +08:00
LoGin
eda2e5d964
fix(process): refine process exit state management and signal handling ( #1657 )
...
* fix(process): refine process exit state management and signal handling
- Add exit state tracking (Running/Zombie/Dead) to prevent signal delivery to
dead processes
- Ensure proper state transitions during process exit and wait operations
- Fix race conditions in wait() by using atomic exit state checks
- Improve process cleanup by marking processes as exiting before notifying
parent
Signed-off-by: longjin <longjin@DragonOS.org>
* fmt
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-14 14:41:17 +08:00
LoGin
b8adc89b84
fix(rwsem): 修复读写信号量升级过程中的唤醒和状态管理问题 ( #1654 )
...
- 在写锁降级为可升级读锁时,唤醒所有等待的读操作
- 在可升级读锁升级为写锁时,显式释放可升级读锁以清除状态位
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-14 13:48:31 +08:00
LoGin
8463318499
refactor(mm): 将页面锁从读写锁替换为读写信号量 ( #1653 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-14 11:59:28 +08:00
LoGin
695d3928b0
refactor(filesystem): 将SpinLock替换为Mutex,RwLock替换为RwSem ( #1652 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-14 09:56:54 +08:00
LoGin
bcfebe3889
refactor(net): 将网络模块中的RwLock替换为RwSem,SpinLock替换为Mutex ( #1651 )
...
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
Docs Translation / translate-and-pr (push) Has been cancelled
Details
* refactor(net): 将网络模块中的RwLock替换为RwSem,SpinLock替换为Mutex
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-14 01:03:12 +08:00
LoGin
6222a7bb71
refactor(mm): 将VMA\pageManager\VFS的锁机制从自旋锁改为互斥锁 ( #1647 )
...
* refactor(mm): 将VMA\pageManager\VFS的锁机制从自旋锁改为互斥锁
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-14 00:12:20 +08:00
LoGin
a0ac9d1965
refactor(mm): 优化地址空间切换与锁机制 ( #1646 )
...
- 在进程切换时使用无锁快速路径切换地址空间,提升调度性能
- 将地址空间内部锁从RwLock替换为RwSem,支持I/O操作时的等待
- 为AddressSpace添加table_paddr字段和make_current方法,支持无锁页表切换
- 统一将read_irqsave/write_irqsave替换为read/write,简化锁使用
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-13 23:22:49 +08:00
火花
e5e196d5f4
fix: 修复sys-open对于O_PATH参数的处理,避免触发 FIFO 的阻塞等待 ( #1640 )
...
* fix: 修复sys-open对于O_PATH参数的处理,避免触发 FIFO 的阻塞等待
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* fix: 补充sys-close对于O_PATH的处理逻辑
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
---------
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2026-01-13 23:20:17 +08:00
LoGin
1559242256
fix(process): 修复进程PID命名空间处理逻辑 ( #1635 )
...
- 在fork时使用task_pid_nr_ns获取子进程在父命名空间中的虚拟PID
- 修复进程退出时从父进程children列表中移除的逻辑
- 修复进程收养逻辑中的PID命名空间处理
- 添加相关警告日志
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-13 21:59:16 +08:00
火花
62f2a13828
fix: 修复tmpfs挂载参数的解析问题 ( #1641 )
...
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2026-01-13 20:59:20 +08:00
LoGin
3fc8866dd5
refactor(kernel): 重构 Mutex 和 WaitQueue 实现,使用状态机避免唤醒丢失 ( #1643 )
...
- 将 Mutex 内部实现从 SpinLock+LinkedList 改为 AtomicBool+WaitQueue
- 重构 WaitQueue 的 Waker
机制,使用四态状态机(Idle/Sleeping/Notified/Closed)替代 AtomicBool
- 引入 Waiter/Waker 握手机制,通过 prepare_sleep() 和 consume_notification()
避免竞态条件
- 在 Mutex::lock() 中直接使用 wait_queue.wait_until(),简化加锁逻辑
- 修复监控脚本中的权限问题,将 kill 命令改为 sudo kill
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-13 20:50:15 +08:00
LoGin
7d2a6f7e44
refactor: 重构 RwSem 和 WaitQueue 实现,解决并发冲突问题 ( #1637 )
...
- 重构 RwSem 状态表示,使用 64 位原子整数和位域编码
- 新增可升级读锁支持,提供原子升级/降级功能
- 重构 WaitQueue 核心机制,以 wait_until 为基础 API 消除唤醒丢失
- 统一等待队列设计,使用单一队列管理所有等待者
- 优化锁获取性能,实现快速路径和慢速路径分离
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-13 14:30:35 +08:00
LoGin
5d0cbdcff5
feat(vfs): 实现splice和tee系统调用 ( #1621 )
...
Build multiversion docs / build-multiversion (push) Has been cancelled
Details
Sync to CNB.cool / sync (push) Has been cancelled
Details
Test MM (Host) / Build slab_stress (host) (push) Has been cancelled
Details
Test x86_64 / Integration Test (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 64) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 64) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 64) (push) Has been cancelled
Details
* feat(vfs): 实现splice和tee系统调用
- 新增splice系统调用,支持管道与文件间的零拷贝数据传输
- 新增tee系统调用,实现管道间数据复制而不消耗源数据
- 为File结构体添加pos()和advance_pos()方法用于文件偏移管理
- 在pipe模块中实现splice_to_pipe()和tee_to()等核心操作
- 添加send_kernel_signal_to_current()辅助函数简化内核信号发送
- 更新测试白名单以包含splice相关测试
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(ipc/pipe): 重构splice和tee实现,添加copy_from_other和transfer_chunk辅助函数
Signed-off-by: longjin <longjin@DragonOS.org>
* fix(pipe): 修复管道读写时的信号发送与零拷贝处理逻辑
- 在管道写入时,若没有读取者,发送 SIGPIPE 信号并返回 EPIPE 错误
- 修复读取逻辑中零拷贝时的循环处理,避免因快照过期导致的无限循环
Signed-off-by: longjin <longjin@DragonOS.org>
* 1
* fix(pipe): 修复splice系统调用中管道数据竞争问题
- 为管道添加splice_hold字段,防止并发读取导致数据丢失
- 修改splice_pipe_to_file函数,使用peek+hold模式读取管道数据
- 修复sys_splice和sys_tee中的文件权限检查
- 优化管道可读性判断逻辑,正确处理splice_hold状态
Signed-off-by: longjin <longjin@DragonOS.org>
* fix(splice): refine O_NONBLOCK handling for pipe endpoints
- Update logic to inherit O_NONBLOCK flag only from pipe endpoints, ensuring correct splice behavior for regular files.
- Clarify comments to reflect the changes in handling non-blocking flags.
Signed-off-by: longjin <longjin@DragonOS.org>
* refactor(filesystem): 移除冗余的 nonblock_prep_pipe_write 函数并优化 splice
非阻塞逻辑
- 删除`nonblock_prep_pipe_write`函数,将非阻塞检查逻辑内联至
`splice_file_to_pipe`函数中
- 优化文件到管道 splice 的非阻塞语义,使其更符合 Linux 行为
- 修复管道 epoll 事件检查逻辑,避免在 splice 持有锁时误报可读事件
Signed-off-by: longjin <longjin@DragonOS.org>
* 1
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-12 15:14:29 +08:00
LoGin
8c2eb8a7c8
feat(procfs): 新增/proc/stat文件支持 ( #1636 )
...
- 添加stat模块实现/proc/stat文件,显示系统统计信息
- 在procfs根目录注册stat文件节点
- 扩展PidNamespace以支持统计进程创建数量和收集PID列表
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-12 13:14:49 +08:00
LoGin
75be344985
feat(net/tcp): 实现TCP_CORK、TCP_QUICKACK、SO_KEEPALIVE选项及SHUT_RD半关闭支持 ( #1629 )
...
* feat(net/tcp): 实现TCP_CORK、TCP_QUICKACK、SO_KEEPALIVE选项及SHUT_RD半关闭支持
- 新增TCP_CORK选项,支持数据缓冲与手动刷新
- 新增TCP_QUICKACK和SO_KEEPALIVE选项支持
- 完善SHUT_RD半关闭语义,支持读取剩余数据后返回EOF
2026-01-12 12:17:02 +08:00
Yuming Jiang
74649e00b1
fix(time/clocksource):修复 ClocksourceWatchdog 拼写错误 ( #1628 )
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
2026-01-11 18:35:59 +08:00
LoGin
13df67a5c0
docs: 添加Tasklet文档并扩展其数据传递能力 ( #1624 )
...
Docs Translation / translate-and-pr (push) Waiting to run
Details
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
- 在文档目录中添加Tasklet的详细说明文档
- 扩展Tasklet回调以支持复杂数据类型的传递
- 更新TTY驱动以适配新的Tasklet接口
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-09 14:33:23 +08:00
LoGin
c875dac003
feat(net): 新增TCP_INFO支持并优化网络接口选择逻辑 ( #1623 )
...
* feat(net): 新增TCP_INFO支持并优化网络接口选择逻辑
- 新增TCP_INFO socket选项实现,提供详细的TCP连接状态信息
- 优化IPv4映射IPv6地址的处理逻辑
- 重构未指定地址绑定的网络接口选择算法
- 修复getsockopt缓冲区处理边界条件
- 更新smoltcp依赖版本至5a73cad
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-09 10:44:21 +08:00
LoGin
510ad1be82
feat(elf): 实现只读段文件映射与BSS处理优化 ( #1616 )
...
Docs Translation / translate-and-pr (push) Has been cancelled
Details
Build multiversion docs / build-multiversion (push) Has been cancelled
Details
Sync to CNB.cool / sync (push) Has been cancelled
Details
Test MM (Host) / Build slab_stress (host) (push) Has been cancelled
Details
Test x86_64 / Integration Test (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 64) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 64) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 128) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 255) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 256) (push) Has been cancelled
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 64) (push) Has been cancelled
Details
- 为只读ELF段(PF_W=0)添加文件映射支持,通过pagecache实现按需加载
- 重构BSS处理逻辑,避免死锁并遵循Linux padzero语义
- 新增file_mapping_with_file接口,优化文件映射参数传递
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-07 23:34:33 +08:00
LoGin
0ee965c8e9
feat(net): 重构网络子系统,引入NAPI机制与TCP socket改进 ( #1599 )
...
- 新增NAPI(New API)子系统,实现有界轮询机制,提升网络包处理性能
- 重构e1000e驱动,集成NAPI中断处理,移除旧的中断处理模块
- 改进TCP socket实现,支持self-connect、延迟关闭、backlog管理等Linux兼容特性
- 优化网络命名空间轮询线程,采用事件驱动与定时器混合模型
- 新增TCP listener backlog和TCP close defer机制,提升协议栈兼容性
- 修复epoll事件通知机制,避免竞态条件和唤醒丢失
- 升级smoltcp依赖,启用TCP Reno和Cubic拥塞控制算法
- 新增网络子系统设计文档,详细说明NAPI与NetNamespace Poll机制
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-07 22:50:48 +08:00
LoGin
74478d610b
refactor: 提取sched_yield函数 ( #1615 )
...
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
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-06 21:30:56 +08:00
LoGin
343a2c553f
fix: rv64 build ( #1614 )
...
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
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-06 20:19:13 +08:00