Memory coherence in virtualized environments
AssigneeWestern Digital Technologies, Inc.
InventorsMarjan Radi, Dejan Vucinic
Life of this patent
Estimating the term…
Abstract
A Virtual Switching (VS) kernel module manages different flows of packets between at least one Virtual Machine (VM) running at a node and one or more other VMs running at the node or at one or more other nodes in a network. A packet is received from a first VM using the VS kernel module and is parsed to identify a memory message and an address for at least one memory block stored in a shared memory. At least one entry for the at least one memory block is updated in a directory in a kernel space using the VS kernel module based on the memory message. According to another aspect, a state for the at least one memory block is determined from the directory and the VS kernel module is used to respond to the memory request based on the determined state.
Claims20
A node, comprising:
- at least one memory configured to be used at least in part as a shared memory in a distributed memory system in a network;
- a network interface configured to communicate with one or more other nodes in the network;
- and
- at least one processor configured to:
- execute a Virtual Switching (VS) kernel module in a kernel space of the at least one memory, the VS kernel module configured to manage different flows of packets between at least one Virtual Machine (VM) running at the node and one or more other VMs running at the node or at the one or more other nodes;
- receive a packet from a first VM using the VS kernel module;
- parse the packet to identify a memory message in the packet and an address for at least one memory block stored in the shared memory;
- and
- update an entry for the at least one memory block in a directory stored in the kernel space using the VS kernel module based on the memory message.
A method, comprising:
- executing a Virtual Switching (VS) kernel module in a kernel space of at least one memory of a node, the VS kernel module configured to manage different flows of packets between at least one Virtual Machine (VM) running at the node and one or more other VMs running at the node or at one or more other nodes in communication with the node via a network;
- receiving a packet from a first VM using the VS kernel module;
- parsing the packet to identify a memory message in the packet;
- identifying an address in the memory message for at least one memory block stored in the at least one memory;
- determining a state for the at least one memory block using the VS kernel module by locating at least one entry corresponding to the identified address in a directory stored in the kernel space;
- and
- responding to the memory message using the VS kernel module based on the determined state.
A node, comprising:
- at least one memory configured to be used at least in part as a shared memory in a distributed memory system in a network;
- a network interface configured to communicate with one or more other nodes in the network;
- and
- means for:
- executing a Virtual Switching (VS) kernel module in a kernel space of the at least one memory, the VS kernel module configured to manage different flows of packets between at least one Virtual Machine (VM) running at the node and one or more other VMs running at the node or at the one or more other nodes;
- receiving a packet from a first VM using the VS kernel module;
- parsing the packet to identify a memory message in the packet;
- and
- updating a directory stored in the kernel space for at least one memory block using the VS kernel module based on the memory message.
Dependencies are inferred from the claim text.