IP Library Granted Patent US 10,819,783
Granted Patent B1
US 10,819,783 · App. 15/250,966 · Granted Oct 27, 2020

Managing a data packet for an operating system associated with a multi-node system

Inventors: Ankit Jindal (Pune, IN); Pranavkumar Sawargaonkar (Pune, IN); Keyur Chudgar (San Jose, CA)
Assignee: AMPERE COMPUTING LLC
H04L67/1095G06F9/45558G06F9/4812G06F2009/4557G06F2009/45579G06F2009/45583
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,819,783
App. No.
15/250,966
Granted
Oct 27, 2020
Kind
B1
Abstract

Various aspects provide for managing memory in virtual computer system. For example, a system can include a first network node and a second network node. The first network node receives a data packet via a first hardware network controller. The first network node also transmits the data packet over a communication channel via a second hardware network controller in response to a determination that memory data for the data packet is not mapped to the first network node. The second network node receives the data packet via the communication channel and provides the data packet to an operating system associated with the first network node and the second network node.

Claims (32)

1. A system for providing memory coherency across plurality of network nodes in a network system, the system comprising:

a first network node of the plurality of network nodes configured for:

receiving, via a first network interface controller of the first network node, a data packet from an external system using a first communication channel between the network system and the external system, wherein the first network interface controller is configured to access the first communication channel on behalf of the network system;

determining whether memory data for the data packet is mapped to the first network node; and

in response to a determination that the memory data for the data packet is not mapped to the first network node, transmitting, via a second network interface controller of the first network node, the data packet over a second communication channel between the plurality of network nodes, wherein the second network interface controller is configured to access the second communication channel on behalf of the first network node; and

a second network node of the plurality of network nodes configured for receiving the data packet via the second communication channel and providing the data packet to an operating system associated with the first network node and the second network node.

2. The system of claim 1 , wherein the determining whether the memory data for the data packet is mapped to the first network node comprises determining whether a memory buffer page associated with the operating system is mapped to the first network node.

3. The system of claim 1 , wherein the determining whether the memory data for the data packet is mapped to the first network node comprises determining whether a virtual machine associated with the data packet is not maintained by the first network node.

4. The system of claim 1 , wherein the first network node is configured for providing the data packet to the operating system in response to a determination that the memory data for the data packet is mapped to the first network node.

5. The system of claim 1 , wherein the second network node is configured for providing status data for the data packet to the first network node in response to the providing the data packet to the operating system.

6. The system of claim 1 , wherein the first network node is configured for storing the data packet in a first buffer associated with the first network node in response to the receiving the data packet via the first network interface controller.

7. The system of claim 6 , wherein the second network node is configured for storing the data packet in a second buffer associated with the second network node in response to the receiving the data packet via the second communication channel.

8. The system of claim 6 , wherein the first network node is configured for storing the data packet in a second buffer associated with the first network node in response to a determination that the memory data for the data packet is mapped to the first network node.

9. The system of claim 1 , wherein a first portion of the operating system is maintained by the first network node and a second portion of the operating system is maintained by the second network node.

10. The system of claim 1 , wherein the operating system is associated with a set of virtual machines.

11. The system of claim 1 , wherein the first network node is a first system on a chip (SoC) and the second network node is a second SoC.

12. A method for providing memory coherency across a plurality of network devices in a network system, the method comprising:

receiving, via a first network interface controller of a first network device, data packet from an external system using a first communication channel between the external system and the network system, wherein the first network interface controller is configured to access the first communication channel on behalf of the network system;

determining whether memory data for the data packet is mapped to the first network device;

in response determining that the memory data for the data packet is mapped to the first network device, providing the data packet to an operating system via the first network device; and

in response to determining that the memory data for the data packet is not mapped to the first network device, transmitting, via a second network interface controller of the first network device, the data packet to a second network device of the plurality of network devices using a second communication channel between the plurality of network devices to facilitate providing the data packet to the operating system via the second network device, wherein the second network interface controller is configured to access the second communication channel on behalf of the first network device.

13. The method of claim 12 , wherein the determining whether the memory data for the data packet is mapped to the first network device comprises determining whether a memory buffer page associated with the operating system is mapped to the first network device.

14. The method of claim 12 , wherein the determining whether the memory data for the data packet is mapped to the first network device comprises determining whether a virtual machine associated with the data packet is maintained by the first network device.

15. The method of claim 12 , wherein the receiving the data packet comprises storing the data packet in a first memory associated with the first network device.

16. The method of claim 15 , wherein the providing the data packet to the operating system via the first network device comprises storing the data packet in a second memory associated with the operating system.

17. The method of claim 12 , wherein a first portion of the operating system is maintained by the first network node and a second portion of the operating system is maintained by the second network node.

18. A network device in a network system with a plurality of network devices, comprising:

a first network interface controller configured for receiving a data packet from an external system using a first communication channel between the network system and the external system, storing the data packet in a memory buffer, and generating an interrupt signal in response to storing the data packet in a memory buffer, wherein the first network interface controller is configured to access the first communication channel on behalf of the network system;

a second interface controller; and

a virtual machine manager configured for receiving the interrupt signal, determining whether a memory page for a data packet is mapped to the network device, providing the data packet to an operating system associated with the network device in response to a determination that the memory page for the data packet is mapped to the network device, and facilitating transmission of the data packet, via the second network interface controller, to another network device in the network system using a second communication channel between the plurality of network devices in response to a determination that the memory page for the data packet is not mapped to the network device, wherein the second network interface controller is configured to access the second communication channel on behalf of the network devcie.

19. The network device of claim 18 , wherein the virtual machine manager is configured for storing the data packet in a memory buffer associated with the operating system in response to the determination that the memory page for the data packet is mapped to the network device.

20. The network device of claim 18 , wherein the virtual machine manager is configured for providing the data packet to an operating system associated with the network device in response to a determination that a virtual machine associated with the data packet is maintained by a processor core associated with the network device.

Assignments (6)
CHANGE OF NAME Recorded Dec 6, 2017
From: PROJECT DENVER INTERMEDIATE HOLDINGS LLC
To: AMPERE COMPUTING LLC
Reel/Frame 044717/0683 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2017
From: MACOM CONNECTIVITY SOLUTIONS, LLC
To: PROJECT DENVER INTERMEDIATE HOLDINGS LLC
Reel/Frame 044798/0599 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2017
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: MACOM CONNECTIVITY SOLUTIONS, LLC (SUCCESSOR TO APPLIED MICRO CIRCUITS CORPORATION)
Reel/Frame 044652/0609 →
SECURITY INTEREST Recorded May 11, 2017
From: MACOM CONNECTIVITY SOLUTIONS, LLC (SUCCESSOR TO APPLIED MICRO CIRCUITS CORPORATION)
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 042444/0891 →
MERGER AND CHANGE OF NAME Recorded Apr 6, 2017
From: APPLIED MICRO CIRCUITS CORPORATION; MACOM CONNECTIVITY SOLUTIONS, LLC; MACOM CONNECTIVITY SOLUTIONS, LLC
To: MACOM CONNECTIVITY SOLUTIONS, LLC
Reel/Frame 042176/0185 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2016
From: JINDAL, ANKIT; SAWARGAONKAR, PRANAVKUMAR; CHUDGAR, KEYUR
To: APPLIED MICRO CIRCUITS CORPORATION
Reel/Frame 039571/0787 →