(51) Int Cl.: G06F 9/50 (2006.01) G06F 9/48 (2006.01)



Similar documents
(51) Int Cl.: H04L 29/06 ( ) G06F 9/445 ( ) G06F 13/00 ( )

(51) Int Cl.: G06F 9/455 ( ) G06F 9/50 ( )

TEPZZ 87_546A T EP A2 (19) (11) EP A2 (12) EUROPEAN PATENT APPLICATION. (51) Int Cl.: G05B 19/05 ( )

TEPZZ_768 7_B_T EP B1 (19) (11) EP B1 (12) EUROPEAN PATENT SPECIFICATION. (51) Int Cl.: H04M 19/04 ( )

TEPZZ 9 Z5A_T EP A1 (19) (11) EP A1. (12) EUROPEAN PATENT APPLICATION published in accordance with Art.

(51) Int Cl.: G06F 21/00 ( ) H04L 29/06 ( )

TEPZZ 65Z79 A_T EP A1 (19) (11) EP A1. (12) EUROPEAN PATENT APPLICATION published in accordance with Art.

TEPZZ 6_Z76 A_T EP A1 (19) (11) EP A1 (12) EUROPEAN PATENT APPLICATION. (51) Int Cl.:

(51) Int Cl.: G10L 15/26 ( )

TEPZZ 69 49A_T EP A1 (19) (11) EP A1 (12) EUROPEAN PATENT APPLICATION. (51) Int Cl.: G06F 17/30 ( )

TEPZZ 94Z968A_T EP A1 (19) (11) EP A1 (12) EUROPEAN PATENT APPLICATION. (51) Int Cl.: H04L 29/08 ( )

(51) Int Cl.: B29C 41/20 ( ) F21S 4/00 ( ) H05K 3/28 ( )

*EP B1* EP B1 (19) (11) EP B1 (12) EUROPEAN PATENT SPECIFICATION

TEPZZ 68575_A_T EP A1 (19) (11) EP A1. (12) EUROPEAN PATENT APPLICATION published in accordance with Art.

(51) Int Cl.: H04L 12/56 ( )

(51) Int Cl.: G05F 3/26 ( ) G05F 3/24 ( )

EP A1 (19) (11) EP A1 (12) EUROPEAN PATENT APPLICATION. (43) Date of publication: Bulletin 2012/21

(51) Int Cl.: H04W 4/14 ( )

(51) Int Cl.: H04N 7/16 ( )

(51) Int Cl.: G06F 13/38 ( ) G06F 1/16 ( )

TEPZZ A_T EP A1 (19) (11) EP A1 (12) EUROPEAN PATENT APPLICATION. (51) Int Cl.: G06F 21/64 ( )

(51) Int Cl.: H04M 3/50 ( )

(51) Int Cl.: H04L 9/32 ( ) H04B 7/00 ( ) A61N 1/37 ( )

(51) Int Cl.: G06F 1/00 ( )

(51) Int Cl.: H04L 29/06 ( ) H04M 15/00 ( )

(51) Int Cl.: H04L 12/26 ( )

(51) Int Cl.: H04L 12/46 ( ) H04L 29/14 ( ) H04L 29/12 ( )

(51) Int Cl.: H04N 7/15 ( ) H04N 7/18 ( )

EP A1 (19) (11) EP A1 (12) EUROPEAN PATENT APPLICATION. (43) Date of publication: Bulletin 2011/37

TEPZZ 87657ZA_T EP A1 (19) (11) EP A1 (12) EUROPEAN PATENT APPLICATION

TEPZZ 5Z _9_B_T EP B1 (19) (11) EP B1 (12) EUROPEAN PATENT SPECIFICATION

The Advantialer and Its Advantages

EP A2 (19) (11) EP A2 (12) EUROPEAN PATENT APPLICATION. (43) Date of publication: Bulletin 2012/35

(51) Int Cl.: C08K 5/523 ( ) C08K 5/521 ( ) C08K 5/52 ( ) C08G 64/00 ( )

(51) Int Cl.: H04L 12/58 ( )

(51) Int Cl.: H04Q 11/04 ( ) H04L 12/64 ( )

Title (fr) SOURCE IONIQUE INTERNE DOUBLE POUR PRODUCTION DE FAISCEAU DE PARTICULES AVEC UN CYCLOTRON

(51) Int Cl.: H04L 29/06 ( ) (56) References cited:

(51) Int Cl.: H05K 1/02 ( )

(51) Int Cl.: H04L 12/24 ( )

(51) Int Cl.: H04L 12/24 ( ) G06F 9/445 ( )

(51) Int Cl. 7 : G03G 15/00

TEPZZ_98 47ZB_T EP B1 (19) (11) EP B1 (12) EUROPEAN PATENT SPECIFICATION

(51) Int Cl.: G06F 15/16 ( ) G06F 9/44 ( ) G06F 12/00 ( ) G06F 9/48 ( )

TEPZZ_9 6Z46B_T EP B1 (19) (11) EP B1 (12) EUROPEAN PATENT SPECIFICATION. (51) Int Cl.:

(51) Int Cl.: B61K 9/12 ( )

(51) Int Cl.: H04L 9/24 ( ) G06Q 10/00 ( )

(51) Int Cl.: H04M 3/42 ( ) H04Q 3/00 ( )

TEPZZ A_T EP A1 (19) (11) EP A1 (12) EUROPEAN PATENT APPLICATION. (51) Int Cl.: G06Q 40/04 ( )

(51) Int Cl.: G08B 21/02 ( ) H04M 11/04 ( )

(51) Int Cl.: H04L 12/24 ( )

*EP A1* EP A1 (19) (11) EP A1 (12) EUROPEAN PATENT APPLICATION. (43) Date of publication: Bulletin 2005/14

(51) Int Cl.: H04L 12/58 ( ) H04L 29/06 ( )

(51) Int Cl.: H04L 29/06 ( ) H04L 12/22 ( )

(51) Int Cl.: H04L 12/28 ( ) H04L 29/06 ( ) H04L 12/56 ( )

TEPZZ 96 A_T EP A1 (19) (11) EP A1. (12) EUROPEAN PATENT APPLICATION published in accordance with Art.

(51) Int Cl.: G06F 9/46 ( ) H04L 12/56 ( )

EP B1 (19) (11) EP B1 (12) EUROPEAN PATENT SPECIFICATION

(51) Int Cl.: G11C 5/14 ( ) G11C 7/10 ( )

Europaisches Patentamt European Patent Office Office europeen des brevets (11) EP B2

(51) Int Cl.: H04W 8/16 ( ) H04L 29/12 ( ) H04W 8/18 ( )

(51) Int Cl.: G08G 1/14 ( ) G07B 15/02 ( ) G10L 15/28 ( )

EP A2 (19) (11) EP A2 (12) EUROPEAN PATENT APPLICATION. (43) Date of publication: Bulletin 2011/32

(51) Int Cl.: H04L 12/56 ( ) H04L 12/28 ( ) H04M 7/00 ( )

Intel Virtualization Technology FlexMigration Application Note

(51) Int Cl.: H04L 9/32 ( )

Our patent and trade mark attorneys are here to help you protect and profit from your ideas, making sure they re working every bit as hard as you do.

(51) Int Cl.: H04L 29/06 ( ) H04M 3/56 ( ) H04M 3/44 ( ) H04L 12/18 ( )

(51) Int Cl.: G06F 17/30 ( )

(51) Int Cl.: H05K 1/02 ( )

(51) Int Cl.: H04B 3/23 ( )

(51) Int Cl.: G06F 21/24 ( )

(51) Int Cl.: H04L 29/06 ( ) H04L 12/24 ( )

(51) Int Cl.: H04N 7/52 ( )

(51) Int Cl.: H04L 29/02 ( ) H04L 12/801 ( )

(51) Int Cl.: G06Q 10/00 ( )

Transcription:

(19) TEPZZ Z4878B_T (11) EP 2 048 78 B1 (12) EUROPEAN PATENT SPECIFICATION (4) Date of publication and mention of the grant of the patent:.04.13 Bulletin 13/ (1) Int Cl.: G06F 9/0 (06.01) G06F 9/48 (06.01) (21) Application number: 08033.6 (22) Date of filing: 29.08.08 (4) Virtual machine (VM) migration between processor architectures Virtuelle Maschinenmigration zwischen Prozessorarchitekturen Migration de machine virtuelle entre des architectures de processeur (84) Designated Contracting States: AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR () Priority: 06.09.07 US 80946 (43) Date of publication of application:.04.09 Bulletin 09/16 (60) Divisional application: 1118273.8 / 2 7 881 (73) Proprietor: Dell Products, L.P. Round Rock, TX 78682-2244 (US) (72) Inventors: Khatri, Mukund Purshottam Austin, TX 78728-462 (US) Hormuth, Robert Cedar Park, TX 78613 (US) (74) Representative: Hess, Peter K. G. Bardehle Pagenberg Partnerschaft Patentanwälte, Rechtsanwälte Postfach 86 06 81633 München (DE) (6) References cited: US-A1-03 221 03 US-A1-0 076 186 US-A1-0 268 298 US-A1-06 00 189 US-A1-06 00 0 US-A1-06 173 994 US-A1-06 178 848 US-A1-07 4 266 US-B1-7 3 944 NAIR R ET AL: "The Architecture of Virtual Machines" COMPUTER, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 38, no., 1 May 0 (0-0-01), pages 32-38, XP011132214 ISSN: 0018-9162 EP 2 048 78 B1 Note: Within nine months of the publication of the mention of the grant of the European patent in the European Patent Bulletin, any person may give notice to the European Patent Office of opposition to that patent, in accordance with the Implementing Regulations. Notice of opposition shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention). Printed by Jouve, 7001 PARIS (FR)

1 EP 2 048 78 B1 2 Description Background of the Invention Field of the Invention [0001] The present invention relates to information handling systems and more particularly to virtual machine (VM) migration between processor architectures. Description of the Related Art [0002] As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems. [0003] One issue that relates to information handling systems is virtualization, which refers to the abstraction of information handing system resources. More specifically, virtualization hides physical characteristics of information handling system resources from the way in which other systems, applications, or end users interact with those resources. Virtualization includes making a single physical resource (such as a server, an operating system, an application, or storage device) appear to function as multiple logical resources; or making multiple physical resources (such as storage devices or servers) appear as a single logical resource. [0004] Virtualization is especially prevalent in an enterprise information handing system environment. It is often desirable to use virtualization when performing a VM migration (i.e., moving one virtual machine from one system (logical or physical) to another system). However, with VM migration, especially live VM migration (i.e., when a VM is executing on one system is migrated over to another system where the process of migration is without the system being in a shut down or suspend state), 2 3 4 0 an architectural issue between different CPU vendors and even between generations of products from the same vendor can present itself. This architectural issue is often caused by different features between vendors and between generations of the same vendor. Thus, for example, an issue is presented when attempting to migrate a live Virtual Machine that is executing supplemental streaming extensions, version 4 (SSE4) to a system that is only capable of supporting SSE, version 3 (SSE3) and does not support SSE4 instructions. The VM migration issue can also be present when the VM that is being migrated is not in a live state (e.g., either is operating in a shut down or suspend state). [000] The issue presents itself when an application loads and executes a processor identification (e.g., a CPUID) instruction. This instruction returns a processor identifier (ID) and feature information. An application uses this information to set which path to take based on the features and instruction set of the given CPU. Examples of CPUID instruction and results can be found in "Intel 64 and IA-32 Architectures Software Developer s Manual - Volume 2A - Instruction Set Reference, A-M". When an application is live and executing to a given instruction set and/or feature set, live migration between systems can only occur if the target system has the same feature support as the source system. For example, Figure 1, labeled Prior Art, shows a flow chart of an example program load. [0006] Another issue relating to VM migration can be present when an application program that does not issue a processor identification instruction to make code path decisions. In this situation, the application does not have knowledge of the complete processor instruction and feature set. [0007] The patent US 7 3 944 B1 discloses a cluster comprising a plurality of computer systems, wherein each of the plurality of computer systems is configured to executes one or more virtual machines. Each of the plurality of computer systems comprises hardware and a plurality of instructions. The plurality of instructions, when executed on the hardware, migrates at least a first virtual machine executing on a first computer system of the plurality of computer systems to a second computer system of the plurality of computer systems. The plurality of instructions migrates the first virtual machine responsive to a first load of the first computer system prior to the migration exceeding a second load of the second computer system prior to the migration. [0008] The US 03/0223 A1 describes a CPU life-extension apparatus and method which make a processor appear to be an upgraded CPU to substantially all software applications accessed thereby, thereby reducing the need and expense of upgrading a selected processor. A CPU life-extension module translates new instructions, intended for a CPU upgrade, into instructions recognized by the processor. In addition, the CPU lifeextension module is programmed to monitor reads from and writes to a processor s flags register to modify the flags to emulate those of an upgraded CPU. The CPT 2

3 EP 2 048 78 B1 4 life-extension module is configured to respond to interrupts generated by the processor in order to perform its various tasks. [0009] The US 06/0178848 A1 discloses a computer resource management method in a distributed processing system in which a plurality of computer resources in which a plurality of jobs are connected to management means for managing the plurality of computer resources via a network. [00] The US 06/0173994 A1 discloses a distributed computing system comprising a plurality of application nodes interconnected via a communication network and a control node. The control node comprises a set of one or more applications to be executed on the application nodes, an application matrix that includes parameters for controlling the deployment, undeployment, and execution of the applications within the distributed computing system, and an automation infrastructure having one or more rule engines that provide autonomic control of the application nodes and the applications in accordance with a set of one or more rules and the application matrix. [0011] The US 04/01287 A1 discloses a symmetric multiprocessing system using processors in which a processor responds to a query regarding its capabilities (instructions sets) with its "active" capability, which is the intersection of its native capability and a common capability across processors determined during a boot sequence. The querying application can select a program variant optimized for the active capability of the selected processor. If the application is subsequently subjected to a blind transfer to another processor, it is more likely than it would otherwise be (if the processors responded with their native capabilities) that the previously selected program variant runs without encountering unimplemented instructions. Summary of the Invention [0012] In accordance with the present invention, a method for performing a VM migration is presented which manages a cluster of machines in a pool for live migration of a feature set or behavior from one virtual machine to another virtual machine. In certain embodiments, machines within the pool can be configured to emulate a certain feature set to enable a VM migration amongst the similar pools. The emulation can be by either masking reporting of a feature set or enabling/disabling a feature set. The handling of emulation registers within the hardware (i.e., the manipulation of the feature set when operating in the emulation mode) occurs at a firmware (e.g., a basic input output system (BIOS)) level rather than an operating system or hypervisor level. [0013] More specifically, in one embodiment, the invention relates to a method for performing virtual machine migration between a plurality of information handling systems. The method includes identifying processors within the plurality of information handling systems 2 3 4 0 having a common feature set, the common feature set comprising instruction set level compatibility; pooling information handling systems having processors with the common feature set to provide a pool of similar information handling systems; and performing a virtual machine migration from a first information handling system to an information handling system within the pool of similar information handling systems, the virtual machine migration moving one virtual machine from a information handling system to another information handling system. [0014] In another embodiment, the invention relates to an apparatus for performing virtual machine migration between a plurality of information handling systems. The apparatus includes means for identifying processors within the plurality of information handling systems having a common feature set, the common feature set comprising instruction set level compatibility; means for pooling information handling systems having processors with the common feature set to provide a pool of similar information handling systems; and means for performing a virtual machine migration from a first information handling system to an information handling system within the pool of similar information handling systems, the virtual machine migration moving a virtual machine from one information handling system to another information handling system. [00] In another embodiment, the invention relates to an information technology environment that includes a plurality of information handling systems as well as a system for performing virtual machine migration between the plurality of information handling systems. Each of the plurality of information handling systems includes a processor and, memory coupled to the processor. The system for performing virtual machine migration includes instructions executable by a processor for identifying processors within the plurality of information handling systems having a common feature set, the common feature set comprising instruction set level compatibility; pooling information handling systems having processors with the common feature set to provide a pool of similar information handling systems; and performing a virtual machine migration from a first information handling system to an information handling system within the pool of similar information handling systems, the virtual machine migration moving a virtual machine from one information handling system to another information handling system. Brief Description of the drawings [0016] The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference number throughout the several figures designates a like or similar element. Figure 1 labeled Prior Art, shows a flow chart of an example program load. 3

EP 2 048 78 B1 6 Figure 2 Figure 3 Figure 4 shows a system block diagram of an information handling system. shows a flow chart of the operation of the BIOS. shows a flow chart of the operation of a system for performing a VM migration. Detailed Description [0017] Referring briefly to Figure 2, a system block diagram of an information handling system 0 is shown. The information handling system 0 includes a processor 2, input/output (I/O) devices 4, such as a display, a keyboard, a mouse, and associated controllers, memory 6, including volatile memory such as random access memory (RAM) and non-volatile memory such as read only memory (ROM) and hard disk drives, and other storage devices 8, such as a floppy disk and drive or CD-ROM disk and drive, and various other subsystems 2, all interconnected via one or more buses 212. The memory 6 includes a basic input output system (BIOS) 228 as well as a VM migration module 2. [0018] The VM migration module 2 enables performing a VM migration is presented which manages a cluster of machines in a pool for live migration to the same feature set or behavior. In certain embodiments, machines within the pool can be configured to emulate a certain feature set to enable a VM migration amongst the similar pools. The emulation can be by either masking reporting of a feature set or enabling/disabling a feature set. The handling of emulation registers within the hardware (i.e., the manipulation of hardware registers of the feature set when operating in the emulation mode) occurs at a firmware level (such as via the BIOS) rather than an operating system or hypervisor level. [0019] For purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components. 2 3 4 0 [00] Referring to Figure 3, a flow chart of the operation of the BIOS is shown. Each information handling system processor 2 includes VM migration registers that the BIOS 228 can manipulate. Within these registers are disable (or masking) features storage locations. The processor 2 uses these storage locations for various features that are exposed to software. Additionally, the processor 2 of each system includes a Virtual CPUID (vcpuid) field to return the CPUID, as well as other resource information such as stepping family information. When the BIOS 228 sets these fields, the BIOS 228 also sets a model specific register (MSR) which causes the VM migration registers to return modified data upon receipt of the CPUID instruction. The MSRs thus function as control registers which provide the BIOS with information relating to the specific processor implementation. [0021] Thus, when the BIOS 228 starts executing, an Baseboard Management Controller-Service Processor (BMC) (or some other application program interface (API) which could bypass the BMC) provides the BIOS 228 with Least Common Denominator (LCD) information at step 3. Next, the BIOS 228 generates processor identification instruction (such as e.g., a CPUID instruction) and saves the results in within a scratch memory at step 3. Next, the BIOS 228 on each information handling system uses Least Common Denominator input to disable features in hardware and sets the Virtual CPUID field accordingly at step 3. Next, the BIOS 228 optionally sets a bit in the MSR to enable usage of the Virtual CPUID register as well as the features identified within the virtual CPUID register. The BIOS 228 then signals the BMC to complete to allow out of band communication if needed at step 3. Accordingly, the processor within the system is configured to the same features as the Least Common Denominator. Additionally, the CPU ID/Family/Stepping information is set to allow live migration to occur without running into architectural boundaries. This operation may be performed on a system by system basis or across a pool of systems via a common API. [0022] Referring to Figure 4, a flow chart of the operation of a VM migration is shown. In general, the system for performing a VM migration performs a hardware feature disablement and virtual CPUID manipulation operation using BIOS 228. The system for performing VM migration 2 is executed by an information technology (IT) management application 4. [0023] More specifically, the IT management application 4 gathers the CPUID information for systems within a cluster of systems for which it is desired to perform a VM migration at step 4. The common systems are then pooled, either automatically or manually. E.g., in certain embodiments, an IT manager (or some other user operating the IT Management application 4) symbolically pools (e.g., by dragging and dropping) systems to identify pools of like systems (i.e., systems to conform to a certain least common denominator) at step 4. For example, a pool might include a first manufacturer SSE3 Pool 432a, a first manufacturer SSE4 Pool 432b, a sec- 4

7 EP 2 048 78 B1 8 ond manufacturer SSE3 pool 432c, and a generic manufacturer pool 432d. Each pool includes a corresponding identification 434. [0024] Next, the system for performing a VM migration 2 broadcasts to out of band systems (and optionally inband systems) the features corresponding to each of the pools at step 4. The system then waits on the out of band systems to identify to which pool each system should be associated at step 442. A live migration between systems that match each of the configured pools can now occur using any VM migration software at step 444. [002] In each of the executing systems, the BMC receives the new configuration for the VM migration and saves the information within the system s BIOS domain to retrieve during a reboot operation at step. When the BIOS first loads on each of the systems upon reboot, the BIOS 228 directly masks dissimilarities in the feature set in the respective system along by setting a virtual migration field (e.g., a vcpuid field), when available, at step 460. Thus, when the CPUID instruction is executed, each of the systems returns with features enabled/disabled by the BIOS and with whatever CPUID the IT management application set. The BMC then registers the system with the IT management application at step 470. The registration includes information that the system is configured for a particular CPU ID having certain features and that the system has joined a particular pool of systems. [0026] Thus, the system for performing a VM migration allows crossing of processor architecture boundaries by allowing an IT manager to bring the pool down to any processor compatible level (i.e., to any least common denominator) such as any x86 compatible level. [0027] The present invention is well adapted to attain the advantages mentioned as well as others inherent therein. While the present invention has been depicted, described, and is defined by reference to particular embodiments of the invention, such references do not imply a limitation on the invention, and no such limitation is to be inferred. The invention is capable of considerable modification, alteration, and equivalents in form and function, as will occur to those ordinarily skilled in the pertinent arts. The depicted and described embodiments are examples only, and are not exhaustive of the scope of the invention. [0028] For example, in another embodiment, a hypervisor binary translation might be used to perform the VM migration. More specifically, when a pool of systems are identified, the IT management software determines lowest common denominator feature set and broadcasts this feature set to a hypervisor executing on each system. When an application program is being loaded onto a system, the hypervisor performs a Binary Translation of the program. I.e., the hypervisor searches for the CPUID instruction and replaces with an alternate execution path which results in a desired return value of the CPUID instruction to spoof the application. Thus, all machines in 2 3 4 0 the cluster appear to execute with the same features set. [0029] For example, the original code might be... MOV EAX, INPUT CPUID [code that uses return flags to set code execution paths] [00] Whereas the modified code would be: MOV EAX, INPUT JMP [CPUID_replacement_function] Jumping to an Alternate Routine [code that uses return flags to set code execution paths] : CPUID_replacement_function /* save input variable */ CPUID_function_Call_input = EAX; /* input from cluster mgmt */ HYPER_VISOR_common_denominator = XYZ; /* perform original CPUID to get CPU features */ MOV EAX, CPUID_function_call_input; CPUID [Set EAX, EBX, ECX, EDX...according to HYPER VISOR_common_denominator] Return; [0031] Also for example, in another embodiment, CPU- ID Trap operation might be used when performing the VM migration. More specifically, the Trap operation traps the result of the CPUID instruction. A handler within the BIOS 228 then performs a binary translation operation. [0032] For example, with the TRAP operation, a sample instruction flow might be as follows: MOV EAX, INPUT CPUID [code that uses return flags to set code execution paths] [0033] Whereas the modified code which includes the trap feature would be: MOV EAX, INPUT CPUID /* runs and populates EAX, EBX, ECX, EDX */ TRAP HANDLER [Set EAX, EBX, ECX, EDX...according to HYPER VISOR_common_denominator] Return; [code that uses return flags to set code execution paths] [0034] To support this mode the processor is to allow the CPUID instruction to enable an exception event and assigns a vector location for the handler. Upon receipt of the exception event, the processor transfers to the vector location for the handler. This method is different from a VM_EXIT operation where virtualization technology (VT) enabled processors because not all processors are VT enabled, trying to pass the common denominator to the hypervisor in-band adds complexity to the management plane (adding another plane) versus simply doing it in the existing out of band management plane via BIOS, allowing CPUID trap allows other uses outside a virtualized and managed environment where an end user may want to change the feature set of a given system to allow a particular program to execute, and requires less processor logic changes to spoof an application. [003] Also for example, the above-discussed embodiments include software modules that perform certain

9 EP 2 048 78 B1 tasks. The software modules discussed herein may include script, batch, or other executable files. The software modules may be stored on a machine-readable or computer-readable storage medium such as a disk drive. Storage devices used for storing software modules in accordance with an embodiment of the invention may be magnetic floppy disks, hard disks, or optical discs such as CD-ROMs or CD-Rs, for example. A storage device used for storing firmware or hardware modules in accordance with an embodiment of the invention may also include a semiconductor-based memory, which may be permanently, removably, or remotely coupled to a microprocessor/memory system. Thus, the modules may be stored within a computer system memory to configure the computer system to perform the functions of the module. Other new and various types of computer-readable storage media may be used to store the modules discussed herein. Additionally, those skilled in the art will recognize that the separation of functionality into modules is for illustrative purposes. Alternative embodiments may merge the functionality of multiple modules into a single module or may impose an alternate decomposition of functionality of modules. For example, a software module for calling sub-modules may be decomposed so that each sub-module performs its function and passes control directly to another sub-module. Claims 1. A method for performing virtual machine migration between a plurality of information handling systems comprising: 2 3 4 0 a. gathering processor identification information for those information handling systems of the plurality of information handling systems desiring to perform a virtual machine migration by an information technology management application to identify processors within the plurality of information handling systems having a common feature set, the common feature set comprising instruction set level compatibility; b. pooling information handling systems having processors with the common feature set to provide a plurality of pools of similar information handling systems; c. broadcasting the common feature sets corresponding to the plurality of pools to out of band information handling systems; d. waiting for out of band information handling system to identify to which pool each out of band information handling system should be associated; e. performing a virtual machine migration from an information handling system to another information handling system within one of the plurality of pools of similar information handling systems, the virtual machine migration moving one virtual machine from a information handling system to another information handling system. 2. The method of claim 1, wherein the common feature set comprises at least one of: a common processor manufacturer, a common processor generation and a common instruction set. 3. The method of claim 1 wherein the identifying further comprises performing a processor identification operation on each of the processors, the processor identification operation returning processor identification data for each of the processors. 4. The method of claim 1 wherein each of the processors comprise: virtual machine migration registers, the virtual machine migration registers being controlled by firmware of the information handling system to modify the reporting of features within the processor, the modifying the reporting of features facilitating identification of a common feature set.. The method of claim 4 wherein: the virtual machine migration registers cause the processor to report modified identification data in response to a processor identification operation. 6. An apparatus for performing virtual machine migration between a plurality of information handling systems comprising: a. an information technology management application gathering processor identification information for those information handling systems of the plurality of information handling systems desiring to perform a virtual machine migration to identify processors within the plurality of information handling systems having a common feature set, the common feature set comprising instruction set level compatibility; b. means for pooling information handling systems having processors with the common feature set to provide a plurality of pools of similar information handling systems; c. means for broadcasting the common feature sets corresponding to each of the pools to out of band information handling systems; d. means for waiting for out of band information handling systems to identify to which pool each 6

11 EP 2 048 78 B1 12 out of band information handling system should be associated; and e. means for performing a virtual machine migration from an information handling system to another information handling system within one of the plurality of pools of similar information handling systems, the virtual machine migration moving a virtual machine from one information handling system to another information handling system. 13. The apparatus of claim 11 wherein the instructions for identifying further comprise instructions for: performing a processor identification operation on each of the processors, the processor identification operation returning processor identification data for each of the processors. 14. The apparatus of claim 11 wherein each of the processors comprise: 7. The apparatus of claim 6 wherein the common feature set comprises at least one of: a common processor manufacturer, a common processor generation and a common instruction set. 8. The apparatus of claim 6 wherein the means for identifying further comprises means for performing a processor identification operation on each of the processors, the processor identification operation returning processor identification data for each of the processors. 9. The apparatus of claim 6 wherein each of the processors comprise: virtual machine migration registers, the virtual machine migration registers being controlled by firmware of the information handling system to modify the reporting of features within the processor, the modifying the reporting of features facilitating identification of a common feature set.. The apparatus of claim 9 wherein: the virtual machine migration registers cause the processor to report modified identification data in response to a processor identification operation. 11. The apparatus of claims 6 further comprising an information technology environment comprising: a plurality of information handling systems, each of the plurality of information handling systems comprising a processor; and, memory coupled to the processor; 12. The apparatus of claim 11, wherein the common feature set comprises at least one of: a common processor manufacturer, a common processor generation and a common instruction set. 2 3 4 0 virtual machine migration registers, the virtual machine migration registers being controlled by firmware of the information handling system to modify the reporting of features within the processor, the modifying the reporting of features facilitating identification of a common feature set.. The apparatus of claim 14 wherein: the virtual machine migration registers cause the processor to report modified identification data in response to a processor identification operation. Patentansprüche 1. Ein Verfahren zum Durchführen von virtueller Maschinen-Migration zwischen einer Mehrzahl von Informationsverarbeitungssystemen, aufweisend: a. Erfassen von Prozessoridentifikationsinformation für solche Informationsverarbeitungssysteme der Mehrzahl der Informationsverarbeitungssysteme die es wünschen eine virtuelle Maschinen-Migration durchzuführen, durch eine Informationstechnologiemanagementanwendung zum Identifizieren von Prozessoren innerhalb der Mehrzahl der Informationsverarbeitungssysteme, die eine gemeinsame Merkmalsgruppe aufweisen, wobei die gemeinsame Merkmalsgruppe eine Befehlssatzebenenkompatibilität aufweist; b. Gruppieren von Informationsverarbeitungssystemen, die Prozessoren mit der gemeinsamen Merkmalsgruppe aufweisen, um eine Mehrzahl von Gruppierungen ähnlicher Informationsverarbeitungssysteme bereitzustellen; c. Senden ("broadcasting") der gemeinsamen Merkmalsgruppen, die der Mehrzahl der Gruppierungen entsprechen, an Out-Of-Band-Informationsverarbeitungssysteme; d. Warten auf Out-Of-Band-Informationsverarbeitungssysteme, um zu identifizieren mit welcher Gruppierung jedes Out-Of-Band-Informationsverarbeitungssystem assoziiert werden 7

13 EP 2 048 78 B1 14 soll; e. Durchführen einer virtuellen Maschinen-Migration von einem Informationsverarbeitungssystem zu einem anderen Informationsverarbeitungssystem innerhalb einer der Mehrzahl von Gruppierungen ähnlicher Informationsverarbeitungssysteme, wobei die virtuelle Maschinen- Migration eine virtuelle Maschine von einem Informationsverarbeitungssystem zu einem anderen Informationsverarbeitungssystem bewegt. 2. Verfahren gemäß Anspruch 1, wobei die gemeinsame Merkmalsgruppe mindestens eines der folgenden Elemente aufweist: einen gemeinsamen Prozessorhersteller, eine gemeinsame Prozessorgeneration und einen gemeinsamen Befehlssatz. 3. Verfahren gemäß Anspruch 1, wobei das Identifizieren weiterhin aufweist Durchführen einer Prozessoridentifikationsoperation auf jedem der Prozessoren, wobei die Prozessoridentifikationsoperation für jeden der Prozessoren Prozessoridentifikationsdaten zurückgibt. 4. Verfahren gemäß Anspruch 1, wobei jeder der Prozessoren aufweist: virtuelle Maschinen-Migrations-Register, wobei die virtuellen Maschinen-Migrations-Register durch eine Firmware von dem Informationsverarbeitungssystem gesteuert werden, um die Auswertung der Merkmale innerhalb des Prozessors zu modifizieren, wobei das Modifizieren der Auswertung der Merkmale die Identifikation von einer gemeinsamen Merkmalsgruppe ermöglicht.. Verfahren gemäß Anspruch 4, wobei: die virtuellen Maschinen-Migrations-Register bewirken, dass der Prozessor modifizierte Identifikationsdaten, auf Antwort auf eine Prozessoridentifikationsoperation, meldet. 6. Eine Vorrichtung zum Durchführen von virtueller Maschinen-Migration zwischen einer Mehrzahl von Informationsverarbeitungssystemen, aufweisend: 2 3 4 0 a. eine Informationstechnologiemanagementanwendung zum Erfassen von Prozessoridentifikationsinformation für solche Informationsverarbeitungssysteme der Mehrzahl der Informationsverarbeitungssysteme die es wünschen eine virtuelle Maschinen-Migration durchzuführen, zum Identifizieren von Prozessoren innerhalb der Mehrzahl der Informationsverarbeitungssysteme, die eine gemeinsame Merkmalsgruppe aufweisen, wobei die gemeinsame Merkmalsgruppe eine Befehlssatzebenenkompatibilität aufweist; b. Mittel zum Gruppieren von Informationsverarbeitungssystemen, die Prozessoren mit der gemeinsamen Merkmalsgruppe aufweisen, um eine Mehrzahl von Gruppierungen ähnlicher Informationsverarbeitungssysteme bereitzustellen; c. Mittel zum Senden ("broadcasting") der gemeinsamen Merkmalsgruppen, die jeder der Gruppierungen entsprechen, an Out-Of-Band- Informationsverarbeitungssysteme; d. Mittel zum Warten auf Out-Of-Band-Informationsverarbeitungssysteme, um zu identifizieren mit welcher Gruppierung jedes Out-Of-Band-Informationsverarbeitungssysteme assoziiert werden soll; und e. Mittel zum Durchführen einer virtuellen Maschinen-Migration von einem Informationsverarbeitungssystem zu einem anderen Informationsverarbeitungssystem innerhalb einer der Mehrzahl von Gruppierungen ähnlicher Informationsverarbeitungssysteme, wobei die virtuelle Maschinen-Migration eine virtuelle Maschine von einem Informationsverarbeitungssystem zu einem anderen Informationsverarbeitungssystem bewegt. 7. Vorrichtung gemäß Anspruch 6, wobei die gemeinsame Merkmalsgruppe mindestens eines der folgenden Elemente aufweist: einen gemeinsamen Prozessorhersteller, eine gemeinsame Prozessorgeneration und einen gemeinsamen Befehlssatz. 8. Vorrichtung gemäß Anspruch 6, wobei die Mittel zum Identifizieren weiterhin aufweisen Mittel zum Durchführen einer Prozessoridentifikationsoperation auf jedem der Prozessoren, wobei die Prozessoridentifikationsoperation für jeden der Prozessoren Prozessoridentifikationsdaten zurückgibt. 9. Vorrichtung gemäß Anspruch 6, wobei jeder der Prozessoren aufweist: virtuelle Maschinen-Migrations-Register, wobei die virtuellen Maschinen-Migrations-Register durch eine Firmware von den Informationsverarbeitungssystemen gesteuert werden, um die Auswertung der Merkmale innerhalb des Prozessors zu modifizieren, wobei das Modifizieren der Auswertung der Merkmale die Identifikation von einer gemeinsamen Merkmalsgruppe ermöglicht. 8

EP 2 048 78 B1 16. Vorrichtung gemäß Anspruch 9, wobei: Revendications die virtuellen Maschinen-Migrations-Register bewirken, dass der Prozessor modifizierte Identifikationsdaten, auf Antwort auf eine Prozessoridentifikationsoperation, meldet. 11. Vorrichtung gemäß Anspruch 6, weiterhin aufweisend eine Informationstechnologieumgebung, aufweisend: eine Mehrzahl von Informationsverarbeitungssystemen, wobei jedes der Mehrzahl der Informationsverarbeitungssysteme aufweist: Einen Prozessor; und, Speicher, der an den Prozessor gekoppelt ist. 12. Vorrichtung gemäß Anspruch 11, wobei die gemeinsame Merkmalsgruppe mindestens eines der folgenden Elemente aufweist: einen gemeinsamen Prozessorhersteller, eine gemeinsame Prozessorgeneration und einen gemeinsamen Befehlssatz. 13. Vorrichtung gemäß Anspruch 11, wobei die Instruktionen zum Identifizieren weiter Instruktionen aufweisen, zum: Durchführen einer Prozessoridentifikationsoperation auf jedem der Prozessoren, wobei die Prozessoridentifikationsoperation für jeden der Prozessoren Prozessoridentifikationsdaten zurückgibt. 14. Vorrichtung gemäß Anspruch 11, wobei jeder der Prozessoren aufweist: virtuelle Maschinen-Migrations-Register, wobei die virtuellen Maschinen-Migrations-Register durch eine Firmware von dem Informationsverarbeitungssystem gesteuert werden, um die Auswertung der Merkmale innerhalb des Prozessors zu modifizieren, wobei das Modifizieren der Auswertung der Merkmale die Identifikation von einer gemeinsamen Merkmalsgruppe ermöglicht.. Vorrichtung gemäß Anspruch 14, wobei: die virtuellen Maschinen-Migrations-Register bewirken, dass der Prozessor modifizierte Identifikationsdaten, auf Antwort auf eine Prozessoridentifikationsoperation, meldet. 2 3 4 0 1. Un procédé pour effectuer une migration de machine virtuelle entre une pluralité de systèmes de traitement de l information, comprenant : a. le rassemblement d informations d identification de processeur pour ceux des systèmes de traitement de l information de la pluralité de systèmes de traitement de l information qui souhaitent effectuer une migration de machine virtuelle par une application de gestion de technologies de l information pour identifier les processeurs au sein de la pluralité de systèmes de traitement de l information qui présentent un ensemble de caractéristiques communes, l ensemble de caractéristiques communes comprenant une compatibilité au niveau du jeu d instructions ; b. le regroupement des systèmes de traitement de l information qui possèdent des processeurs avec l ensemble de caractéristiques communes pour donner une pluralité de groupements de systèmes de traitement de l information semblables ; c. la multidiffusion des ensembles de caractéristiques communes correspondant à la pluralité de groupements vers des systèmes de traitement de l information hors bande ; d. l attente que les systèmes de traitement de l information hors bande identifient à quel groupement doit être associé chaque système de traitement de l information hors bande ; e. l exécution d une migration de machine virtuelle depuis un système de traitement de l information vers un autre système de traitement de l information au sein de l un de la pluralité des groupements de systèmes de traitement de l information similaires, la migration de machine virtuelle déplaçant une machine virtuelle d un système de traitement de l information vers un autre système de traitement de l information. 2. Le procédé de la revendication 1, dans lequel l ensemble de caractéristiques communes comprend au moins l une d entre : un fabricant de processeur commun, une génération de processeur commune et un jeu d instructions commun. 3. Le procédé de la revendication 1, dans lequel l identification comprend en outre l exécution d une opération d identification de processeur sur chacun des processeurs, l opération d identification de processeur retournant des données d identification de processeur pour chacun des processeurs. 4. Le procédé de la revendication 1, dans lequel cha- 9

17 EP 2 048 78 B1 18 cun des processeurs comprend : des registres de migration de machine virtuelle, les registres de migration de machine virtuelle étant contrôlés par un micrologiciel du système de traitement de l information pour modifier le compte rendu des caractéristiques au sein du processeur, la modification du compte rendu des caractéristiques facilitant l identification d un ensemble de caractéristiques communes. a. une application de gestion de technologies de l information rassemblant des informations d identification de processeur pour ceux des systèmes de traitement de l information de la pluralité de systèmes de traitement de l information qui souhaitent effectuer une migration de machine virtuelle pour identifier les processeurs au sein de la pluralité de systèmes de traitement de l information qui présentent un ensemble de caractéristiques communes, l ensemble de caractéristiques communes comprenant une compatibilité au niveau du jeu d instructions ; b. des moyens de regroupement des systèmes de traitement de l information qui possèdent des processeurs avec l ensemble de caractéristiques communes pour donner une pluralité de groupements de systèmes de traitement de l information semblables ; c. des moyens de multidiffusion des ensembles de caractéristiques communes correspondant à chacun des groupements vers des systèmes de traitement de l information hors bande ; d. des moyens d attente que les systèmes de traitement de l information hors bande identifient à quel groupement doit être associé chaque système de traitement de l information hors bande ; et e. des moyens d exécution d une migration de machine virtuelle depuis un système de traitement de l information vers un autre système de traitement de l information au sein de l un de la pluralité des groupements de systèmes de traitement de l information similaires, la migration de machine virtuelle déplaçant une machine virtuelle d un système de traitement de l information vers un autre système de traitement de l information. 7. Le dispositif de la revendication 6, dans lequel l ensemble de caractéristiques communes comprend au moins l une d entre : un fabricant de processeur commun, une génération de processeur commune et un jeu d instructions commun.. Le procédé de la revendication 4, dans lequel : les registres de migration de machine virtuelle font en sorte que le processeur rende compte de données d identification modifiées en réponse à une opération d identification de processeur. 6. Un dispositif pour exécuter une migration de machine virtuelle entre une pluralité de systèmes de traitement de l information, comprenant : 8. Le dispositif de la revendication 6, dans lequel les moyens d identification comprennent en outre : des moyens d exécution d une opération d identification de processeur sur chacun des processeurs, l opération d identification de processeur retournant des données d identification de processeur pour chacun des processeurs. 9. Le dispositif de la revendication 6, dans lequel chacun des processeurs comprend : 2 3 4 0 des registres de migration de machine virtuelle, les registres de migration de machine virtuelle étant contrôlés par un micrologiciel du système de traitement de l information pour modifier le compte rendu des caractéristiques au sein du processeur, la modification du compte rendu des caractéristiques facilitant l identification d un ensemble de caractéristiques communes.. Le dispositif de la revendication 9, dans lequel : les registres de migration de machine virtuelle font en sorte que le processeur rende compte de données d identification modifiées en réponse à une opération d identification de processeur. 11. Le dispositif de la revendication 6, comprenant en outre un environnement de technologie de l information comprenant : une pluralité de systèmes de traitement de l information, chacun de la pluralité de systèmes de traitement de l information comprenant : un processeur ; et une mémoire couplée au processeur. 12. Le dispositif de la revendication 11, dans lequel l ensemble de caractéristiques communes comprend au moins l une d entre : un fabricant de processeur commun, une génération de processeur commune et un jeu d instructions commun.

19 EP 2 048 78 B1 13. Le dispositif de la revendication 11, dans lequel les instructions pour l identification comprennent en outre des instructions pour : l exécution d une opération d identification de processeur sur chacun des processeurs, l opération d identification de processeur retournant des données d identification de processeur pour chacun des processeurs. 14. Le dispositif de la revendication 11, dans lequel chacun des processeurs comprend : des registres de migration de machine virtuelle, les registres de migration de machine virtuelle étant contrôlés par un micrologiciel du système de traitement de l information pour modifier le compte rendu des caractéristiques au sein du processeur, la modification du compte rendu des caractéristiques facilitant l identification d un ensemble de caractéristiques communes.. Le dispositif de la revendication 14, dans lequel : les registres de migration de machine virtuelle font en sorte que le processeur rende compte de données d identification modifiées en réponse à une opération d identification de processeur. 2 3 4 0 11

EP 2 048 78 B1 12

EP 2 048 78 B1 13

EP 2 048 78 B1 14

EP 2 048 78 B1

EP 2 048 78 B1 REFERENCES CITED IN THE DESCRIPTION This list of references cited by the applicant is for the reader s convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard. Patent documents cited in the description US 73944 B1 [0007] US 0223 A1 [0008] US 060178848 A1 [0009] US 060173994 A1 [00] US 01287 A1 [0011] Non-patent literature cited in the description Intel 64 and IA-32 Architectures Software Developer s Manual. Instruction Set Reference, A-M. vol. 2A [000] 16