Browse Prior Art Database

Heuristic Real-Time Scheduling in Virtual Machine Monitor

IP.com Disclosure Number: IPCOM000222184D
Publication Date: 2012-Sep-24
Document File: 3 page(s) / 68K

Publishing Venue

The IP.com Prior Art Database

Abstract

This invention is to solve some scheduling issues in virtualization environment by guest providing heuristics to host scheduler, effectively implementing priority inheritance. For example, on each context switching when a new process is selected to run on a VCPU of guest, if it is a real-time process, the priority of the corresponding VCPU thread on host is updated too, to be the same priority of the new real-time process in guest.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

Page 01 of 3

Heuristic Real-Time Scheduling in Virtual Machine Monitor

In recent years, the rapid development of computer hardware technology, mainly multi-core and many-core CPU, memory density, and IO throughput, enables the thrive of virtualization, aka multiple guest operating systems run on a single physical machine. Virtual Machine Monitor (VMM), or Hypervisor, sits between physical machine and guest operating systems, presenting a virtual hardware interface to guest operating system, and multiplexing the physical resources.

However, the complexity of virtualization introduces additional challenges, and this disclosure focuses on CPU scheduling in a virtual machine system.

As we know, usually the total number of virtual CPUs is larger than the number of physical CPUs, i.e. over-committing, and the VMM scheduler maps virtual CPUs into physical CPUs in a time sharing manner, i.e. in the eyes of VMM scheduler, if we take it as a special operating system, virtual CPUs are just normal threads running on it. Actually, some VMMs are implemented this way.

Normally host(VMM) scheduler is specially designed to guarantee CPU share of individual guests, while guest (VM) scheduler is just traditional operating system scheduler. Guest scheduler is not aware of host scheduler, and host scheduler could be, but usually is not aware of guest scheduler either, due to complexity, as well as the fact that the behavior of some schedulers is not openly available.

Some problems emerge due to this independency of scheduling policy of host scheduler and guest scheduler. One common problem (applicable to almost all guest scheduler) is that, if we are running real-time (RT) process on VM-1's VCPU-1, and another non RT process on VM-1's VCPU-2, and because they are just normal threads on host, host scheduler might favor VCPU-2 thread in scheduling, especially when VCPU-1

1


Page 02 of 3

and VCPU-2 threads are competing for one physical CPU. This way, host scheduler is acting reversely against guest scheduler.

This would cause serious issue to guest, an obvious one is reversed priority.

There are a few prior art addressing similar problems. US 7,356,817, "Real-Time Scheduling of Virtual Machines" focuses mainly on integrated scheduling of all RT processes on VMM, based on "runtime requirement per time period". It does not address this priority issue actually.

Given the problem described in section 1, we propose to solve it by guest providing heuristics to host scheduler, effectively implementing priority inheritance, i.e. on each context switching when a new process is selected to run on a VCPU of guest, if it is a RT process, the priority of the corresponding VCPU thread on host is up...