# US 2025/0085997 A1 · Multi-os heterogeneous virtual machine

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

- Number: US 2025/0085997 A1
- Document ID: US20250085997A1
- Status: Published application
- Kind: A1
- Application number: 18/466,800
- Filed: 2023-09-13
- Published: 2025-03-13
- Earliest claimed: 2023-09-13
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Kenneth Eugene James; James R. Hamrick, JR.
- Web page: https://patentgrep.com/patent/US20250085997A1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system for running a virtual machine (VM) on a host device is provided. During operation, the system can execute, within the VM, a first operating system (OS) running a client application and a second OS running a network protocol stack. The first OS can receive a transaction command from the client application. The transaction command can be associated with a remote memory access. The first OS can then convert the transaction command to one or more network packets and provide a description of the one or more network packets to the second OS via a shared guest physical memory of the VM. The host device can then send the one or more network packets to a corresponding destination based on the network protocol stack.

## Claims

### Claim 1

A method comprising:
executing, within a virtual machine (VM) operating on a host device, a first operating system (OS) running a client application and a second OS running a network protocol stack;
receiving, by the first OS, a transaction command from the client application, wherein the transaction command is associated with a remote memory access;
converting, by the first OS, the transaction command to one or more network packets;
providing, by the first OS, a description of the one or more network packets to the second OS via a shared guest physical memory of the VM; and
sending, by the host device, the one or more network packets to a corresponding destination based on the network protocol stack.

### Claim 2 (depends on 1)

The method of claim 1, wherein the remote memory access is based on Remote Direct Memory Access (RDMA), and wherein the transaction command includes an RDMA transaction.

### Claim 3 (depends on 1)

The method of claim 1, wherein a guest physical memory presented to the VM is partitioned into a plurality of segments comprising a first memory segment used by the first OS, a second memory segment used by the second OS, and the shared guest physical memory accessible by the first OS and the second OS.

### Claim 4 (depends on 1)

The method of claim 1, wherein the VM provides a plurality of virtual processing units, wherein the first OS executes on a first subset of the plurality of virtual processing units, and wherein the second OS executes on a second subset of the plurality of virtual processing units.

### Claim 5 (depends on 4)

The method of claim 4, wherein providing, by the first OS, the one or more network packets further comprises:
issuing, by the first OS, an inter-processor interrupt; and
obtaining, by the second OS, the one or more network packets via the shared guest physical memory based on the interrupt.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
enqueueing, by the first OS, the description of the one or more network packets in a queue in the shared guest physical memory; and
dequeuing, by the second OS, the description from the queue.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
running, by the first OS, a virtual network interface controller (NIC) operable based on the remote memory access; and
receiving, by the virtual NIC, the transaction command from the client application by emulating the remote memory access.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
determining, by the virtual NIC, an address of the corresponding destination based on the transaction command; and
generating, by the virtual NIC, the one or more network packets by incorporating the address.

### Claim 9 (depends on 1)

The method of claim 1, further comprising providing, using a NIC driver running on the second OS, the one or more network packets from the network protocol stack to a physical NIC of the host device, wherein the physical NIC transmits the one or more network packets.

### Claim 10 (depends on 1)

The method of claim 1, wherein the corresponding destination includes a virtual NIC operable based on the remote memory access.

### Claim 11

A non-transitory computer-readable storage medium storing instructions that when executed by a processor of a host device cause the processor to perform a method, the method comprising:
operating a virtual machine (VM) on a virtual machine manager (VMM) running on the host device;
executing, within the VM, a first operating system (OS) running a client application and a second OS running a network protocol stack;
receiving, by the first OS, a transaction command from the client application, wherein the transaction command is associated with a remote memory access;
converting, by the first OS, the transaction command to one or more network packets;
providing, by the first OS, a description of the one or more network packets to the second OS via a shared guest physical memory of the VM; and
sending, by the host device, the one or more network packets to a corresponding destination based on the network protocol stack.

### Claim 12 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, wherein the remote memory access is based on Remote Direct Memory Access (RDMA), and wherein the transaction command includes an RDMA transaction.

### Claim 13 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, wherein a guest physical memory presented to the VM is partitioned into a plurality of segments comprising a first memory segment used by the first OS, a second memory segment used by the second OS, and the shared guest physical memory accessible by the first OS and the second OS.

### Claim 14 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, wherein the VM provides a plurality of virtual processing units, wherein the first OS executes on a first subset of the plurality of virtual processing units, and wherein the second OS executes on a second subset of the plurality of virtual processing units.

### Claim 15 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein providing, by the first OS, the one or more network packets further comprises:
issuing, by the first OS, an inter-processor interrupt; and
obtaining, by the second OS, the one or more network packets via the shared guest physical memory based on the interrupt.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the method further comprises:
enqueueing, by the first OS, the description of the one or more network packets in a queue in the shared guest physical memory; and
dequeuing, by the second OS, the description from the queue.

### Claim 17 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, wherein the method further comprises:
running, by the first OS, a virtual network interface controller (NIC) operable based on the remote memory access; and
receiving, by the virtual NIC, the transaction command from the client application by emulating the remote memory access.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the method further comprises:
determining, by the virtual NIC, an address of the corresponding destination based on the transaction command; and
generating, by the virtual NIC, the one or more network packets by incorporating the address.

### Claim 19 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, further wherein the method further comprises providing, using a NIC driver running on the second OS, the one or more network packets from the network protocol stack to a physical NIC of the host device, wherein the physical NIC transmits the one or more network packets.

### Claim 20

A computer system, comprising:
a processor;
a memory device;
a set of ports; and
a network interface controller (NIC);
control circuitry comprising:
a virtualization logic block is to run a virtual machine (VM) on the computer system;
an operating system (OS) logic block is to execute, within the VM, a first OS running a client application and a second OS running a network protocol stack; and
a transaction logic block is to:
receive, at the first OS, a transaction command from the client application, wherein the transaction command is associated with a remote memory access;
convert, at the first OS, the transaction command to one or more network packets; and
provide, from the first OS, a description of the one or more network packets to the second OS via a shared guest physical memory of the VM; and
wherein the NIC is to send the one or more network packets to a corresponding destination based on the network protocol stack.
