首页> 中国专利> 用于捕捉轻量虚拟机管理器中的错误条件的方法、系统和装置

用于捕捉轻量虚拟机管理器中的错误条件的方法、系统和装置

摘要

公开了用于捕捉轻量虚拟机管理器中的错误条件的方法和装置。被公开的示例方法包括:在VMM和虚拟机(VM)之间定义共享的存储器结构;当VMM开辟VM时在与向量值相关联的VM上安装中止处理程序;作为对检测到错误的响应,将VMM状态信息转移到共享的存储器结构;以及调用VM上的中止处理程序以将共享的存储器结构的内容转移到非易失性存储器。

著录项

  • 公开/公告号CN104321748A

    专利类型发明专利

  • 公开/公告日2015-01-28

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201280073598.6

  • 发明设计人 B·朱;P·邹;M·塔拉姆;L·陈;K·王;

    申请日2012-06-29

  • 分类号G06F9/455;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人毛力

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 04:48:46

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-06-14

    未缴年费专利权终止 IPC(主分类):G06F 9/455 专利号:ZL2012800735986 申请日:20120629 授权公告日:20180202

    专利权的终止

  • 2018-02-02

    授权

    授权

  • 2015-02-25

    实质审查的生效 IPC(主分类):G06F9/455 申请日:20120629

    实质审查的生效

  • 2015-01-28

    公开

    公开

说明书

技术领域

本公开一般涉及虚拟化,更具体地涉及捕捉轻量虚拟机管理器中的错 误条件的方法、系统和装置。

背景技术

虚拟机管理器(VMM)促进虚拟机(VM)利用底层平台的资源。示例 VMM可以允许一个或多个VM以保持跨VM安全和为每一个活跃的VM 管理存储器、进程、中断和/或保护错误的方式共享这种资源。

附图说明

图1是根据本公开的教导的用于捕捉轻量虚拟机管理器中的错误条件 的示例系统的示意图。

图2是图1所示的示例系统的示例主机错误处理程序的示意图。

图3是图1所示的示例系统的示例客户机中止处理程序的示意图。

图4-7是表示可被执行用于捕捉轻量虚拟机管理器中的错误条件的示 例机器可读指令的流程图。

图8是可以执行图4-7所示的指令以实现图1-3所示的示例系统和装置 的示例处理器平台的示意图。

具体实施方式

操作系统通常采用内置机制来检测无法恢复的错误并且提供存储器转 储以便在调试操作期间辅助开发者。存储器转储提供指示计算机程序工作 的存储器和/或寄存器被记录的状态的信息。此外,存储器转储可以包括计 算机程序在其上执行的底层平台的通用寄存器信息。在操作系统崩溃之前, 核心转储收集平台信息并将其存储到非易失性存储器,使得可以进行崩溃 后的(有时也称作事后分析)回顾,以显示引起先前的崩溃的条件。

在操作系统(OS)以由虚拟机管理器(VMM)管理的虚拟化的方式运行的 情况下,存储器转储可以以类似方式发生,而不影响一个或多个诸如其他 OS那样的替换虚拟机(VM)。另一方面,在VMM经历内部错误(如:解除 引用空指针、访问不存在的物理存储器、内部意外逻辑缺陷等)的情况下, VMM可能不具有足够的资源来执行一个或多个存储器转储。例如:一些 VMM被称为缺少文件系统访问支持的”轻量VMMs”。为了最小化和/或甚 至消除VMM攻击点,可以去除对VMM的一个或多个机制,例如文件系 统访问支持。这样去除VMM的一个或多个机制也使VMM能消耗系统平 台相对较小的配置文件,进而减少平台资源消耗。

本文中公开的方法、装置、系统和/或制品能促进轻量VMM执行期间 的重大错误情况下的VMM故障检测。如下文进一步的详细描述所述,在 重大VMM错误的情况下,一个或多个事件注入调用客户机OS,以将错误 信息从共享的VMM/客户机存储器(如:易失性随机存取存储器(RAM))转移 到非易失性存储(如:硬盘驱动器)。在一些示例中,VMM调用和/或以其它 方式请求与由VMM管理的一个或多个活跃的客户机OS关联的一个或多个 内置文件系统访问服务。在将错误信息(如:平台寄存器状态、存储器镜像 等)转移到非易失性存储器后,每一个客户机OS可以以更优美的方式关闭 和/或调用崩溃通知(如“死机蓝屏”等)。

图1示出包括VMM(如:有时称为根模式的主机)102、VM(如:有时 称为非根模式的客户机OS)104和底层平台硬件106的示例虚拟化系统100。 示例平台硬件106可以包括但不限于:处理器、盘驱动器、网络元件和/或 存储器(如:RAM、只读存储器(ROM)、闪存等)。如下文进一步的详细描 述所述,示例VMM 102包括异常处理程序108、主机错误处理程序110和 包含任何数目VM进入控制字段(VECF)114的虚拟机控制数据结构 (VMCS)112。

示例客户机104(或其他VM)包括客户机软件116、OS中断描述表 (IDT)118、客户机中止处理程序120和崩溃通知122。在操作中,通信接口 124促进VMM 102和每一个客户机(如图1所示的客户机104)之间的通信。 通信接口124可以包括但不限于诸如在基于英特尔的虚拟化系统中的超级 调用(HyperCall)或虚拟机调用(VMCALL)那样的管理程序调用系统。在示例 客户机软件116产生被示例异常处理程序108检测到的异常的情况下,示 例主机错误处理程序检测到该异常。在另一些示例中,该异常可以由VMM  102产生和/或以其它方式经历。VMM异常包括但不限于:除以零尝试和无 效存储器访问尝试等。如上文讨论所讨论的那样,一些VMM不具有文件 系统访问支持,这妨碍了对非易失性存储器的存储器转储。本文公开的方 法、系统、装置和/或制品收集错误信息,并且将该错误信息存储到共享的 易失性存储器中,并且调用一个或多个客户机以采用原生和/或定制的文件 系统访问机制将共享的易失性存储器的内容转移到诸如盘驱动器那样的非 易失性存储器中。平台状态的非易失性存储部分地允许用于调试的平台事 后分析。

作为对检测到错误(如:重大错误)的响应,示例主机错误处理程序110 将平台状态信息填入易失性共享存储器。示例易失性共享存储器可以是示 例平台硬件106的RAM 126。示例主机错误处理程序110也将示例VMCS  112配置成启动一个或多个注入到诸如图1所示的示例客户机VM 104那样 的一个或多个可用的客户机的事件注入。一般而言,VMM通过使用VM进 入将控制转移到VM,这有时被称为VMX事务。VM进入的行为由VMCS 控制,并且可以包括执行VM启动(VMLAUNCH)或VM恢复(VMRESUME) 指令,相关联的数据结构位于仅对主机VMM可见的特定主机存储器区域 中。这种对可以控制VM行为的机制的保护增强了VMM的安全性和/或由 该VMM管理的一个或多个VM的安全性。上述示例VMM控制机制包括 但不限于本文公开的VMX事务、方法、装置、系统和/或制品。例如:一 些处理器采用安全虚拟机(SVM)架构,其具有用于管理操作模式控制、存 储器管理、截取、中断、异常、状态变化管理、系统管理模式、处理器初 始化和/或数据结构操作的相关联的SVM指令。

作为对调用一个或多个VM进入的响应,客户机104的示例OS IDT 118 引用提供的向量值。在客户机事件注入期间由示例主机错误处理程序110 提供的至少一个向量值启动客户机中止处理程序120。如下文进一步详细描 述的那样,当VMM 102启动每一个新的和/或附加的VM时,示例主机错 误处理程序110用至少一个附加向量值配置相关联的OS IDT。此外,示例 主机错误处理程序向与新的向量值关联的客户机104增加对应的客户机中 止处理程序120。当示例客户机中止处理程序120被调用时,其访问共享的 易失性存储器(如:RAM 126)并且采用文件访问服务以将共享的易失性存储 器的内容转移到非易失性存储器(如:平台硬件106的硬驱动器128)。事实 上,示例事件注入允许轻量VMM在利用一个或多个客户机VM的原生和/ 或定制的文件访问服务的同时在平台上被实现。此外,在任何易失性存储 器的内容转移到非易失性存储器之后或转移期间,示例客户机中止处理程 序120启动崩溃通知122(如:死机蓝屏、定制的错误消息等。)。

图2是图1所示的示例VMM主机错误处理程序110的示意图。在图2 所示的示例中,主机错误处理程序110包括主机存储器管理器202、客户机 OS监测器204、主机异常监测器206、客户中止处理程序的安装程序208、 客户机OS向量表管理器210、主机状态收集器212、加密引擎214和异常 事件注入程序216。在操作中,示例主机存储管理管理器202定义和/或以 其它方式分配共享的存储器,使其被用作用于平台和/或客户机VM状态信 息的储存库。可以将对诸如图1所示的示例RAM 126那样的共享的存储器 的访问特权设置为对由示例VMM 102管理的一个或多个VM是只读的。

示例客户机OS监测器204检测和/或确定虚拟化系统100中新的和/或 附加的VM何时启动。作为对检测诸如图1所示的示例客户机104那样的 新VM的响应,示例客户机中止处理程序的安装程序208将客户机中止程 序120安装到客户机104上。此外,示例客户机OS向量表管理器210将客 户机104OS IDT 118配置成包括与被安装的客户机中止处理程序120相关 联的新向量。相应地,如下文进一步的详细描述所述,当合适的向量被主 机错误处理程序110呼叫和/或调用时,被安装的客户机中止程序120开始 执行。

但是,在示例客户机OS监测器204没有检测到和/或没有确定新的和/ 或附加的VM在虚拟化系统100中被启动的情况下,示例主机异常监测器 206确定是否有错误发生。如果没有错误发生,则示例客户机OS监测器204 继续确定新的和/或附加的VM是否在示例虚拟化系统100中被启动。另一 方面,如果标识到了错误,则示例主机异常监测器206确定发生了哪种类 型的错误。例如,对于非重大错误,示例主机状态收集器212可以只揭示 关于VMM状态的最小量信息。一般而言,VMM的安全性对于在虚拟化的 环境中使攻击者可以利用的一个或多个弱点最小化是非常重要的。潜在的 攻击者知道越多关于VMM寄存器状态和/或内容的信息,就为对VMM和/ 或由VMM管理的VM发起的非法攻击提供了越多机会。在另一些示例中, 主机状态收集器212会存储详细的VMM状态信息,例如:发生重大错误 时的寄存器值和/或共享的RAM 126的镜像。这些详细信息可以进一步由加 密引擎214加密,以保护该详细信息不被攻击和/或公开。

如果示例虚拟化系统100具有诸如两个客户机OS那样的两个或多个 执行VM,则示例VMM错误处理程序110确定是否为全部或部分客户机 OSs启动事件注入。为了提高安全性,示例VMM错误处理程序110可以 只选择一个客户机OS为主VM和/或以其它方式受信任的VM以处理被加 密的VMM状态信息的文件系统存储。在另一些示例中,VMM错误处理程 序110可以继续为系统100的所有正在操作的VM进行事件注入以收集尽 可能多的调试信息。示例异常事件注入程序216配置VM进入中断信息字 段、配置VM进入异常错误码信息和/或执行VM恢复(VMRESUME)VMX 指令以完成将文件系统从易失性存储器转移到非易失性存储器。如上文所 述,VECF控制VM进入行为,其中示例VM进入中断信息字段包含与表1 格式一致的32位。

表1

在表1所示的示例中,位7:0确定客户机OS IDT中的哪个条目被用来 调用示例客户机中止处理程序120,位10:8确定如何执行注入的细节,位 11确定递送是否向客户机的栈推送错误码,位31设置为1时允许VM进 入注入事件,有效位在每一次VM退出操作时被清除。除了表1所示的示 例VM进入中断信息字段之外,示例主机错误处理程序110也可以修改VM 进入异常错误码和VM进入指令长度字段以确定在客户机OS处理事件时 被推送到栈上的指令指针寄存器的值。在配置完字段后,示例主机错误处 理程序110可以调用VM恢复(VMRESUME)指令来执行VM进入操作。

图3是图1所示的示例VMM客户机中止处理程序120的示意图。在 图3所示的示例中,客户机中止处理程序120包括客户机存储管理器302、 客户机状态收集器304、错误通知引擎306和关闭管理器308。在操作中, 示例OS IDT 118接收来自包含与示例客户机中止处理程序120相关联的值 的示例主机错误处理程序110的向量。执行客户机中止程序120时,示例 客户机存储管理器302将共享的存储器结构(如:RAM 126)的内容转移到非 易失性存储器(如:硬驱动器128)。如上文所讨论的那样,示例主机错误处 理程序110先前执行对VMM 102的状态检查,并将VMM的状态信息存储 在共享的存储器中。示例客户机状态收集器304收集指示VM状态的信息 (诸如寄存器值),示例客户机存储管理器302将该客户机VM状态信息 转移到非易失性存储器。示例错误通知引擎306调用一个或多个通知屏幕, 如:定制的错误屏幕、死机蓝屏和/或内核严重错误屏幕。示例关闭管理器 308启动VM客户机关闭程序,允许客户机以尽可能优美的方式停止。

虽然图1-3示出了在轻量虚拟机管理器中实现示例虚拟化系统100、示 例VMM主机错误处理程序110和示例客户机中止处理程序120以捕捉错 误条件的示例方式,但是图1-3所示的一个或多个元件、进程和/或器件可 以被组合、拆分、重新安排、省略、消除和/或以其他任何方式被实现。进 一步说,可以通过硬件、软件、固件和/或其任意组合实现图1-3所示的示 例虚拟化系统100、示例VMM 102、示例VM 104、示例异常处理程序108、 示例主机错误处理程序110、示例VMCS 112、示例VECF 114、示例OS IDT  118、示例客户机中止处理程序120、示例崩溃通知122、示例主机存储管 理器202、示例客户机OS监测器204、示例主机异常监测器206、示例客 户机中止处理程序的安装程序208、示例客户机OS向量表管理器210、示 例主机状态收集器212、示例加密引擎214、示例异常事件注入程序216、 示例客户机存储管理器302、示例客户机状态收集器304、示例错误通知引 擎306和/或示例关闭管理器308。此外,如下文所述,可以通过硬件、软 件、固件和/或其任意组合实现图1-3所示的示例虚拟化系统100、示例VMM  102、示例VM 104、示例异常处理程序108、示例主机错误处理程序110、 示例VMCS 112、示例VECF 114、示例OS IDT 118、示例客户机中止处理 程序120、示例崩溃通知122、示例主机存储管理器202、示例客户机OS 监测器204、示例主机异常监测器206、示例客户机中止处理程序的安装程 序208、示例客户机OS向量表管理器210、示例主机状态收集器212、示 例加密引擎214、示例异常事件注入程序216、示例客户机存储管理器302、 示例客户机状态收集器304、示例错误通知引擎306和/或示例关闭管理器 308。进一步说,可以通过一个或多个电路、可编程处理器、专用集成电路 (ASIC)、可编程逻辑器件(PLD)和/或现场可编程逻辑器件(FPLD)等实现图 1-3所示的示例虚拟化系统100、示例VMM 102、示例VM 104、示例异常 处理程序108、示例主机错误处理程序110、示例VMCS 112、示例VECF  114、示例OS IDT 118、示例客户机中止处理程序120、示例崩溃通知122、 示例主机存储管理器202、示例客户机OS监测器204、示例主机异常监测 器206、示例客户机中止处理程序的安装程序208、示例客户机OS向量表 管理器210、示例主机状态收集器212、示例加密引擎214、示例异常事件 注入程序216、示例客户机存储管理器302、示例客户机状态收集器304、 示例错误通知引擎306和/或示例关闭管理器308中的任何示例。当阅读到 本专利的任何装置或系统权利要求纯粹覆盖软件和/或固件的实现时,如图 1-3所示的示例虚拟化系统100、示例VMM 102、示例VM 104、示例异常 处理程序108、示例主机错误处理程序110、示例VMCS 112、示例VECF  114、示例OS IDT 118、示例客户机中止处理程序120、示例崩溃通知122、 示例主机存储管理器202、示例客户机OS监测器204、示例主机异常监测 器206、示例客户机中止处理程序的安装程序208、示例客户机OS向量表 管理器210、示例主机状态收集器212、示例加密引擎214、示例异常事件 注入程序216、示例客户机存储管理器302、示例客户机状态收集器304、 示例错误通知引擎306和/或示例关闭管理器308中的至少一个由本文明确 定义包括有形的计算机可读存储介质,例如:存储软件和/或固件的存储器、 DVD、CD、蓝光等。更进一步说,如图1所示的示例系统100可以包括除 图1-3所示对象之外的一个或多个元件、进程和/或器件或作为图1-3所示 的对象的替代的一个或多个元件、进程和/或器件,并且/或者可以包括所有 示出的元件、进程和/或器件中的一个或多个。

图4-7分别示出表示图1所示的实现系统100的示例机器可读指令的 流程图、表示图1和图2所示的主机错误处理程序110的流程图以及表示 图1和图3所示的客户机中止处理程序120的流程图。在本示例中,机器 可读指令包括由联系图8在下文讨论中示出的示例计算机800中示出的处 理器812那样的处理器执行的程序。程序可以被具体化在存储于诸如 CD-ROM、软盘、硬驱动器、数字多功能盘(DVD)、蓝光盘或与处理器812 关联的存储器那样的有形的计算机可读存储介质上的软件里,但是全部或 部分程序可以替代地由除处理器812之外的器件执行,并且/或者可以具体 化在固件或专用硬件里。进一步说,虽然参考图4-7所示的流程图描述了 示例程序,但是也可以替代地使用实现示例系统100、示例错误处理程序 110和示例客户机中止程序120的许多其他方法以捕捉轻量虚拟机管理器 中的错误条件。例如,各个框的执行次序可以改变,并且/或者所描述的一 些框可以被改变、消除、或组合。

如上文所述,可以使用存储于有形的计算机可读介质上的被编码的指 令(如:计算机可读指令)实现图4-7所示的示例过程,有形的计算机可 读介质例如:硬盘驱动器、闪存、只读存储器(ROM)、紧凑盘(CD)、数字 多功能盘(DVD)、缓存、随机存取存储器(RAM)和/或其他任何在任何时长 内(如:在扩展时间段内、永久地、在简短的实例期间、在临时缓冲和/或信 息缓存期间)将信息存储于其内的存储介质。如本文所使用的那样,术语“有 形的计算机可读存储介质”被明确地定义为包括任何类型的计算机可读存 储,并且不包括传播的信号。可以附加地或替代地使用存储于非瞬时计算 机可读存储介质上的被编码的指令(如:计算机可读指令)实现图4-7所 示的示例过程,非瞬时计算机可读存储介质例如:硬盘驱动器、闪存、只 读存储器、紧凑盘、数字多功能盘、缓存、随机存取存储器和/或其他任何 在任何时长内(如:在扩展时间段内、永久地、在简短的实例期间、在临时 缓冲和/或信息缓存期间)将信息存储于其内的存储介质。如本文所使用的那 样,术语“非瞬时计算机可读介质”被明确地定义为包括任何类型的计算 机可读存储,并且不包括传播的信号。如本文所使用的那样,当短语”至少” 被用作与权利要求同步使用的转换术语时是和术语“包括”一样的开放式 的。这样,将“至少”用作前序部分中的过渡术语的权利要求可以包括该 权利要求明确所述之外的元素。

图4所示的程序400开始于框402,其中示例主机存储管理器定义一 个或多个错误存储数据结构。在一些示例中,该错误存储数据结构包括诸 如图1所示的示例RAM 126那样的底层硬件106的RAM。示例主机存储 管理器202可以建立特权访问等级以改善对安全的顾虑,如:针对一个或 多个VM(如:客户机104)建立只读特权和/或针对VMM(如:主机102)建立 完全访问特权。示例客户机OS监测器204确定VMM 102是否开辟了新的 VM(框404)。如果确定结果为是,则示例客户机中止处理程序的安装程序 在被新开辟出来的VM中安装客户机中止处理程序(框406)。如上文所述, 每一个VM(如:客户机OS 104)包括诸如图1所示的示例OS IDT 118那样 的OS中断描述表。OS IDT 118通知控制处理器应当基于接收到的具体向 量值执行哪个中断服务例程。示例客户机OS向量表管理器210更新、追加、 替代和/或实现待存储于OS IDT 118中的唯一的向量值,以配置被新开辟出 来的VM 104OS IDT 118(框408)。当OS IDT 118在运行期间接收到对该唯 一的向量值的请求时,调用对应的客户机中止处理程序用于执行。

在新VM未被标识、可用和/或被新开辟出来的情况下(框404),示例 主机异常监测机206监测错误实例中的主机VMM 102(框410)。如果没有 检测和/或标识到错误(框410),则控制返回到客户机OS监测器204以确定 VMM 102是否开辟了新的VM(框404)。但是,在示例主机异常监测器206 检测到VMM错误的情况下(框410),示例主机异常监测器206启动错误信 息捕捉(框412)。

图5所示的程序412开始于框502,其中示例主机异常监测器206确 定被标识的错误是否是特定类型的,诸如是否是无法恢复的。为了最小化 和/或消除安全风险,通常防止将详细的VMM状态信息存储在VMM框架 的操作限制之外。在被标识的错误被视为重大和/或不可恢复的情况下(框 502),示例主机状态收集器212收集与错误码和VMM的寄存器状态相关的 详细日志,以更好地辅助事后的调试努力(框504)。另一方面,在被标识的 错误被视为非重大和/或相对不严重的情况下,示例主机状态收集器212收 集与在相对较高等级上的错误码相关的日志(框506)。一般而言,相比黑客 利用详细的VMM状态信息可以造成的潜在破坏,示例主机状态收集器212 收集的错误日志可以是相对无害的。这样,只有具有相对较高严重性(如 严重的等级)的错误才能证明将详细的VMM状态信息存储到共享的RAM  126是正当的。在一些示例中,确定严重性和/或严重性的解析度并与阈值 和/或错误类型表进行比较。具有第一解析度的错误可以与VMM状态信息 收集的第一类型关联,具有第二解析度(如:错误严重性的更高程度)可以与 VMM状态信息(如:详细的VMM状态信息收集)的第二类型关联。作为附 加的保护,示例加密引擎214加密(框508)由主机错误处理程序110存储于 共享的存储器126内(框510)的所有内容。

示例主机VMM 102可以管理除图1所示的示例VM 104之外的一个或 多个VM。示例主机OS监测器204确定主机VMM 102是否正在管理多个 VM(如:多个客户机OS)(框512),如果是这样,则示例主机错误处理程序110 确定是否将所有的VM作为用于接收异常事件(框514)的候选对象包括进 来。例如:当收集到尽可能多关于VMM 102和所有被开辟出来的VM的信 息时,可以改善调试努力。如上文所述,虽然VMM 102可以揭示一个或多 个错误码、寄存器状态和/或存储器镜像,但是每一个执行的VM也可以包 括一个或多个错误码、寄存器状态和/或存储器镜像。在一些示例中,VMM 主机错误处理程序110选择所有运行的VM以接收异常事件(框514),并且 标记所有可用的活跃于数据收集(框516)的VM。

在另一些示例,例如涉及提高的安全顾虑的情形中,示例主机错误处 理程序110减少在故障事件中存储系统信息的参与对象的数目。在这样的 示例中,主机错误处理程序110不是授权所有可用的VM参与到事件注入 (框514)中,而是选择主VM和/或以其它方式受信任的VM为重启中的事 后活动进行调用(框518)。此外,示例主机错误处理程序110可以标识:只 有被指定的主VM(如:图1所示的示例VM 104)被授权接收事件注入及随 后执行直到完成了VMM 102和任何关联的错误信息的回顾和/或清除(框 518)。

在示例VMM 102只具有单个活跃的VM的情况下(框512)、或所需要 的VM被标记参与到事件注入程序(框516)、或选择了主VM之后(框518), 调用示例异常事件注入程序216(框520)。在图6所示的示意性示例中,异 常事件注入程序216配置VM进入中断信息字段(框602),并且配置VM字 段异常错误码(框604)。每一个字段和/或错误码可以是根据实现特定的和/ 或对VMM类型、平台类型和/或操作系统的细微差别以其它方式定制的。 当VM进入字段和/或错误码被配置时,示例异常事件注入程序216执行 VM恢复(VMRESUME)指令以基于插入到VM进入字段中对应的向量值调 用客户机中止处理程序120(框606)。在附加的VM被识别用于接收异常事 件的情况下,对于每一个被标识的感兴趣的VM,控制返回框602。

图7所示的程序700开始于框702,其中示例VM 104监测示例OS IDT  118,以获取指示应当被执行的服务例程的向量。如果没有接收到向量值或者 接收到的向量值不是与示例客户机中止处理程序120相关联的,则示例 VM104继续监测接收到的向量值(框702)。另一方面,在接收到与示例客户 机中止处理程序120相关联的向量值的情况下,客户机中止处理程序120 被调用以在VM 104上执行(框704)。如上文所讨论的那样,主机错误处理 程序110在VMM 102上标识错误并且执行一个或多个动作以捕捉可能有助 于事后调试分析活动的错误细节。VMM 102的错误细节被收集和存储在共 享的易失性存储器126内,在一些示例中,在存储前进行加密。

为了在允许VMM 102最小化其资源覆盖区域的同时允许其保留可能 有助于事后分析的有价值的错误信息,调用示例客户机存储管理器302以 使用系统文件访问机制,从而将共享的数据结构126的内容转移到一个或 多个诸如硬盘驱动器128那样的非易失性存储器(框706)。此外,示例客户 机状态收集器304收集与VMM管理的VM相关联的状态和/或错误信息(框 708),示例客户机存储管理器302将任何这种收集到的信息转移到非易失 性存储器128(框710)。由示例错误通知引擎306生成一个或多个错误通知 (框712),例如:用于视频显示和/或音频提示的错误转储细节图像。当已收 集(框708)、已存储(框710)所有需要的错误信息、并且已生成一个或多个 错误通知(框712)时,示例关闭管理器308启动VM关闭程序(如:客户机 OS关闭请求)(框714)。可以使用来自VMM 102和/或VM 104的错误信息 进行一项或多项事后调试活动,以便标识导致VMM 102的一个或多个错误 的一个或多个原因。

图8是能够执行图4-7所示的指令以实现图1所示的系统100、图1和 图2所示的主机错误处理程序110和图1和图3所示的客户机中止处理程 序120的示例处理器平台800的框图。处理器平台800可以是诸如服务器、 个人电脑,因特网设备或其他任何类型的计算设备。

实例示例的系统800包括处理器812。例如:处理器812可以由来自 任何所需要的家族或制造商的一个或多个微处理器或控制器实现。

处理器812包括本地存储器813(如:缓存),通过总线818与包括易失 性存储器814和非易失性存储器816的主存储器通信。易失性存储器814 可以通过下列各项实现:同步动态随机存取存储器(SDRAM)、动态随机 存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)和/或 任何其他类型的随机存取存储器设备。非易失性储存器816可以由闪存和/ 或其他任何所需要类型的存储器设备实现。存储器控制器控制对主存储器 814、存储器816的访问。

处理器平台800也包括接口电路820。接口电路820可以由任何类型 的接口标准实现,如:以太网接口、通用串行总线(USB)和/或PCI Express 接口。

将一个或多个输入设备822连接到接口电路820。输入设备822允许 用户将数据和命令输入处理器812。输入设备可以由诸如键盘、鼠标、触屏、 轨迹板、轨迹球、等点鼠标(isopoint)和/或语音识别系统实现。

将一个或多个输出设备824也连接到接口电路820。输出设备824可 以由诸如显示设备(如:液晶显示、阴极射线管显示(CRT)、打印机和/或扬 声器)实现。因此,接口电路820通常包括图形驱动器卡。

接口电路820也包括通信设备,如:通过网络826(如:以太网连接、 数字用户线路(DSL)、电话线、同轴电缆、蜂窝电话系统等)连接以促进同 外部计算机数据交换的调制解调器或网络接口卡。

处理器平台800也包括一个或多个用于存储软件和数据的大容量存储 设备828。这种大容量存储设备的示例包括:软盘驱动器、硬盘驱动器、紧 凑潘驱动器和数字多功能盘(DVD)驱动器。

图4-7所示的被编码的指令832可以被存储在大容量存储器828、易失 性存储器814、非易失性存储器816和/或诸如CD或DVD那样的可移动存 储介质内。

用于捕捉轻量虚拟机管理器中错误条件的方法、装置、系统和制品促 进了在按比例缩小的VMM产品中的错误细节收集能力。虽然按比例缩小 的VMM去除了一个或多个功能机制以减少黑客可以利用的候选钩、但是 这种机制的去除通常也排除了在VMM崩溃时调试数据收集的机会。调用 可用的VM文件系统机制使VMM能够保持最小化的覆盖区域,同时促进 有价值的调试数据采集。

公开了用于捕捉轻量虚拟机管理器中错误条件的方法、系统、装置和 制品。一些被公开的示例方法包括:在虚拟机管理器(VMM)和虚拟机(VM) 之间定义共享的存储器结构,当VMM开辟VM时,在与向量值相关联的 VM上安装中止处理程序,作为对检测到错误的响应,将VMM状态信息转 移到共享的存储器结构,以及调用VM上的中止处理程序以将共享的存储 器结构的内容转移到非易失性存储器。此外,示例方法包括没有文件系统 访问支持的VMM。其他公开的示例方法包括:将随机存取存储器(RAM) 用作共享的存储器结构并且针对该VM将该RAM配置为只读访问权限。 在另一些示例中,方法包括配置中断描述表以存储向量值。一些示例包括 操作存储器转储的VMM状态信息。另一些示例包括具有VMM寄存器状 态信息的VMM状态信息。一些示例方法包括:确定错误的严重性,当严 重性为第一等级时收集错误信息的第一解析度,当严重性为第二等级时收 集错误信息的第二解析度。另一些示例方法包括VM具有客户机操作系统, 另一些示例方法包括通过VMX指令调用中止处理程序,其中:VMX指令 与进入中断信息字段相关联,并且定制该字段包括向量值。一些示例方法 包括与受信任的VM关联的中止处理程序。

用于捕捉轻量虚拟机管理器中错误条件的示例装置包括:主机存储管 理器,用于在VMM和虚拟机(VM)之间定义共享的存储器结构;客户机中 止处理程序,用于当VMM开辟VM时在与向量值相关联的VM上安装中 止处理程序、主机错误处理程序,用于响应于检测到错误将VMM状态信 息转移到共享的存储器结构的;以及异常事件注入程序,用于调用VM上 的客户机中止处理程序以将共享的存储器结构的内容转移到非易失性存储 器。一些示例装置包括具有随机存取存储器(RAM)的共享的存储器结构和 主机错误处理程序,该主机错误处理程序用于针对该VM将RAM配置为 只读访问权限。另一些示例装置包括用于配置中断描述表以存储向量值的 客户机操作系统(OS)向量表管理器。另一些示例装置包括:主机状态收集 器,用于确定错误严重性,并当严重性为第一等级时收集错误信息的第一 解析度,当严重性为第二等级时收集错误信息的第二解析度。

所公开的存储机器可读指令的一些示例制品被包括进来,使得当这些 指令被执行时,使机器在虚拟机管理器(VMM)和VM之间定义共享的存储 器结构,当VMM开辟VM时在与向量值相关联的VM上安装中止处理程 序,作为对检测到错误的响应,将VMM状态信息转移到共享的存储器结 构,以及调用VM上的中止处理程序以将共享的存储器结构的内容转移到 非易失性存储器。另一些示例制品使机器将随机存取存储器(RAM)用作共 享的存储器结构,并且针对该VM将RAM配置为只读访问权限。一些示 例制品使机器配置中断描述表以存储向量表,而另一些示例制品使机器确 定错误的严重性,在当严重性为第一等级时收集错误信息的第一解析度, 在当严重性为第二等级时收集错误信息的第二解析度。在一些示例中,制 品使机器通过VMX指令调用中止处理程序并且将VMX指令与进入中断信 息字段关联。

尽管本文已描述了某些方法、装置和制品,但本专利覆盖的范围并不 限于此。相反,本专利覆盖落入本专利权利要求范围内的全部方法、装置 和制品。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号