[发明专利]一种虚拟CPU的处理方法及装置在审
申请号: | 201810882095.2 | 申请日: | 2018-08-03 |
公开(公告)号: | CN110795231A | 公开(公告)日: | 2020-02-14 |
发明(设计)人: | 宋文俊 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 11644 北京清源汇知识产权代理事务所(特殊普通合伙) | 代理人: | 冯德魁;窦晓慧 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 虚拟CPU 次数条件 指令 功能失效 物理CPU 虚拟机 上移 自旋 申请 占用 中断 | ||
本申请公开了一种虚拟CPU的处理方法及装置。其中虚拟CPU的处理方法包括:确定虚拟CPU在同一个自旋循环中执行PAUSE指令的次数;判断所述执行PAUSE指令的次数是否满足次数条件;如果所述执行PAUSE指令的次数满足次数条件,则将所述虚拟CPU从所述虚拟CPU所占用的物理CPU资源上移除。采用本申请提供的方法,解决了当虚拟机中存在大量中断的时候,PLE功能失效的问题。
技术领域
本申请涉及虚拟化技术领域,具体涉及一种虚拟CPU的处理方法及装置。
背景技术
云计算已经成为现代信息技术产业的核心技术框架,未来越来越多的信息技术应用会部署在云上。云计算的核心技术就是虚拟化。
自旋锁,即spin lock,是用于保护共享资源的一种锁机制。在虚拟机中,CPU在获取自旋锁失败的时候,会一直处于忙等待状态。虽然CPU制造厂商Intel在自旋锁的实现中引入了PAUSE指令,可以提高自旋锁的性能,并且在一定程度上降低了CPU忙等待的功耗,但是这些性能提高还不能满足要求。
为了提高物理CPU的利用率,Intel引入了PLE(Pause-Loop Exiting)技术。PLE技术是指当虚拟机监控程序发现虚拟CPU一直在进行忙等待,且忙等待的时间超过了预定的阈值,则虚拟机监控程序将该虚拟CPU上的物理CPU处理走,被处理走的物理CPU用于运行其他虚拟CPU或者其他任务。这样就避免了虚拟CPU一直处于忙等待时,物理CPU资源的浪费。但是目前Intel的PLE也存在问题,即当虚拟机中存在大量中断的时候,PLE功能就会失效。
发明内容
本申请提供一种虚拟CPU的处理方法及装置,以解决当虚拟机中存在大量中断的时候,PLE的功能失效的问题。
本申请提供的虚拟CPU的处理方法,包括:
确定虚拟CPU在同一个自旋循环中执行PAUSE指令的次数;
判断所述执行PAUSE指令的次数是否满足次数条件;
如果所述执行PAUSE指令的次数满足次数条件,则将所述虚拟CPU从所述虚拟CPU所占用的物理CPU资源上移除。
优选的,所述确定虚拟CPU在同一个自旋循环中执行PAUSE指令的次数,包括:
判断准备执行的PAUSE指令对应的自旋循环是否为之前执行的PAUSE指令对应的自旋循环,如果是,则针对所述执行PAUSE指令的次数进行递增操作,否则,针对所述执行PAUSE指令的次数进行重新计数。
优选的,所述判断准备执行的PAUSE指令对应的自旋循环是否为之前执行的PAUSE指令对应的自旋循环,包括:判断准备执行的PAUSE指令对应的第一自旋循环标识与第一存储空间预先存储的与之前执行的PAUSE指令对应的第二自旋循环标识是否相同;
所述如果是,则针对所述执行PAUSE指令的次数进行递增操作,包括:如果所述第一自旋循环标识与所述第二自旋循环标识相同,则针对所述执行PAUSE指令的次数进行递增操作;
所述否则,针对所述执行PAUSE指令的次数进行重新计数,包括:如果所述第一自旋循环标识与所述第二自旋循环标识不相同,则针对所述执行PAUSE指令的次数进行重新计数。
优选的,还包括:如果所述第一存储空间未存储任何一个自旋循环标识,则将所述第一自旋循环标识存入所述第一存储空间。
优选的,还包括:如果所述第一存储空间未存储任何一个自旋循环标识,则针对所述执行PAUSE指令的次数进行递增操作。
优选的,如果所述第一自旋循环标识与所述第二自旋循环标识不相同,则将所述第一自旋循环标识写入所述第一存储空间。
优选的,所述第一存储空间为MSR。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810882095.2/2.html,转载请声明来源钻瓜专利网。