登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
登录
注册
代码拉取完成,页面将自动刷新
开源项目
>
其他开源
>
操作系统
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
29
Star
70
Fork
376
openEuler
/
qemu
代码
Issues
36
Pull Requests
7
Wiki
统计
流水线
服务
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
Qemu支持dirtylimit特性
已完成
#I5U8ER
任务
黄勇
成员
创建于
2022-10-06 11:04
【特性描述】 qemu upstream已支持DirtyLimit特性,反向合入upstream的DirtyLimit特性,同时合入正在提交上游社区的DirtyLimit迁移特性 具体工作包含多个PR,每个PR的内容如下: 1. 优化脏页速率计算代码,为DirtyLimit特性的实现做准备,涉及以下三个方面的修改 - 这里是列表文本.增加逻辑,是的Qemu可以针对每个vCPU搜集脏页脏页数 - 引入cpu_list_generation_id用于标记cpu经过的热插拔代际,用于在vCPU速率计算时判断采样期间cpu数是否变化 - 优化脏页速率计算代码,让脏页速率计算与DirtyLimit功能可以使用公共的接口 2. 实现脏页速率限制(DirtyLiimt)核心逻辑,涉及以下三个方面修改 - 引入除迁移(GLOBAL_DIRTY_MIGRATION)、速率计算(GLOBAL_DIRTY_DIRTY_RATE)以外的第三种脏页日志搜集场景:速率限制(GLOBAL_DIRTY_LIMIT)。用于标识当前是否有应用在使用日志接口采集内存脏页信息。 - 新增单独的文件dirtylimit.c,利用已有的速率计算接口实现周期性的脏页速率计算。 - 实现脏页速率限制逻辑:每当vCPU因为KVM_EXIT_DIRTY_RING_FULL退出到用户态时,检查速率限制功能是否开启,如果开启则计算vCPU的睡眠时间,限制vCPU运行。 3. 实现脏页速率限制接口,脏页速率限制提供了三个qmp接口及其对应的hmp接口 - set-vcpu-dirty-limit:设置脏页速率限制,该接口提供可选参数cpu_id参数,可以针对每个vCPU设置脏页速率限制,也可以针对所有vCPU。 - cancel-vcpu-dirty-limit:取消脏页速率限制,该接口同样提供可选参数cpu_id参数。 - query-vcpu-dirty-limit:列出所有包括未热添加的vCPU的脏页速率以及限制情况。 4. 增加脏页速率接口test case 【特性竞争力】 DirtyLimit实现一种vCPU粒度的脏页速率限制,为上层应用提供一种新的vCPU Qos能力。 【硬件架构】 x86 【特性约束】 x86 【涉及仓库】 https://gitee.com/openeuler/qemu 【交付个人/团队】 天翼云虚拟化团队
【特性描述】 qemu upstream已支持DirtyLimit特性,反向合入upstream的DirtyLimit特性,同时合入正在提交上游社区的DirtyLimit迁移特性 具体工作包含多个PR,每个PR的内容如下: 1. 优化脏页速率计算代码,为DirtyLimit特性的实现做准备,涉及以下三个方面的修改 - 这里是列表文本.增加逻辑,是的Qemu可以针对每个vCPU搜集脏页脏页数 - 引入cpu_list_generation_id用于标记cpu经过的热插拔代际,用于在vCPU速率计算时判断采样期间cpu数是否变化 - 优化脏页速率计算代码,让脏页速率计算与DirtyLimit功能可以使用公共的接口 2. 实现脏页速率限制(DirtyLiimt)核心逻辑,涉及以下三个方面修改 - 引入除迁移(GLOBAL_DIRTY_MIGRATION)、速率计算(GLOBAL_DIRTY_DIRTY_RATE)以外的第三种脏页日志搜集场景:速率限制(GLOBAL_DIRTY_LIMIT)。用于标识当前是否有应用在使用日志接口采集内存脏页信息。 - 新增单独的文件dirtylimit.c,利用已有的速率计算接口实现周期性的脏页速率计算。 - 实现脏页速率限制逻辑:每当vCPU因为KVM_EXIT_DIRTY_RING_FULL退出到用户态时,检查速率限制功能是否开启,如果开启则计算vCPU的睡眠时间,限制vCPU运行。 3. 实现脏页速率限制接口,脏页速率限制提供了三个qmp接口及其对应的hmp接口 - set-vcpu-dirty-limit:设置脏页速率限制,该接口提供可选参数cpu_id参数,可以针对每个vCPU设置脏页速率限制,也可以针对所有vCPU。 - cancel-vcpu-dirty-limit:取消脏页速率限制,该接口同样提供可选参数cpu_id参数。 - query-vcpu-dirty-limit:列出所有包括未热添加的vCPU的脏页速率以及限制情况。 4. 增加脏页速率接口test case 【特性竞争力】 DirtyLimit实现一种vCPU粒度的脏页速率限制,为上层应用提供一种新的vCPU Qos能力。 【硬件架构】 x86 【特性约束】 x86 【涉及仓库】 https://gitee.com/openeuler/qemu 【交付个人/团队】 天翼云虚拟化团队
评论 (
1
)
登录
后才可以发表评论
状态
已完成
待办的
进行中
已完成
已拒绝
负责人
未设置
标签
sig/Virt
未设置
项目
未立项任务
未立项任务
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (61)
标签 (366)
master
qemu-8.2.0
qemu-6.2.0
riscv
openEuler-20.03-LTS-Next
openEuler-20.03-LTS-SP1
staging
staging-8.2
staging-7.2
staging-8.1
stable-8.1
stable-7.2
stable-8.0
staging-8.0
block
qemu-6.2.0-hotupgrade
openEuler-20.03-LTS
stable-7.2-staging
stable-8.0-staging
qemu-5.0.0-dpu
qemu-4.1.0
stable-6.1
stable-6.0
stable-6.0-staging
openEuler-21.03
qemu-4.1-4.2
openEuler-20.09
stable-5.0
openEuler-RISCV
stable-4.2
stable-4.1
stable-4.0
stable-3.1
stable-3.0
stable-2.12
stable-2.11
stable-2.10
stable-2.9
stable-2.8
stable-2.7
stable-2.6
stable-2.5
stable-2.4
stable-2.3
stable-2.2
stable-2.1
stable-2.0
stable-1.7
stable-1.6
stable-1.5
stable-1.4
stable-1.3
stable-1.2
stable-1.1
stable-1.0
stable-0.15
stable-0.14
stable-0.13
stable-0.12
stable-0.11
stable-0.10
v8.1.4
v7.2.8
v8.2.0
v8.2.0-rc4
v8.2.0-rc3
v8.2.0-rc2
v8.2.0-rc1
v7.2.7
v8.1.3
v8.2.0-rc0
v8.1.2
v8.1.1
v7.2.6
v8.0.5
v8.1.0
v8.1.0-rc4
v8.1.0-rc3
v7.2.5
v8.0.4
v8.1.0-rc2
v8.1.0-rc1
v8.1.0-rc0
v8.0.3
v7.2.4
trivial-patches-pull-request
v8.0.2
v8.0.1
v7.2.3
v7.2.2
v8.0.0
v8.0.0-rc4
v8.0.0-rc3
v7.2.1
v8.0.0-rc2
v8.0.0-rc1
v8.0.0-rc0
v7.2.0
v7.2.0-rc4
v7.2.0-rc3
v7.2.0-rc2
v7.2.0-rc1
v7.2.0-rc0
v7.1.0
v7.1.0-rc4
v7.1.0-rc3
v7.1.0-rc2
v7.1.0-rc1
v7.1.0-rc0
v7.0.0
v7.0.0-rc4
v7.0.0-rc3
v7.0.0-rc2
v7.0.0-rc1
v7.0.0-rc0
v6.1.1
v6.2.0
v6.2.0-rc4
v6.2.0-rc3
v6.2.0-rc2
v6.2.0-rc1
v6.2.0-rc0
v6.0.1
v6.1.0
v6.1.0-rc4
openEuler-20.03-LTS-SP2
v6.1.0-rc3
v6.1.0-rc2
v6.1.0-rc1
v6.1.0-rc0
v6.0.0
v6.0.0-rc5
v6.0.0-rc4
v6.0.0-rc3
v6.0.0-rc2
v6.0.0-rc1
v6.0.0-rc0
v5.2.0
v5.2.0-rc4
v5.2.0-rc3
v5.2.0-rc2
v5.2.0-rc1
v5.2.0-rc0
openEuler-20.09-20200929
v5.0.1
v5.1.0
v5.1.0-rc3
v5.1.0-rc2
v5.1.0-rc1
v5.1.0-rc0
v4.2.1
v5.0.0
v5.0.0-rc4
v5.0.0-rc3
v5.0.0-rc2
v5.0.0-rc1
v5.0.0-rc0
v4.2.0
v4.2.0-rc5
v4.2.0-rc4
v4.2.0-rc3
v4.2.0-rc2
v4.1.1
v4.2.0-rc1
v4.2.0-rc0
v4.0.1
v3.1.1.1
v4.1.0
v4.1.0-rc5
v4.1.0-rc4
v3.1.1
v4.1.0-rc3
v4.1.0-rc2
v4.1.0-rc1
v4.1.0-rc0
v4.0.0
v4.0.0-rc4
v3.0.1
v4.0.0-rc3
v4.0.0-rc2
v4.0.0-rc1
v4.0.0-rc0
v3.1.0
v3.1.0-rc5
v3.1.0-rc4
v3.1.0-rc3
v3.1.0-rc2
v3.1.0-rc1
v3.1.0-rc0
v3.0.0
v3.0.0-rc4
v2.12.1
v3.0.0-rc3
v3.0.0-rc2
v3.0.0-rc1
v3.0.0-rc0
v2.11.2
v2.12.0
v2.12.0-rc4
v2.12.0-rc3
v2.12.0-rc2
v2.12.0-rc1
v2.12.0-rc0
v2.11.1
v2.10.2
v2.11.0
v2.11.0-rc5
v2.11.0-rc4
v2.11.0-rc3
v2.11.0-rc2
v2.11.0-rc1
v2.11.0-rc0
v2.10.1
v2.9.1
v2.10.0
v2.10.0-rc4
v2.10.0-rc3
v2.10.0-rc2
v2.10.0-rc1
v2.10.0-rc0
v2.8.1.1
v2.9.0
v2.9.0-rc5
v2.9.0-rc4
v2.9.0-rc3
v2.8.1
v2.9.0-rc2
v2.9.0-rc1
v2.9.0-rc0
v2.7.1
v2.8.0
v2.8.0-rc4
v2.8.0-rc3
v2.8.0-rc2
v2.8.0-rc1
v2.8.0-rc0
v2.6.2
v2.7.0
v2.7.0-rc5
v2.7.0-rc4
v2.6.1
v2.7.0-rc3
v2.7.0-rc2
v2.7.0-rc1
v2.7.0-rc0
v2.6.0
v2.5.1.1
v2.6.0-rc5
v2.6.0-rc4
v2.6.0-rc3
v2.6.0-rc2
v2.6.0-rc1
v2.6.0-rc0
v2.5.1
v2.5.0
v2.5.0-rc4
v2.5.0-rc3
v2.5.0-rc2
v2.5.0-rc1
v2.5.0-rc0
v2.4.1
v2.4.0.1
v2.3.1
v2.4.0
v2.4.0-rc4
v2.4.0-rc3
v2.4.0-rc2
v2.4.0-rc1
v2.4.0-rc0
v2.3.0
v2.3.0-rc4
v2.3.0-rc3
v2.3.0-rc2
v2.3.0-rc1
v2.3.0-rc0
v2.2.1
v2.1.3
v2.2.0
v2.2.0-rc5
v2.2.0-rc4
v2.2.0-rc3
v2.2.0-rc2
v2.2.0-rc1
v2.2.0-rc0
v2.1.2
v2.1.1
v2.0.2
v2.0.1
v2.1.0
v2.1.0-rc5
v2.1.0-rc4
v2.1.0-rc3
v1.7.2
v2.1.0-rc2
v2.1.0-rc1
v2.1.0-rc0
v2.0.0
v2.0.0-rc3
v2.0.0-rc2
v2.0.0-rc1
v2.0.0-rc0
v1.7.1
v1.6.2
v1.7.0
v1.7.0-rc2
v1.7.0-rc1
v1.7.0-rc0
v1.6.1
v1.5.3
v1.6.0
v1.6.0-rc3
v1.6.0-rc2
v1.6.0-rc1
v1.6.0-rc0
v1.5.2
v1.5.1
v1.4.2
v1.5.0
v1.5.0-rc3
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-rc0
v1.4.1
v1.4.0
v1.4.0-rc2
v1.4.0-rc1
v1.4.0-rc0
v1.3.1
v1.2.2
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.3.0-rc0
v1.2.1
v1.1.2
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.2.0-rc1
v1.2.0-rc0
v1.1.1
v1.1.0
v1.1.0-rc4
v1.1.0-rc3
v1.1-rc2
v1.1.0-rc2
v1.1-rc1
v1.1-rc0
v1.0.1
v1.0
v1.0-rc4
v1.0-rc3
v1.0-rc2
v1.0-rc1
v1.0-rc0
v0.15.1
v0.15.0
v0.15.0-rc2
v0.15.0-rc1
v0.15.0-rc0
v0.14.1
v0.14.0
v0.14.0-rc2
v0.14.0-rc1
v0.14.0-rc0
v0.13.0
v0.13.0-rc3
v0.13.0-rc2
v0.13.0-rc1
v0.13.0-rc0
v0.12.5
v0.12.4
v0.12.3
v0.12.2
v0.12.1
v0.12.0
v0.12.0-rc2
v0.12.0-rc1
v0.12.0-rc0
v0.11.1
v0.11.0
v0.11.0-rc2
v0.11.0-rc1
v0.10.6
v0.11.0-rc0
v0.10.5
v0.10.4
v0.10.3
release_0_10_2
v0.10.2
release_0_10_1
v0.10.1
release_0_10_0
v0.10.0
release_0_9_1
v0.9.1
release_0_9_0
v0.9.0
release_0_8_2
v0.8.2
release_0_8_1
v0.8.1
release_0_7_1
v0.7.1
release_0_7_0
v0.7.0
release_0_6_1
v0.6.1
release_0_6_0
v0.6.0
release_0_5_1
v0.5.1
v0.5.0
v0.4.4
v0.4.3
v0.4.2
v0.4.1
v0.4.0
v0.3.0
v0.2.0
v0.1.6
v0.1.5
v0.1.4
v0.1.3
v0.1.1
v0.1.0
initial
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
预计工期
(小时)
参与者(1)
C
1
https://gitee.com/openeuler/qemu.git
git@gitee.com:openeuler/qemu.git
openeuler
qemu
qemu
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册