# US 2014/0156958 A1 · Common contiguous memory region optimized virtual machine migration within a workgroup

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0156958 A1
- Document ID: US20140156958A1
- Status: Published application
- Kind: A1
- Application number: 14/090,490
- Filed: 2013-11-26
- Published: 2014-06-05
- Earliest claimed: 2012-11-30
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Eli M. Dow; James P. Gilchrest; Steven K. Schmidt; Jessie Yu
- Web page: https://patentgrep.com/patent/US20140156958A1

## CPC

- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0647: {Migration mechanisms}
- G06F 3/065: {Replication mechanisms}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 9/00: Arrangements for program control, e.g. control units (program control for peripheral devices G06F13/10)
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/5016: {the resource being the memory}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 9/5088: {involving task migration}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments of the invention relate to scanning, by a first processor in a work group, a memory associated with the first processor for data. The first processor updates a first data structure to include at least a portion of the data based on the scanning. The first processor transmits a representation of the first data structure to one or more peer processors of the first processor included in the work group using a dedicated link. The first processor receives a representation of a second data structure associated with at least one of the one or more peer processors of the first processor. The first processor updates the first data structure based on the received representation of the second data structure.

## Claims

### Claim 1

A method for migrating a virtual machine from a first processor to a second processor in a work group, comprising:
determining a minimum hardware configuration to support the virtual machine;
constructing a list of one or more candidate processors in the work group to migrate the virtual machine to, wherein each of the one more candidate processors supports the minimum hardware configuration, and wherein the list of one or more candidate processors comprises the second processor;
determining for each of the one or more candidate processors information about shared contiguous memory regions accessible to the candidate processor that is in common to contiguous memory regions accessed by the virtual machine; and
migrating the virtual machine from the first processor to the second processor based on the determination of the information about shared contiguous memory regions accessible to each of the one or more candidate processors that are in common to contiguous memory regions accessed by the virtual machine, wherein the migrating comprises moving contiguous memory regions that are not in common between the first processor and the second processor.

### Claim 2 (depends on 1)

The method of claim 1, wherein the migration is caused by at least one of the first processor, the second processor, and a third processor in the work group.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
migrating the virtual machine from the first processor to the second processor based on determining that a number of contiguous memory regions accessible to the second processor that are in common to contiguous memory regions accessed by the virtual machine is greater than or equal to a number of contiguous memory regions accessible to each of the other one or more candidate processors that are in common to contiguous memory regions accessed by the virtual machine.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
updating a data structure associated with the second processor to reflect the migration of the virtual machine to the second processor; and
transmitting the data structure from the second processor to at least one other processor in the work group.

### Claim 5

A method comprising:
scanning, by a first processor in a work group, a memory associated with the first processor for data;
updating, by the first processor, a first data structure to include at least a portion of the data based on the scanning;
transmitting, by the first processor, a representation of the first data structure to one or more peer processors of the first processor included in the work group using a dedicated link;
receiving, by the first processor, a representation of a second data structure associated with at least one of the one or more peer processors of the first processor; and
updating, by the first processor, the first data structure based on the received representation of the second data structure.

### Claim 6 (depends on 5)

The method of claim 5, wherein the representation of the first data structure corresponds to a first mnemonic, and wherein the representation of the second data structure corresponds to a second mnemonic.

### Claim 7 (depends on 6)

The method of claim 6, wherein the first mnemonic provides an indication of the first processor and the first data structure, and wherein the second mnemonic provides an indication of the at least one of the one or more peer processors of the first processor and the second data structure.

### Claim 8 (depends on 5)

The method of claim 5, further comprising:
listening, by the first processor, for a migration request;
completing, by the first processor, a migration based on the migration request; and
updating, by the first processor, the first data structure based on the migration.

### Claim 9 (depends on 8)

The method of claim 8, wherein the migration comprises a migration of a virtual machine from at least one of the one or more peer processors of the first processor to the first processor.

### Claim 10 (depends on 9)

The method of claim 9, wherein updating the first data structure based on the migration comprises adding data that is associated with the virtual machine that was not present at the first processor prior to the migration.

### Claim 11 (depends on 8)

The method of claim 8, further comprising:
subsequent to updating the first data structure based on the migration, transmitting, by the first processor, a second representation of the first data structure to the one or more peer processors of the first processor included in the work group.

### Claim 12 (depends on 5)

The method of claim 5, further comprising:
transmitting, by the first processor, a page size associated with the first processor over the dedicated link to the one or more peer processors of the first processor.

### Claim 13 (depends on 5)

The method of claim 5, wherein the dedicated link comprises a Transmission Control Protocol/Internet Protocol (TCP/IP) link, the method further comprising:
transmitting, by the first processor, the representation of the first data structure over the TCP/IP link.

### Claim 14 (depends on 5)

The method of claim 5, wherein each of a plurality of entries in the first data structure comprises:
a first indicator, wherein the first indicator indicates whether a full page of the memory is being referenced,
a second indicator, wherein the second indicator indicates a size of a chunk of the memory,
a third indicator, wherein the third indicator indicates the payload of the chunk of the memory,
a fourth indicator, wherein the fourth indicator identifies the first processor, and
a fifth indicator, wherein the fifth indicator indicates a number of times that the payload is replicated on the first processor.

### Claim 15 (depends on 5)

The method of claim 5, further comprising:
generating, by the first processor, a score that reflects a difference between data stored by the first processor and data stored by the at least one of the one or more peer processors of the first processor; and
sharing the score with the one or more peer processors of the first processor included in the work group.

### Claim 16 (depends on 5)

The method of claim 5, wherein the updating of the first data structure to include the at least a portion of the data based on the scanning comprises adding data to the first data structure that was not present in the first data structure prior to performing the scanning.
