IP Library Granted Patent US 8,918,788
Granted Patent B2
US 8,918,788 · App. 12/947,067 · Granted Dec 23, 2014

Scheduling virtual CPU based on priority calculated using time statistics

Inventor: Vladimir Grouzdev (Paris, FR)
Assignee: Virtuallogix SA
G06F9/5077G06F9/524G06F9/4881
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,918,788
App. No.
12/947,067
Granted
Dec 23, 2014
Kind
B2
Abstract

The present invention provides a scheduling method for a data processing system comprising at least one physical CPU, and one or more virtual machines each assigned to one or more virtual CPUs, the method comprising: a first scheduling step in which one of said virtual machines is elected to run on said physical CPU; and a second scheduling step in which at least one of the virtual CPUs assigned to the elected virtual machine is elected to run on said physical CPU. The second scheduling step is applied to the virtual machine only. When a virtual machine instance is elected to run on a given CPU, the second level scheduling determines the virtual CPU instance to run. The second level scheduling is global and can cause a virtual CPU migration from one physical CPU to another. In order to ensure correct task scheduling at guest level, virtually equivalent (in terms of calculation power) virtual CPUs should be provided to the scheduler. This is achieved by the second level scheduler using a virtual CPU election criteria based on time statistics.

Claims (26)

1. A scheduling method for a data processing system comprising at least one physical CPU, and one or more virtual machines each assigned to one or more virtual CPUs, the method comprising:

assigning a scheduling priority P to each of said virtual CPUs in accordance with a waiting time Tw associated with each of said virtual CPUs, wherein said waiting time Tw reflects the time for transition from ready to running state and the selection of at least one of said virtual CPUs is performed based on the scheduling priority P;

a first scheduling step in which one of said virtual machines is elected to run on said physical CPU;

a second scheduling step in which at least one of the virtual CPUs assigned to the elected virtual machine is elected to run on said physical CPU, wherein the second scheduling step is performed on said physical CPU, and wherein the election is performed based on the scheduling priority P and wherein said second scheduling step comprises selecting said at least one of said virtual CPUs based on a waiting time Tw associated with each of said virtual CPUs, wherein said waiting time reflects the time for transition from ready to running state; and

selecting the virtual CPU associated with the highest scheduling priority P calculated in accordance with the following formula:

P=Tw+Bm+Bl

wherein

Bm=predetermined interrupt masking bonus

Bl=predetermined locality bonus.

2. The method of claim 1 , wherein Bm is determined to promote virtual CPUs with masked interrupts for selection in the second scheduling step.

3. The method of claim 1 , wherein Bl is determined to promote local virtual CPUs already selected to run on said physical CPU.

4. Data processing system, comprising:

at least one physical CPU;

one or more virtual machines each assigned to one or more virtual CPUs; and

a scheduler comprising:

a first scheduler for electing one of said virtual machines to run on said physical CPU; and

a second scheduler for electing at least one of the virtual CPUs assigned to the elected virtual machine to run on said physical CPU;

wherein the second scheduler is adapted to perform a scheduling operation on said physical CPU, the scheduling operation comprising selecting said at least one of said virtual CPUs based on a waiting time Tw associated with each of said virtual CPUs, wherein said waiting time reflects the time for transition from ready to running state;

wherein said data processing system is adapted to assign a scheduling priority P to each of said virtual CPUs in accordance with the waiting time Tw associated with each of said virtual CPUs, and to perform the selection of said at least one of said virtual CPUs based on the scheduling priority P;

wherein said data processing system is adapted to select the virtual CPU associated with the highest scheduling priority P calculated in accordance with the following formula:

P=Tw+Bm+Bl

wherein

Bm=predetermined interrupt masking bonus

Bl=predetermined locality bonus.

5. The data processing system of claim 4 , adapted to determine Bm to promote virtual CPUs with masked interrupts for selection in the second scheduling step.

6. The data processing system of claim 4 , adapted to determine Bl to promote local virtual CPUs already selected to run on said physical CPU.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Mar 4, 2015
From: MUSTANG MEZZANINE LP
To: RED BEND LTD.
Reel/Frame 035083/0471 →
SECURITY AGREEMENT Recorded Aug 22, 2012
From: RED BEND LTD.
To: MUSTANG MEZZANINE FUND LP
Reel/Frame 028831/0963 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2010
From: GROUZDEV, VLADIMIR
To: VIRTUALLOGIX SA
Reel/Frame 025369/0801 →
Priority Claims (1)
EP 09290869 · Nov 16, 2009 · regional
Continuity (1)
Related Publication 20110119422A1 · May 19, 2011