402 Star 1.4K Fork 1.3K

GVPopenEuler / kernel

 / 详情

【OLK-5.10】动态大页测试进程执行与分配拆分并发出现vmcore

已完成
任务
创建于  
2022-12-19 14:33

【严重程度】 一般
【特性】 内存管理
【重现类型】 有条件必然重现
【定位分析】


hpool_merge_page这个函数会首先将所有percpu_pool内存池中的页放到src_hpages_pool内存池中,然后再移动到wait_page_list链表上进行隔离。在移动页时通过PagePool判断页是不是在src_hpages_pool内存池中。

  1. 由于这个过程中只锁定了src_hpages_pool,此时可能有页刚刚被释放到percpu_pool内存池中,也会将其也添加进wait_page_list链表上,但此时操作的是percpu_pool内存池,没有加对应的锁,因此可能会发生list corruption。
  2. 同时,PagePool会被free_pages_prepare函数清空,这个清空状态没有被锁保护,因此也可能会把这种页判断为是在src_hpages_pool内存池中,进而可能发生list corruption。



【影响评估及测试建议】 在使用dhugetlb.2M.reserved_pages接口设置大页数量时,如果写入的值过大,会发生大页合并操作,此时可能会发生list correption错误,进而导致内核崩溃。


【对外部影响描述】 无

评论 (1)

hulk-robot 创建了任务

Hi zhixiuzhou, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: Kernel, and any of the maintainers: @YangYingliang , @成坚 (CHENG Jian) , @jiaoff , @zhengzengkai , @刘勇强 , @wangxiongfeng , @朱科潜 , @WangShaoBo , @lujialin , @wuxu_buque , @Xu Kuohai , @冷嘲啊 , @Lingmingqiang , @yuzenghui , @juntian , @OSSIM , @陈结松 , @whoisxxx , @koulihong , @刘恺 , @hanjun-guo , @woqidaideshi , @Chiqijun , @Kefeng , @ThunderTown , @AlexGuo , @kylin-mayukun , @Zheng Zucheng , @柳歆 , @Jackie Liu , @zhujianwei001 , @郑振鹏 , @SuperSix173 , @colyli , @Zhang Yi , @htforge , @Qiuuuuu , @Yuehaibing , @xiehaocheng , @guzitao , @CTC-Xibo.Wang , @zhanghongchen , @chen wei , @Jason Zeng , @苟浩 , @DuanqiangWen , @georgeguo , @毛泓博 , @AllenShi , @Xie XiuQi

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
5329419 openeuler ci bot 1632792936
C
1
https://gitee.com/openeuler/kernel.git
git@gitee.com:openeuler/kernel.git
openeuler
kernel
kernel

搜索帮助

344bd9b3 5694891 D2dac590 5694891