395 Star 1.4K Fork 1.3K

GVPopenEuler / kernel

 / 详情

GICR_VPENDBASER.Dirty Polling优化

已完成
需求
创建于  
2021-07-15 15:54

Right after a vPE is made resident, the code starts polling the
GICR_VPENDBASER.Dirty bit until it becomes 0, where the delay_us
is set to 10. But in our measurement, it takes only hundreds of
nanoseconds, or 1~2 microseconds, to finish parsing the VPT in most
cases. What's more, we found that the MMIO delay on GICv4.1 system
(HiSilicon) is about 10 times higher than that on GICv4.0 system in
kvm-unit-tests (the specific data is as follows).

                    |   GICv4.1 emulator   |  GICv4.0 emulator

mmio_read_user (ns) | 12811 | 1598

After analysis, this is mainly caused by the 10 delay_us, so it might
really hurt performance.

To avoid this, we can set the delay_us to 1, which is more appropriate
in this situation and universal. Besides, we can delay the execution
of the polling, giving the GIC a chance to work in parallel with the CPU
on the entry path.

评论 (2)

Hey lushenming, Welcome to openEuler Community.
All of the projects in openEuler Community are maintained by @openeuler-ci-bot.
That means the developers can comment below every pull request or issue to trigger Bot Commands.
Please follow instructions at https://gitee.com/openeuler/community/blob/master/en/sig-infrastructure/command.md to find the details.

lushenming 创建了需求
lushenming 关联仓库设置为openEuler/kernel
openeuler-ci-bot 添加了
 
sig/Kernel
标签
zhengzengkai 关联分支设置为openEuler-21.09
展开全部操作日志

您好,由于长期无更新,按照社区处理流程,先将issue关闭,后续有疑问可以重新开启。

sanglipeng 任务状态新建 修改为已完成

登录 后才可以发表评论

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

搜索帮助