设为首页收藏本站language 语言切换
查看: 1669|回复: 2
收起左侧

[分享] 在AMD平台上实现KVM虚拟化技术 (32)

[复制链接]
发表于 2012-10-31 17:46:33 | 显示全部楼层 |阅读模式
ASID
即 Address Space ID, 是较新的 AMD-V 处理器支持的特征。 ASID 就是在 TLB 的entries 中增加一个 ASID 字段用于区分不同地址空间上下文的 entries, 以便多个地址空间的 TLB entries 可以共存在一个 TLB 中,减少地址空间切换时不必要的 TLB Flush 操作。
为支持对 ASID 特征的使用,AMD-V 在VMCS.CONTROL 中增加了两个字段 G_ASID 和TLB_CTRL。
G_ASID用于指定VMRUN 所运行的虚拟机的 ASID。
TLB_CTRL用于控制VMRUN 在重新加载虚拟机状态时怎样 Flush TLB。
TLB_CTRL可有 000,001,011,111 四个值,其中 000 表示不做 TLB Flush,001 表示刷全部的 TLB Entries, 011 表示 Flush 本 ASID 的全部TLB Entries, 111 表示 Flush 本 ASID 的非全局的 TLB Entries。 目前 RHEL6.2 的 KVM 代码已经利用 ASID 和 VMCB.TLB_CTRL 做了 TLB Flush 方面的优化。 另外 AMD-V 中还有一个和 ASID 直接相关的指令 invlpga, 执行该指令只 Flush 指定线性地址和 ASID 对应的 TLB entries。 Invlpga 能为 VMM 对 TLB 的管理提供更多的优化空间,如主机上 Linux 的物理页回收代码在释放掉一个物理页时,可根据该页所属的 ASID,用 Invlpga 而非 Invlpg 来做 TLB Flush, 目前的 KVM 还没有有效的利用 Invlpga。

发表于 2012-10-31 19:18:29 | 显示全部楼层
世界末日
词曲:周杰伦
演唱:周杰伦
时间标签制作:新娃  QQ:287369614
X   Music   X
想笑 来伪装掉下的眼泪
点点头 承认自己会怕黑
我只求 能借一点的时间来陪
你却连同情都不给
想哭 来试探自己麻痹了没
全世界 好像只有我疲惫
无所谓 反正难过就敷衍走一回
但愿绝望和无奈远走高飞
天灰灰 会不会 让我忘了你是谁
夜越黑 梦违背 难追难回味
我的世界将被摧毁 也许事与愿违
累不累 睡不睡 单影无人相依偎
夜越黑 梦违背 有谁肯安慰
我的世界将被摧毁
也许颓废也是……
X   Music   X
想哭 来试探自己麻痹了没
全世界 好像只有我疲惫
无所谓 反正难过就敷衍走一回
但愿绝望和无奈远走高飞
天灰灰 会不会 让我忘了你是谁
夜越黑 梦违背 难追难回味
我的世界将被摧毁 也许事与愿违
累不累 睡不睡 单影无人相依偎
夜越黑 梦违背 难追难回味
我的世界将被摧毁
也许颓废也是另一种美
END
沙发 2012-10-31 19:18:29 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-1 18:34:41 | 显示全部楼层
我给大家分享点知识
板凳 2012-11-1 18:34:41 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-9 10:51 , Processed in 0.090690 second(s), 16 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表