IP Library › Granted Patent US 12,307,280
Granted Patent B2
US 12,307,280 · App. 17/678,702 · Granted May 20, 2025

Management and utilization of network interface card resources for workload execution

Inventors: Victor Fong (Melrose, MA); Kranti Uppala (Milford, MA); Geoffrey A. Reid (Littleton, MA)
Assignee: Dell Products L.P.
G06F9/45558G06F2009/4557G06F2009/45583G06F2009/45595
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 12,307,280
App. No.
17/678,702
Filed
Feb 23, 2022
Granted
May 20, 2025
Kind
B2
Art Unit
2196
USPC
718/105
Abstract

A method comprises receiving a request for at least one network interface card resource, and identifying one or more network interface cards comprising the at least one network interface card resource. In the method, at least one virtualized computing resource image is received, and a workload is executed using an instance of the at least one virtualized computing resource image running on the one or more network interface cards. Workload execution includes implementation of a binding mechanism using one or more control groups and a given protocol. In addition, a cluster including one or more nodes comprising the identified one or more network interface cards is generated.

Claims (37)

1. A method, comprising:

receiving, in a cloud-based system comprising a plurality of host devices and a plurality of network interface cards, a request for at least one network interface card resource, the host devices having respective first operating systems and the network interface cards having respective second operating systems that are separate from the first operating systems of the host devices, the cloud-based system providing a multi-tenant environment in which network card resources are shared among multiple tenants, the request being received from a user device associated with a particular one of the tenants;

identifying, in the cloud-based system, one or more of the network interface cards comprising the at least one network interface card resource;

receiving, in the cloud-based system, at least one virtualized computing resource image;

determining, in the cloud-based system, at least one associated kernel image for the one or more network interface cards, the kernel image for the one or more network interface cards being different than kernel images of the host devices and identifying one or more namespaces associated with the particular tenant, the one or more namespaces being utilized in the cloud-based system to provide isolation in workload execution, on the one or more network interface cards, between the particular tenant and other ones of the multiple tenants; and

executing, in the cloud-based system, a workload using an instance of the at least one virtualized computing resource image running on the one or more network interface cards utilizing the one or more namespaces identified by the kernel image;

wherein the method is performed by at least one processing device of the cloud-based system, the at least one processing device comprising a processor coupled to a memory.

2. The method of claim 1 wherein the at least one virtualized computing resource image comprises one of a container image and a virtual machine image.

3. The method of claim 1 further comprising generating a cluster including one or more nodes comprising the identified one or more network interface cards comprising the at least one network interface card resource.

4. The method of claim 3 further comprising monitoring one or more metrics of the one or more nodes.

5. The method of claim 1 wherein the at least one processing device is a component of a cloud service provider hosting the one or more network interface cards.

6. The method of claim 5 wherein the at least one virtualized computing resource image is uploaded to the cloud service provider from a user device.

7. The method of claim 5 wherein the at least one virtualized computing resource image is executable on the one or more network interface cards and on a host device of the cloud service provider.

8. The method of claim 1 wherein the one or more network interface cards comprise smart network interface cards, and the at least one network interface card resource comprises at least one of a central processing unit, a graphics processing unit, a partition of a central processing unit, graphics processing unit computational time slices and graphics processing unit memory.

9. The method of claim 1 wherein executing the workload comprises implementing a binding mechanism using one or more control groups and a given protocol.

10. The method of claim 9 wherein the one or more control groups isolate the workload.

11. The method of claim 9 wherein the given protocol provides a programmable network data path in a kernel.

12. The method of claim 1 further comprising eliminating the instance of the at least one virtualized computing resource image following completion of the executing of the workload.

13. The method of claim 1 further comprising releasing the at least one network interface card resource following completion of the executing of the workload.

14. An apparatus, comprising:

at least one processor and at least one memory storing computer program instructions wherein, when the at least one processor executes the computer program instructions, the apparatus is configured:

to receive, in a cloud-based system comprising a plurality of host devices and a plurality of network interface cards, a request for at least one network interface card resource, the host devices having respective first operating systems and the network interface cards having respective second operating systems that are separate from the first operating systems of the host devices, the cloud-based system providing a multi-tenant environment in which network card resources are shared among multiple tenants, the request being received from a user device associated with a particular one of the tenants;

to identify, in the cloud-based system, one or more of the network interface cards comprising the at least one network interface card resource;

to receive, in the cloud-based system, at least one virtualized computing resource image;

to determine, in the cloud-based system, at least one associated kernel image for the one or more network interface cards, the kernel image for the one or more network interface cards being different than kernel images of the host devices and identifying one or more namespaces associated with the particular tenant, the one or more namespaces being utilized in the cloud-based system to provide isolation in workload execution, on the one or more network interface cards, between the particular tenant and other ones of the multiple tenants; and

to execute, in the cloud-based system, a workload using an instance of the at least one virtualized computing resource image running on the one or more network interface cards utilizing the one or more namespaces identified by the kernel image.

15. The apparatus of claim 14 wherein the apparatus is further configured to generate a cluster including one or more nodes comprising the identified one or more network interface cards comprising the at least one network interface card resource.

16. The apparatus of claim 14 wherein, in executing the workload, the apparatus is configured to implement a binding mechanism using one or more control groups and a given protocol.

17. The apparatus of claim 14 wherein the apparatus is further configured to eliminate the instance of the at least one virtualized computing resource image following completion of the executing of the workload.

18. A computer program product stored on a non-transitory computer-readable medium and comprising machine executable instructions, the machine executable instructions, when executed, causing a processing device:

to receive, in a cloud-based system comprising a plurality of host devices and a plurality of network interface cards, a request for at least one network interface card resource, the host devices having respective first operating systems and the network interface cards having respective second operating systems that are separate from the first operating systems of the host devices, the cloud-based system providing a multi-tenant environment in which network card resources are shared among multiple tenants, the request being received from a user device associated with a particular one of the tenants;

to identify, in the cloud-based system, one or more of the network interface cards comprising the at least one network interface card resource;

to receive, in the cloud-based system, at least one virtualized computing resource image;

to determine, in the cloud-based system, at least one associated kernel image for the one or more network interface cards, the kernel image for the one or more network interface cards being different than kernel images of the host devices and identifying one or more namespaces associated with the particular tenant, the one or more namespaces being utilized in the cloud-based system to provide isolation in workload execution, on the one or more network interface cards, between the particular tenant and other ones of the multiple tenants; and

to execute, in the cloud-based system, a workload using an instance of the at least one virtualized computing resource image running on the one or more network interface cards utilizing the one or more namespaces identified by the kernel image.

19. The computer program product of claim 18 wherein in executing the workload, the machine executable instructions cause the processing device to implement a binding mechanism using one or more control groups and a given protocol.

20. The computer program product of claim 18 wherein the machine executable instructions further cause the processing device to eliminate the instance of the at least one virtualized computing resource image following completion of the executing of the workload.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2022
From: FONG, VICTOR; UPPALA, KRANTI; REID, GEOFFREY A.
To: DELL PRODUCTS L.P.
Reel/Frame 059080/0567 →
Continuity (1)
Related Publication 20230266988A1 · Aug 24, 2023
References Cited (37)
US 8923320B2 · Dasari · 2014 [cited by examiner]
US 10757170B2 · Thakkar · 2020 [cited by examiner]
US 11422840B2 · Warkentin · 2022 [cited by examiner]
US 11513809B2 · Buswell · 2022 [cited by examiner]
US 20140161137A1 · Dasari · 2014 [cited by examiner]
US 20150301844A1 · Droux · 2015 [cited by examiner]
US 20180109387A1 · Vyas · 2018 [cited by examiner]
US 20180336055A1 · Bernardini · 2018 [cited by examiner]
US 20200092271A1 · Kumar · 2020 [cited by examiner]
US 20200344182A1 · Tsirkin · 2020 [cited by examiner]
US 20210311792A1 · Rosoff · 2021 [cited by examiner]
US 20220197681A1 · Rajagopal · 2022 [cited by examiner]
US 20220206962A1 · Kim · 2022 [cited by examiner]
US 20220321468A1 · Mestery · 2022 [cited by examiner]
US 20220385631A1 · McDowall · 2022 [cited by examiner]
US 20230012308A1 · Kommula · 2023 [cited by examiner]
US 20230051825A1 · Chang · 2023 [cited by examiner]
Yan Luo; “Network I/O virtualization for Cloud Computing”; University of Massachusetts Lowell; IEEE Computer Society; Sep./Oct. 2010; (Luo_2010.pdf; pp. 36-41) (Year: 2010). [cited by examiner]
Nvidia Corporation, “Nvidia GPUDirect,” https://developer.nvidia.com/gpudirect, Accessed Jan. 19, 2022, 5 pages. [cited by applicant]
S. McCarty, “Architecting Containers Part 1: Why Understanding User Space vs. Kernel Space Matters,” https://www.redhat.com/en/blog/architecting-containers-part-1-why-understanding-user-space-vs-kernel-space-matters, Ju… [cited by applicant]
Wikipedia, “cgroups,” https://en.wikipedia.org/w/index.php?title=Cgroups&oldid=1050179936, Oct. 16, 2021, 7 pages. [cited by applicant]
Aqua Security, “Container Images: Architecture and Best Practices,” https://www.aquasec.com/cloud-native-academy/container-security/container-images/, Accessed Jan. 20, 2022, 11 pages. [cited by applicant]
PC Mag Digital Group, “ARM,” https://www.pcmag.com/encyclopedia/term/arm, Accessed Jan. 22, 2022, 4 pages. [cited by applicant]
Docker Inc., “Docker Registry,” https://docs.docker.com/registry/, Accessed Jan. 19, 2022, 2 pages. [cited by applicant]
A. Lock, “Creating Docker Multi-arch Images for ARM64 from Windows,” https://andrewlock.net/creating-multi-arch-docker-images-for-arm64-from-windows/, Jun. 15, 2021, 5 pages. [cited by applicant]
Kata Containers, “The Speed of Containers, the Security of VMs,” https://katacontainers.io/, Accessed Jan. 19, 2022, 4 pages. [cited by applicant]
A. Viviano, “Overview of Single Root I/O Virtualization (SR-IOV),” https://docs.microsoft.com/en-us/windows-hardware/drivers/network/overview-of-single-root-i-o-virtualization--sr-iov-#:˜:text=The, Dec. 14, 2021, 2 page… [cited by applicant]
The Kubernetes Authors, “kube-controller-manager,” https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/, Dec. 8, 2021, 15 pages. [cited by applicant]
Wikipedia, “Network Interface Controller,” https://en.wikipedia.org/w/index.php?title=Network_interface_controller&oldid=1060676248, Dec. 17, 2021, 6 pages. [cited by applicant]
Unix & Linux, “What is difference between User space and Kernel space?” https://unix.stackexchange.com/questions/87625/what-is-difference-between-user-space-and-kernel-space, Accessed Nov. 23, 2021, 10 pages. [cited by applicant]
The Linux Foundation, “XDP: eXpress Data Path,” https://www.iovisor.org/technology/xdp, Accessed Jan. 19, 2022, 4 pages. [cited by applicant]
Wikipedia, “User Space,” https://en.wikipedia.org/w/index.php?title=User_space&oldid=1052063093, Oct. 27, 2021, 3 pages. [cited by applicant]
K. Deierling, “What Is a SmartNIC?” https://blogs.nvidia.com/blog/2021/10/29/what-is-a-smartnic/#:˜:text=A, Oct. 29, 2021, 22 pages. [cited by applicant]
S. J. Bigelow, “What is Edge Computing? Everything you Need to Know,” https://www.techtarget.com/searchdatacenter/definition/edge-computing, Accessed Jan. 19, 2022, 11 pages. [cited by applicant]
The Kubernetes Authors, “Workloads,” https://kubernetes.io/docs/concepts/workloads/, Oct. 15, 2020, 2 pages. [cited by applicant]
U.S. Appl. No. 17/676,580 filed in the name of Victor Fong et al. filed Feb. 21, 2022, and entitled “Physical Hardware Controller for Provisioning Services on Processing Devices.” [cited by applicant]
U.S. Appl. No. 17/682,077 filed in the name of Amy N. Seibel et al. filed Feb. 28, 2022, and entitled “Edge Utility System with Dynamic Aggregation of Edge Resources Across Multiple Edge Computing Sites.” [cited by applicant]