首页
开源
资讯
活动
开源许可证
软件工程云服务
软件代码质量检测云服务
持续集成与部署云服务
社区个性化内容推荐服务
贡献审阅人推荐服务
群体化学习服务
重睛鸟代码扫描工具
登录
注册
代码拉取完成,页面将自动刷新
Watch
7
Star
51
Fork
17
TenonOS
/
Tenon
Fork 仓库
加载中
取消
确认
代码
Issues
5
Pull Requests
2
Wiki
0
统计
更新失败,请稍后重试!
Issues
/
详情
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
[Enhancement]: 优化Tenon中SGI发送及SMP调度队列的多核访问机制
待办的
#IBAM8X
蔡铖
成员
创建于
2024-12-11 15:20
### 这个问题是否已经存在? - [x] 未搜索到类似问题 ### 问题描述 1. Tenon当前使用spin_lock来确保发送SGI时写寄存器的原子性, `dist_lock(gicv3_drv);` `SYSREG_WRITE64(ICC_SGI1R_EL1, sgi_register);` `dist_unlock(gicv3_drv);` SMP场景下,在SGI嵌套用例中重复获取`gicv3_drv`会造成死锁。 2. 随着 SMP 启动特性的引入,多个从核可能同时访问调度队列,可能导致竞态条件或队列保护不足。 ### 改进建议 - 优化 SGI 临界区 如果当前核已经持有锁,则避免重复获取,防止死锁。 - 优化 SMP 场景下的调度队列保护 针对多核并发访问的情况,改进调度队列的保护机制,以提高可靠性和并行性能。 ### 版本 Tenon v0.2.0
### 这个问题是否已经存在? - [x] 未搜索到类似问题 ### 问题描述 1. Tenon当前使用spin_lock来确保发送SGI时写寄存器的原子性, `dist_lock(gicv3_drv);` `SYSREG_WRITE64(ICC_SGI1R_EL1, sgi_register);` `dist_unlock(gicv3_drv);` SMP场景下,在SGI嵌套用例中重复获取`gicv3_drv`会造成死锁。 2. 随着 SMP 启动特性的引入,多个从核可能同时访问调度队列,可能导致竞态条件或队列保护不足。 ### 改进建议 - 优化 SGI 临界区 如果当前核已经持有锁,则避免重复获取,防止死锁。 - 优化 SMP 场景下的调度队列保护 针对多核并发访问的情况,改进调度队列的保护机制,以提高可靠性和并行性能。 ### 版本 Tenon v0.2.0
评论 (
0
)
蔡铖
创建了
任务
蔡铖
添加了
enhancement
标签
展开全部操作日志
折叠全部操作日志
登录
后才可以发表评论
状态
待办的
待办的
进行中
已完成
已取消
负责人
未设置
标签
enhancement
未设置
项目
未立项任务
未立项任务
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (1)
标签 (2)
master
release-v0.2.0
release-v0.1.0
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
预计工期
(小时)
参与者(1)