US2013042238A1PendingUtilityA1

Optimized Virtual Function Translation Entry Memory Caching

Assignee: IBMPriority: Aug 12, 2011Filed: Aug 12, 2011Published: Feb 14, 2013
Est. expiryAug 12, 2031(~5 yrs left)· nominal 20-yr term from priority
G06F 9/45558H04L 49/70
49
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

An approach is provided in which a virtual function, which executes on a network adapter, receives a data packet from a first virtual machine. A translation entry is identified that corresponds to sending the data packet from the first virtual machine to a second virtual machine, and a determination is made as to whether an onboard memory partition assigned to the virtual function includes the identified translation. If the onboard memory location includes the translation entry, the data packet is sent to the destination virtual machine using the translation entry retrieved from the onboard memory partition. Otherwise, if the translation entry is not located in the onboard memory partition, the data packet is sent to the destination virtual machine using a translation entry retrieved from an off board memory location.

Claims

exact text as granted — not AI-modified
1 . (canceled) 
     
     
         2 . (canceled) 
     
     
         3 . (canceled) 
     
     
         4 . (canceled) 
     
     
         5 . (canceled) 
     
     
         6 . (canceled) 
     
     
         7 . (canceled) 
     
     
         8 . (canceled) 
     
     
         9 . An information handling system comprising:
 one or more processors;   a memory coupled to at least one of the processors;   a set of computer program instructions stored in the memory and executed by at least one of the processors in order to perform actions of:
 receiving a data packet from a first virtual machine at virtual function executing on a network adapter; 
 identifying a translation entry that corresponds to sending the data packet from the first virtual machine to a second virtual machine; 
 determining whether an onboard memory partition assigned to the virtual function includes the identified translation entry; 
 in response to determining that the onboard memory partition includes the identified translation entry:
 retrieving the identified translation entry from the onboard memory partition; and 
 sending the data packet to the second virtual machine using the identified translation entry retrieved from the onboard memory partition; 
 
 in response to determining that the onboard memory partition fails to include the identified translation entry:
 retrieving the identified translation entry from an off board memory location; and 
 sending the data packet to the second virtual machine using the identified translation entry retrieved from the off board memory location. 
 
   
     
     
         10 . The information handling system of  claim 9  wherein the processors perform additional actions comprising:
 querying one or more off board memory managers for the identified translation entry that execute on a host computer system corresponding to the first virtual machine; and 
 wherein one or more of the off board memory managers are selected from the group consisting of the first virtual machine, a hypervisor, and an overlay network switch control module executing on a third virtual machine. 
 
     
     
         11 . The information handling system of  claim 10  wherein the processors perform additional actions comprising:
 determining that the one or more off board memory managers are not able to locate the identified translation entry; 
 sending a translation request to a distributed policy service for the identified translation entry in response to determining that the one or more off board memory managers is not able to locate the identified translation entry; 
 receiving the identified translation entry from the distributed policy service; and 
 storing the new translation entry in the onboard memory partition. 
 
     
     
         12 . The information handling system of  claim 9  wherein the off board memory location is located on the first virtual machine and opaque to the first virtual machine, and wherein the virtual function performs the retrieving of the identified translation entry from the off board memory location via a direct memory access (DMA) read operation. 
     
     
         13 . The information handling system of  claim 9  wherein the processors perform additional actions comprising:
 dynamically resizing the onboard memory partition based upon an amount of the onboard memory partition utilized to store a plurality of translation entries for the virtual function, the identified translation entry included in the plurality of translation entries. 
 
     
     
         14 . The information handling system of  claim 9  wherein sending the data packet further comprises sending the data packet over one or more virtual networks, wherein each of the one or more virtual networks is independent of physical topology constraints of a physical network. 
     
     
         15 . The information handling system of  claim 14  wherein the processors perform additional actions comprising:
 wherein the identified translation entry includes a source overlay network identifier and a destination overlay network identifier, the source overlay network identifier identifying a first virtual network corresponding to the first virtual machine, and the destination overlay network identifier identifying a second virtual network corresponding to the second virtual machine; and 
 wherein the first virtual network is different than the second virtual network and both included in the one or more virtual networks. 
 
     
     
         16 . The information handling system of  claim 9  wherein the processors perform additional actions comprising:
 identifying a different memory partition in the memory area that corresponds to a different virtual function; 
 determining that the different memory partition includes one or more available memory slots; and 
 allocating, during the dynamically resizing, one or more of the available memory slots to the memory partition corresponding to the first virtual function, wherein the memory partition and the allocated memory slots are non-contiguous. 
 
     
     
         17 . A computer program product stored in a computer readable storage medium, comprising computer program code that, when executed by an information handling system, causes the information handling system to perform actions comprising:
 receiving a data packet from a first virtual machine at virtual function executing on a network adapter;   identifying a translation entry that corresponds to sending the data packet from the first virtual machine to a second virtual machine;   determining whether an onboard memory partition assigned to the virtual function includes the identified translation entry;   in response to determining that the onboard memory partition includes the identified translation entry:
 retrieving the identified translation entry from the onboard memory partition; and 
 sending the data packet to the second virtual machine using the identified translation entry retrieved from the onboard memory partition; 
   in response to determining that the onboard memory partition fails to include the identified translation entry:
 retrieving the identified translation entry from an off board memory location; and 
 sending the data packet to the second virtual machine using the identified translation entry retrieved from the off board memory location. 
   
     
     
         18 . The computer program product of  claim 17  wherein the information handling system performs additional actions comprising:
 querying one or more off board memory managers for the identified translation entry that execute on a host computer system corresponding to the first virtual machine; and 
 wherein one or more of the off board memory managers are selected from the group consisting of the first virtual machine, a hypervisor, and an overlay network switch control module executing on a third virtual machine. 
 
     
     
         19 . The computer program product of  claim 18  wherein the information handling system performs additional actions comprising:
 determining that the one or more off board memory managers are not able to locate the identified translation entry; 
 sending a translation request to a distributed policy service for the identified translation entry in response to determining that the one or more off board memory managers is not able to locate the identified translation entry; 
 receiving the identified translation entry from the distributed policy service; and 
 storing the new translation entry in the onboard memory partition. 
 
     
     
         20 . The computer program product of  claim 17  wherein the off board memory location is located on the first virtual machine and opaque to the first virtual machine, and wherein the virtual function performs the retrieving of the identified translation entry from the off board memory location via a direct memory access (DMA) read operation. 
     
     
         21 . The computer program product of  claim 17  wherein the information handling system performs additional actions comprising:
 dynamically resizing the onboard memory partition based upon an amount of the onboard memory partition utilized to store a plurality of translation entries for the virtual function, the identified translation entry included in the plurality of translation entries. 
 
     
     
         22 . The computer program product of  claim 17  wherein sending the data packet further comprises sending the data packet over one or more virtual networks, wherein each of the one or more virtual networks is independent of physical topology constraints of a physical network; 
     
     
         23 . The computer program product of  claim 22  wherein information handling system performs additional actions comprising:
 wherein the identified translation entry includes a source overlay network identifier and a destination overlay network identifier, the source overlay network identifier identifying a first virtual network corresponding to the first virtual machine, and the destination overlay network identifier identifying a second virtual network corresponding to the second virtual machine; and 
 wherein the first virtual network is different than the second virtual network and both included in the one or more virtual networks. 
 
     
     
         24 . (canceled) 
     
     
         25 . An information handling system comprising:
 one or more processors;   a memory coupled to at least one of the processors;   a set of computer program instructions stored in the memory and executed by at least one of the processors in order to perform actions of:
 receiving a data packet from a first virtual machine at virtual function executing on a network adapter; 
 identifying a translation entry that corresponds to sending the data packet from the first virtual machine to a second virtual machine; 
 determining whether an onboard memory partition assigned to the virtual function includes the identified translation entry; 
 in response to determining that the onboard memory partition includes the identified translation entry:
 retrieving the identified translation entry from the onboard memory partition; and 
 sending the data packet to the second virtual machine using the identified translation entry retrieved from the onboard memory partition; 
 
 in response to determining that the onboard memory partition fails to include the identified translation entry:
 locating, by the virtual function, the identified translation entry in an off board memory location located on the first virtual machine via a direct memory access (DMA) read operation, wherein the off board memory location is opaque to the first virtual machine; 
 retrieving the identified translation entry from the off board memory location; and 
 sending the data packet to the second virtual machine using the identified translation entry retrieved from the off board memory location.

Join the waitlist — get patent alerts

Track US2013042238A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.