Patent ID: 8572604
Filing Date: 2013-10-29
Classification: G06F

Abstract:
1. A method for supporting virtual machines in a data processing system, the method comprising: automatically determining whether a guest instruction of a guest virtual machine (VM) of a processing system is to be patched for emulation, based at least in part on a list of instructions to be patched, the list of instructions stored in a template map that further stores code templates; retrieving a code template from the template map that corresponds to the guest instruction to be patched, the code template including an instruction template; generating an emulation routine for emulating the guest instruction, including modifying the code template based on characteristics of the guest instruction, storing the emulation routine in an emulation database, assigning a value to the emulation routine, and storing an association of the emulation routine with the value in an emulation map; executing an emulation patch for the guest instruction, the emulation patch including data to facilitate identification of the emulation routine for emulating the guest instruction; in response to execution of the emulation patch, transferring control from the guest VM to a virtual machine monitor (VMM) without saving contextual data that defines a system state for the guest VM; and using the data from the emulation patch to access the emulation map to find the emulation routine for the guest instruction.