# US 2021/0279092 A1 · System and Method for Virtualizing Hot-Swappable PCIe Devices for Virtual Machines

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

- Number: US 2021/0279092 A1
- Document ID: US20210279092A1
- Status: Published application
- Kind: A1
- Application number: 17/330,000
- Filed: 2021-05-25
- Published: 2021-09-09
- Earliest claimed: 2019-01-31
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company, LLC
- Inventors: Bradley K. Goodman; Thomas N. Dibb
- Web page: https://patentgrep.com/patent/US20210279092A1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 13/4022: {using switching circuits, e.g. switching matrix, connection or expansion network (G06F13/4009 takes precedence)}
- G06F 13/4081: {Live connection to bus, e.g. hot-plugging (current or voltage limitation during live insertion H02H9/004)}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F 2213/0026: PCI express
- G06F 2213/0058: Bus-related hardware virtualisation
- G06F 2213/3808: Network interface controller
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method, computer program product, and computing system for establishing a connection between a virtualization device and a virtual machine infrastructure. The virtualization device may be configured to be communicatively coupled to one or more PCIe devices. A virtual machine may be executed on the virtual machine infrastructure. Control of the virtualization device may be passed through the virtual machine infrastructure to the virtual machine.

## Claims

### Claim 1

A computer-implemented method, executed on a computing device, comprising:
establishing, via the computing device, a connection between a virtualization device and a virtual machine infrastructure, wherein the virtualization device is configured to be communicatively coupled to one or more PCIe devices;
executing a virtual machine on the virtual machine infrastructure; and
passing control of the virtualization device through the virtual machine infrastructure to the virtual machine, wherein passing control of the virtualization device through the virtual machine infrastructure to the virtual machine includes preventing an error from the one or more PCIe devices communicatively coupled to the virtualization device from being received by the virtual machine infrastructure.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein passing control of the virtualization device through the virtual machine infrastructure to the virtual machine includes enabling the virtual machine to access the one or more PCIe devices communicatively coupled to the virtualization device.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the virtual machine is configured to operate when no PCIe devices are communicatively coupled to the virtualization device.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising:
modifying the configuration of the one or more PCIe devices communicatively coupled to the virtualization device during runtime of the virtual machine.

### Claim 5 (depends on 4)

The computer implemented method of claim 4, wherein modifying the configuration of the one or more PCIe devices communicatively coupled to the virtualization device during runtime of the virtual machine includes adding at least one PCIe device during runtime of the virtual machine.

### Claim 6 (depends on 4)

The computer implemented method of claim 4, wherein modifying the configuration of the one or more PCIe devices communicatively coupled to the virtualization device during runtime of the virtual machine includes removing at least one PCIe device during runtime of the virtual machine.

### Claim 7 (depends on 1)

The computer implemented method of claim 1, wherein passing control of the virtualization device through the virtual machine infrastructure to the virtual machine includes preventing the one or more PCIe devices communicatively coupled to the virtualization device from being accessible to the virtual machine infrastructure.

### Claim 8 (depends on 1)

The computer implemented method of claim 1, wherein a number of PCIe devices communicatively coupled to the virtualization device is greater than a virtual machine infrastructure-imposed limit on a number of pass through devices associated with the virtual machine infrastructure.

### Claim 9

A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:
establishing a connection between a virtualization device and a virtual machine infrastructure, wherein the virtualization device is configured to be communicatively coupled to one or more PCIe devices;
executing a virtual machine on the virtual machine infrastructure; and
passing control of the virtualization device through the virtual machine infrastructure to the virtual machine, wherein passing control of the virtualization device through the virtual machine infrastructure to the virtual machine includes preventing the one or more PCIe devices communicatively coupled to the virtualization device from being accessible to the virtual machine infrastructure.

### Claim 10 (depends on 9)

The computer program product of claim 9, wherein passing control of the virtualization device through the virtual machine infrastructure to the virtual machine includes enabling the virtual machine to access the one or more PCIe devices communicatively coupled to the virtualization device.

### Claim 11 (depends on 9)

The computer program product of claim 9, wherein the virtual machine is configured to operate when no PCIe devices are communicatively coupled to the virtualization device.

### Claim 12 (depends on 9)

The computer program product of claim 9, further comprising:
modifying the configuration of the one or more PCIe devices communicatively coupled to the virtualization device during runtime of the virtual machine.

### Claim 13 (depends on 12)

The computer program product of claim 12, wherein modifying the configuration of the one or more PCIe devices communicatively coupled to the virtualization device during runtime of the virtual machine includes adding at least one PCIe device during runtime of the virtual machine.

### Claim 14 (depends on 12)

The computer program product of claim 12, wherein modifying the configuration of the one or more PCIe devices communicatively coupled to the virtualization device during runtime of the virtual machine includes removing at least one PCIe device during runtime of the virtual machine.

### Claim 15 (depends on 9)

The computer program product of claim 9, wherein passing control of the virtualization device through the virtual machine infrastructure to the virtual machine includes preventing an error from the one or more PCIe devices communicatively coupled to the virtualization device from being received by the virtual machine infrastructure.

### Claim 16 (depends on 9)

The computer program product of claim 9, wherein a number of PCIe devices communicatively coupled to the virtualization device is greater than a virtual machine infrastructure-imposed limit on a number of pass through devices associated with the virtual machine infrastructure.

### Claim 17

A computing system including a processor and memory configured to perform operations comprising:
establishing a connection between a virtualization device and a virtual machine infrastructure, wherein the virtualization device is configured to be communicatively coupled to one or more PCIe devices, wherein a number of PCIe devices communicatively coupled to the virtualization device is greater than a virtual machine infrastructure-imposed limit on a number of pass through devices associated with the virtual machine infrastructure;
executing a virtual machine on the virtual machine infrastructure; and
passing control of the virtualization device through the virtual machine infrastructure to the virtual machine.

### Claim 18 (depends on 17)

The computing system of claim 17, wherein passing control of the virtualization device through the virtual machine infrastructure to the virtual machine includes enabling the virtual machine to access the one or more PCIe devices communicatively coupled to the virtualization device.

### Claim 19 (depends on 17)

The computing system of claim 17, wherein the virtual machine is configured to operate when no PCIe devices are communicatively coupled to the virtualization device.
