IP Library Granted Patent US 8,499,303
Granted Patent B2
US 8,499,303 · App. 13/450,520 · Granted Jul 30, 2013

Dynamic techniques for optimizing soft real-time task performance in virtual machine

Inventors: Anjur Sundaresan Krishnakumar (Princeton, NJ); Parameshwaran Krishnan (Basking Ridge, NJ); Min Lee (Atlanta, GA); Navjot Singh (Denville, NJ); Shalini Yajnik (Berkeley Heights, NJ)
Assignee: Avaya Inc.
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 8,499,303
App. No.
13/450,520
Filed
Apr 19, 2012
Granted
Jul 30, 2013
Kind
B2
Art Unit
2195
USPC
718/104
Abstract

Methods to dynamically improve soft real-time task performance in virtualized computing environments under the management of an enhanced hypervisor comprising a credit scheduler. The enhanced hypervisor analyzes the on-going performance of the domains of interest and of the virtualized data-processing system. Based on the performance metrics disclosed herein, some of the governing parameters of the credit scheduler are adjusted. Adjustments are typically performed cyclically, wherein the performance metrics of an execution cycle are analyzed and adjustments may be applied in a later execution cycle. In alternative embodiments, some of the analysis and tuning functions are in a separate application that resides outside the hypervisor. The performance metrics disclosed herein include: a “total-time” metric; a “timeslice” metric; a number of “latency” metrics; and a “count” metric. In contrast to prior art, the present invention enables on-going monitoring of a virtualized data-processing system accompanied by dynamic adjustments based on objective metrics.

Claims (81)

1. A method comprising:

receiving by a hypervisor in a data-processing system a first metric that is associated with a first domain, wherein:

(i) the data-processing system comprises a first processor and a second processor,

(ii) the first domain comprises a first plurality of tasks that were executed on the data-processing system, and

(iii) the first metric is based on the amount of time, during an earlier time interval,

that was spent executing tasks of the first domain that had an over priority;

when the value of the first metric is above a first threshold, increasing an amount of time to be spent in a later time interval to execute tasks of the first domain that have an over priority;

executing by the data-processing system in the later time interval the tasks of the first domain, based on the increased amount of time;

receiving, by the data-processing system, a second metric that is associated with the first domain, wherein the second metric is based on the amount of time, during the earlier time interval, that was spent executing tasks of the first domain that had an under priority;

receiving, by the data-processing system, a third metric that is associated with a second domain, wherein:

(i) the second domain comprises a second plurality of tasks that were executed on the data-processing system, and

(ii) the third metric is based on the amount of time, during the earlier time interval, that was spent executing tasks of the second domain that had an under priority;

when the value of the second metric is below a second threshold and the value of the third metric is below a third threshold, bin-packing by the hypervisor the first plurality of tasks and the second plurality of tasks into at least a first bin-pack, wherein the bin-packing is based on minimizing the number of processors that are to execute the first plurality of tasks and the second plurality of tasks; and

executing by the first processor the tasks in the first bin-pack,

wherein:

characteristics determined by a priority level of a task comprise: (i) where the task is placed within a queue to await execution; and (ii) how soon after being queued the task will be executed by one of the first processor and the second processor;

the queue comprises a boost-priority region; an under-priority region; an over-priority region; and an idle-priority region, in decreasing priority value;

a task with the over priority comprises a task that is queued within the over-priority region of the queue;

a task with an under priority comprises a task that is queued within the under-priority region of the queue.

2. The method of claim 1 wherein:

the increasing is further based on a fourth metric that is based on a measurement of total latency, during the earlier time interval, of tasks of the first domain that had an over priority.

3. The method of claim 1 further comprising:

receiving by the hypervisor a fourth metric that is based on the amount of time, during the earlier time interval, that was spent executing tasks of the first domain that had an under priority; and

when the value of the fourth metric is below a fourth threshold:

(i) scheduling exclusively to the first processor the tasks of the first domain, to be executed in the later time interval, and

(ii) scheduling the tasks of a second domain, to be executed in the later time interval, to a processor in the data-processing system that is exclusive of the first processor.

4. The method of claim 1 wherein the hypervisor comprises a credit-scheduler that performs the increasing.

5. The method of claim 1 wherein an application transmits at least one instruction to the hypervisor to perform the increasing, and wherein the application is separate from the hypervisor.

6. The method of claim 5 wherein the increasing is based on a weight that is generated by the application.

7. The method of claim 1 wherein the first domain is a time-sensitive domain.

8. The method of claim 1 wherein some of the first plurality of tasks are time-sensitive tasks.

9. The method of claim 1 further comprising:

when an event arrives that is associated with a task that is time-sensitive, assign a boost priority to the task, wherein the assigning is independent of the pre-existing priority of the task, and wherein the task is to be executed on the data-processing system in the later time interval in accordance with the boost priority.

10. A method comprising:

receiving, by a hypervisor in a data-processing system, a first metric that is associated with a first domain that is time-sensitive, wherein:

(i) the data-processing system comprises a first processor and a second processor,

(ii) the first domain comprises a first plurality of tasks having allocated credit that were executed on the data-processing system,

(iii) the first metric is based on the amount of time, during an earlier time interval, that was spent executing tasks of the first domain that had an under priority, and

(iv) the time-sensitive domain comprises tasks having an execution deadline; and

when the value of the first metric is below a first threshold, scheduling the tasks of the first domain exclusively to the first processor, to be executed in a later time interval; and

executing, in the later time interval, exclusively by the first processor, the tasks of the first domain,

wherein:

characteristics determined by a priority level of a task comprise: (i) where the task is placed within a queue to await execution; and (ii) how soon after being queued the task will be executed by one of the first processor and the second processor;

the queue comprises a boost-priority region; an under-priority region; an over-priority region; and an idle-priority region, in decreasing priority value;

a task with the over priority comprises a task that over-used its credit allocation during its previous execution cycle and is queued within the over-priority region of the queue;

a task with an under priority comprises a task that under-used its credit allocation during its previous execution cycle and is queued within the under-priority region of the queue;

the scheduling of tasks of the first domain exclusively to the first processor is to prevent pre-emption of the tasks of the of the first domain that had an under priority by other tasks and to provide a predetermined sufficient processing time; and

the first threshold is based upon a quality of performance of one or more tasks of the first plurality of tasks.

11. The method of claim 10 further comprising: when the value of the first metric is below a first threshold, scheduling the tasks of a second domain to a processor in the data-processing system that is exclusive of the first processor, to be executed in the later time interval.

12. The method of claim 10 wherein the hypervisor comprises a credit-scheduler that performs the increasing.

13. The method of claim 10 wherein some of the first plurality of tasks are time-sensitive tasks.

14. The method of claim 10 further comprising:

when an event arrives that is associated with a task that is time-sensitive, assign a boost priority to the task, wherein the assigning is independent of the pre-existing priority of the task, and wherein the task is to be executed on the data-processing system in the later time interval in accordance with the boost priority.

15. A method comprising:

receiving by a hypervisor in a data-processing system a first metric that is associated with a first domain, wherein:

(i) the data-processing system comprises a first processor and a second processor,

(ii) the first domain comprises a first plurality of tasks that were executed on the data-processing system, and

(iii) the first metric is based on a measurement of total latency, during an earlier time interval, of tasks of the first domain that had an over priority;

when the value of the first metric is above a first threshold, increasing the amount of time to be spent in a later time interval to execute tasks of the first domain that have an over priority;

receiving, by the data-processing system, a second metric that is associated with the first domain, wherein the second metric is based on the amount of time, during the earlier time interval, that was spent executing tasks of the first domain that had an under priority;

receiving, by the data-processing system, a third metric that is associated with a second domain, wherein:

(i) the second domain comprises a second plurality of tasks that were executed on the data-processing system, and

(ii) the third metric is based on the amount of time, during the earlier time interval, that was spent executing tasks of the second domain that had an under priority;

when the value of the second metric is below a second threshold and the value of the third metric is below a third threshold, bin-packing by the hypervisor the first plurality of tasks and the second plurality of tasks into at least a first bin-pack, wherein the bin-packing is based on minimizing the number of processors that are to execute the first plurality of tasks and the second plurality of tasks; and

executing by the first processor the tasks in the first bin-pack,

wherein:

characteristics determined by a priority level of a task comprise: (i) where the task is placed within a queue to await execution; and (ii) how soon after being queued the task will be executed by one of the first processor and the second processor;

the queue comprises a boost-priority region; an under-priority region; an over-priority region; and an idle-priority region, in decreasing priority value;

a task with the over priority comprises a task that is queued within the over-priority region of the queue;

a task with an under priority comprises a task that is queued within the under-priority region of the queue.

16. The method of claim 15 further comprising:

receiving by the data-processing system a fourth metric that is based on the amount of time, during the earlier time interval, that was spent executing tasks of the first domain that had an under priority; and

when the value of the fourth metric is below a fourth threshold:

(i) scheduling exclusively to the first processor the tasks of the first domain, to be executed in the later time interval, and

(ii) scheduling the tasks of a second domain, to be executed in the later time interval, to a processor in the data-processing system that is exclusive of the first processor.

17. The method of claim 15 wherein the hypervisor comprises a credit-scheduler that performs the increasing.

18. The method of claim 15 wherein an application transmits at least one instruction to the hypervisor to perform the increasing, and wherein the application is separate from the hypervisor, and wherein the increasing is based on a weight that is generated by the application.

19. The method of claim 15 wherein the first domain is a time-sensitive domain.

20. The method of claim 15 wherein some of the first plurality of tasks are time-sensitive tasks.

21. The method of claim 15 further comprising:

when an event arrives that is associated with a task that is time-sensitive, assign a boost priority to the task, wherein the assigning is independent of the pre-existing priority of the task, and wherein the task is to be executed on the data-processing system in the later time interval in accordance with the boost priority.

Assignments (20)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2026
From: AVAYA LLC
To: PULSELINK SYSTEMS LLC
Reel/Frame 074909/0627 →
INTELLECTUAL PROPERTY PARTIAL RELEASE AND REASSIGNMENT Recorded Feb 4, 2026
From: WILMINGTON SAVINGS FUND SOCIETY, FSB
To: AVAYA LLC (F/K/A AVAYA INC.); AVAYA MANAGEMENT L.P.
Reel/Frame 074981/0940 →
INTELLECTUAL PROPERTY PARTIAL RELEASE AND REASSIGNMENT Recorded Feb 4, 2026
From: CITIBANK, N.A.
To: AVAYA LLC (F/K/A AVAYA INC.); AVAYA MANAGEMENT L.P.
Reel/Frame 074944/0573 →
(SECURITY INTEREST) GRANTOR'S NAME CHANGE Recorded Sep 21, 2023
From: AVAYA INC.
To: AVAYA LLC
Reel/Frame 065019/0231 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 53955/0436) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063705/0023 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 61087/0386) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063690/0359 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 045034/0001) Recorded May 18, 2023
From: GOLDMAN SACHS BANK USA., AS COLLATERAL AGENT
To: AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC. (FORMER NAME OF AVAYA CLOUD INC.); HYPERQUALITY, INC.; HYPERQUALITY II, LLC; CAAS TECHNOLOGIES, LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 063779/0622 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 4, 2023
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 063542/0662 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 3, 2023
From: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; KNOAHSOFT INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB [COLLATERAL AGENT]
Reel/Frame 063742/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 45124/FRAME 0026 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063457/0001 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 5, 2022
From: AVAYA INC.; INTELLISIST, INC.; AVAYA MANAGEMENT L.P.; AVAYA CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 061087/0386 →
SECURITY INTEREST Recorded Sep 25, 2020
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 053955/0436 →
SECURITY INTEREST Recorded Jan 23, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 045124/0026 →
SECURITY INTEREST Recorded Jan 10, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 045034/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 045012/0666 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 041576/0001 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS LLC (FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION); VPNET TECHNOLOGIES, INC.
Reel/Frame 044893/0531 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 029608/0256 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 044891/0801 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS CORPORATION; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041576/0001 →
SECURITY AGREEMENT Recorded Mar 13, 2013
From: AVAYA, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE
Reel/Frame 030083/0639 →
SECURITY AGREEMENT Recorded Jan 10, 2013
From: AVAYA, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 029608/0256 →
Continuity (4)
Continuation 12849921 · Aug 4, 2010
Provisional Application 61232542 · Aug 10, 2009
Provisional Application 61254019 · Oct 22, 2009
Related Publication 20120216207A1 · Aug 23, 2012