DragonOS/kernel
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
..
.cargo fix: 修复由于升级到2024-07-23工具链之后,某些机器上面内核运行一直fault的问题。 (#870) 2024-07-27 17:34:05 +08:00
crates ci: 添加rust-slabmalloc的主机测试工作流和属性测试 (#1577) 2025-12-30 08:37:47 +08:00
src feat(block): 新增异步BIO框架并集成到virtio-blk驱动 (#1659) 2026-01-14 22:50:30 +08:00
submodules riscv: 完成UEFI初始化,能正确设置memblock的信息 (#501) 2024-01-26 18:08:39 +08:00
.clippy.toml fix: 检查栈帧大小 (#1126) 2025-05-26 17:33:25 +08:00
.gitignore fix:Fix related issues with kexec (pr # 1303) code (#1339) 2025-11-10 13:31:10 +08:00
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 feat(build): replace rootfs and user space app creation with nix base scripts (#1505) 2025-12-26 18:36:13 +08:00
build.rs fix:Fix related issues with kexec (pr # 1303) code (#1339) 2025-11-10 13:31:10 +08:00
env.mk feat(build): replace rootfs and user space app creation with nix base scripts (#1505) 2025-12-26 18:36:13 +08:00
rust-toolchain.toml chore: Upgrade kernel toolchain to 250810 (#1257) 2025-08-18 13:25:19 +08:00