Virtual machine messaging
AssigneeHewlett Packard Enterprise Development LP
InventorsSudheer Kurichiyath, Joel E. Lilienkamp
Life of this patent
Estimating the term…
Abstract
Techniques for enabling communication between a virtual machine and the host of the virtual machine are disclosed. An example computing device includes a host operating system and a virtual machine running on the host operating system. The storage device also includes a split driver. The split driver includes a frontend driver residing on the virtual machine and a backend driver residing on the host. The split driver processes messages received from the virtual machine and passes the messages from the frontend driver to the backend driver.
Claims17
A computing device, comprising:
- a host operating system;
- a virtual machine running on the host operating system;
- and
- a split driver comprising:
- a frontend driver residing on the virtual machine, and
- a backend driver residing on the host, the split driver to process messages received from the virtual machine,
- wherein the messages are passed from the frontend driver to the backend driver via a message ring shared between the frontend driver and the backend driver to provide zero-copy communication between the frontend driver and the backend driver,
- wherein the backend driver establishes a context with the virtual machine to translate addresses of the virtual machine to addresses of the host for processing the messages,
- wherein the context is saved in a virtual volume by the host operating system, and
- wherein a plurality of messages are collected on the shared message ring prior to the backend driver being signaled to process the messages.
A method comprising:
- receiving a message from a virtual machine at a frontend driver residing in the virtual machine, the message to be sent to a host of the virtual machine;
- queuing, by the frontend driver, messages in a shared message ring, wherein the messages comprise a callback function;
- retrieving, by a backend driver residing in the host, the messages from the shared message ring;
- and
- processing the messages in the host, wherein
- the message ring is shared between the frontend driver and the backend driver to provide zero-copy communication between the frontend driver and the backend driver, and
- a plurality of messages are collected on the shared message ring prior to the backend driver being signaled to retrieve the messages for processing by the host.
A tangible, non-transitory, computer-readable medium comprising code to instruct a processor to:
- receive a message from a virtual machine at a frontend driver residing in the virtual machine, the message to be sent to a host of the virtual machine;
- queue, by the frontend driver, messages in a shared message ring, wherein the messages comprise a callback function;
- retrieve, by a backend driver residing in the host, the messages from the shared message ring;
- and
- process the messages in the host, wherein
- the message ring is shared between the frontend driver and the backend driver to provide zero-copy communication between the frontend driver and the backend driver, and
- a plurality of messages are collected on the shared message ring prior to the backend driver being signaled to retrieve the messages for processing by the host.
Dependencies are inferred from the claim text.