IP Library Granted Patent US 12,341,697
Granted Patent B2
US 12,341,697 · App. 18/380,218 · Granted Jun 24, 2025

Virtual processing unit scheduling in a computing system

Inventors: Avinash Kumar Chaurasia (Prayagraj, IN); Anshuj Garg (Jabalpur, IN); Uday Pundalik Kurkure (Los Altos, CA); Hari Sivaraman (Livermore, CA); Lan Vu (Palo Alto, CA); Sairam Veeraswamy (Coimbatore, IN)
Assignee: VMware LLC
H04L47/12G06F9/45558G06F9/4881H04L47/25G06F2009/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,341,697
App. No.
18/380,218
Granted
Jun 24, 2025
Kind
B2
Abstract

An example computer system includes a hardware platform including a processing unit and software executing on the hardware platform. The software includes a workload and a scheduler, the workload including a network function chain having network functions, the scheduler configured to schedule the network functions for execution on the processing unit. A downstream network function includes a congestion monitor configured to monitor a first receive queue supplying packets to the downstream network function, the congestion monitor configured to compare occupancy of the first receive queue against a queue threshold. An upstream network function including a rate controller configured to receive a notification from the congestion monitor generated in response to the occupancy of the first receive queue exceeding the queue threshold, the rate controller configured to modify a rate of packet flow between a second receive queue and the upstream network function in response to the notification.

Claims (38)

1. A computer system, comprising:

a hardware platform including a processing unit;

software, executing on the hardware platform, including a workload and a scheduler, the workload executing as user software in a virtual computing instance and including a network function chain having network functions, the scheduler configured to schedule the network functions for execution on the processing unit in equal time slots;

a downstream network function of the network functions including a congestion monitor, the congestion monitor configured to monitor a first receive queue supplying packets to the downstream network function, the congestion monitor configured to compare occupancy of the first receive queue against a queue threshold, the scheduler configured to schedule the downstream network function for execution on the processing unit in a first time slot; and

an upstream network function of the network functions, different than the downstream network function, including a rate controller, the upstream network function supplying packets to the first receive queue, the scheduler configured to schedule the upstream network function for execution on the processing unit in a second time slot of equal time to the first time slot, the rate controller configured to receive a notification from the congestion monitor generated in response to the occupancy of the first receive queue exceeding the queue threshold, the rate controller configured to modify a rate of packet flow between a second receive queue and the upstream network function in response to the notification;

wherein the rate controller is configured to modify the rate of the packet flow by suspending the packet flow between the second receive queue and the upstream network function in response to the notification; and

wherein the rate controller is configured to receive a second notification from the congestion monitor and resume the packet flow between the second receive queue and the upstream network function in response to the second notification.

2. The computer system of claim 1 , wherein the hardware platform includes a central processing unit (CPU) and wherein the processing unit is a peripheral to the CPU.

3. The computer system of claim 2 , wherein the processing unit comprises a graphics processing unit (GPU).

4. The computer system of claim 1 , wherein the scheduler does not expose preemption control to the workload.

5. The computer system of claim 1 , wherein the scheduler comprises a best-effort scheduler, a round-robin scheduler, or a fixed-duration scheduler.

6. The computer system of claim 1 , wherein the software comprises a hypervisor that includes the scheduler, and wherein the workload executes in virtual computing instances managed by the hypervisor.

7. The computer system of claim 6 , wherein the virtual computing instances comprise virtual machines (VMs), wherein the hypervisor is configured to virtualize the processing unit and provide virtual processing units to the VMs, and wherein the network functions execute in the VMs on the virtual processing units.

8. A method of managing network functions of a network function chain scheduled to execute on a processing unit in a hardware platform of a computing system in equal time slots by a scheduler, the method comprising:

executing a downstream network function, a congestion monitor, and a first receive queue as user software in a first virtual computing instance, the scheduler configured to schedule the downstream function for execution on the processing unit in a first time slot;

executing an upstream network function, a second receive queue, and a rate controller as user software in a second virtual computing instance, the upstream network function different than the downstream network function, the scheduler configured to schedule the upstream network function on the processing unit in a second time slot of equal time to the first time slot;

monitoring, by the congestion monitor, congestion of the first receive queue supplying packets to the downstream network function of the network functions;

comparing, by the congestion monitor, occupancy of the first receive queue to a queue threshold;

receiving, at the rate controller, a notification from the congestion monitor generated in response to the occupancy of the first receive queue exceeding the queue threshold;

modifying, by the rate controller, a rate of packet flow between the second receive queue and the upstream network function in response to the notification, the upstream network function supplying packets to the first receive queue, wherein the rate controller modifies the rate of the packet flow by suspending the packet flow between the second receive queue and the upstream network function in response to the notification;

receiving, at the rate controller, a second notification from the congestion monitor; and

resuming, by the rate controller, the packet flow between the second receive queue and the upstream network function in response to the second notification.

9. The method of claim 8 , wherein the processing unit comprises a graphics processing unit (GPU).

10. The method of claim 8 , wherein the scheduler does not expose preemption control to the network functions.

11. The method of claim 8 , wherein the software comprises a hypervisor that includes the scheduler, and wherein the first and second virtual computing instances comprise virtual machines (VMs) managed by the hypervisor.

12. The method of claim 11 , wherein the hypervisor is configured to virtualize the processing unit and provide virtual processing units to the VMs, and wherein the network functions execute in the VMs on the virtual processing units.

13. A non-transitory computer readable medium comprising instructions to be executed in a computing device to cause the computing device to carry out a method of managing network functions of a network function chain scheduled to execute on a processing unit in a hardware platform of a computing system in equal time slots by a scheduler, the method comprising:

executing a downstream network function, a congestion monitor, and a first receive queue as user software in a first virtual computing instance, the scheduler configured to schedule the downstream function for execution on the processing unit in a first time slot;

executing an upstream network function, a second receive queue, and a rate controller as user software in a second virtual computing instance, the upstream network function different than the downstream network function, the scheduler configured to schedule the upstream network function on the processing unit in a second time slot of equal time to the first time slot;

monitoring, by the congestion monitor, congestion of the first receive queue supplying packets to the downstream network function of the network functions;

comparing, by the congestion monitor, occupancy of the first receive queue to a queue threshold;

receiving, at the rate controller, a notification from the congestion monitor generated in response to the occupancy of the first receive queue exceeding the queue threshold;

modifying, by the rate controller, a rate of packet flow between the second receive queue and the upstream network function in response to the notification, the upstream network function supplying packets to the first receive queue, wherein the rate controller modifies the rate of the packet flow by suspending the packet flow between the second receive queue and the upstream network function in response to the notification;

receiving, at the rate controller, a second notification from the congestion monitor; and

resuming, by the rate controller, the packet flow between the second receive queue and the upstream network function in response to the second notification.

14. The non-transitory computer readable medium of claim 13 , wherein the processing unit comprises a graphics processing unit (GPU).

15. The non-transitory computer readable medium of claim 13 , wherein the software comprises a hypervisor that includes the scheduler, and wherein the first and second virtual computing instances comprise virtual machines (VMs) managed by the hypervisor.

16. The non-transitory computer readable medium of claim 15 , wherein the hypervisor is configured to virtualize the processing unit and provide virtual processing units to the VMs, and wherein the network functions execute in the VMs on the virtual processing units.

Assignments (2)
CHANGE OF NAME Recorded Mar 18, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066915/0212 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2024
From: CHAURASIA, AVINASH KUMAR; GARG, ANSHUJ; KURKURE, UDAY PUNDALIK; SIVARAMAN, HARI; VU, LAN; VEERASWAMY, SAIRAM
To: VMWARE, INC.
Reel/Frame 066721/0056 →
Priority Claims (1)
IN 202341049988 · Jul 25, 2023 · national
Continuity (1)
Related Publication 20250039093A1 · Jan 30, 2025
References Cited (17)
US 20050063422A1 · Lazar · 2005 [cited by examiner]
US 20140146666A1 · Kwan · 2014 [cited by examiner]
US 20180124800A1 · Arnold · 2018 [cited by examiner]
US 20180293701A1 · Appu · 2018 [cited by examiner]
US 20190018699A1 · Asaro · 2019 [cited by examiner]
US 20190303203A1 · Guan · 2019 [cited by examiner]
US 20200028787A1 · Mehra · 2020 [cited by examiner]
US 20200409732A1 · Kovacevic · 2020 [cited by examiner]
US 20210184988A1 · Anwer · 2021 [cited by examiner]
US 20220311711A1 · Jepsen · 2022 [cited by examiner]
US 20230198907A1 · Raghavan · 2023 [cited by examiner]
EP 1361710A2 · 2003 [cited by examiner]
EP 3860049A1 · 2021 [cited by examiner]
WO WO2018197924A1 · 2018 [cited by examiner]
WO WO2023073408A1 · 2023 [cited by examiner]
WO WO2024183932A1 · 2024 [cited by examiner]
Chaurasia, A. et al. “Simmer: Rate proportional scheduling to reduce packet drops in vGPU based NF chains,” Proceedings of the 51st International Conference on Parallel Processing, Bordeaux, France, Aug. 29, 2022, pp. 1… [cited by applicant]