MECHANISM FOR SCHEDULING EXECUTION OF THREADS FOR FAIR RESOURCE ALLOCATION IN A MULTI-THREADED AND/OR MULTI-CORE PROCESSING SYSTEM
First Claim
1. A virtual-machine monitor, implemented as computer instructions encoded within a data-storage subcomponent of a physical computer system that includes one or more mass-storage devices, one or more electronic memories, and one or more physical processors, the virtual-machine monitor comprising:
- an interface component that schedules execution of virtual machines on logical processors that are each mapped to an execution thread executing on a physical-processor package, each physical-processor package supporting simultaneous execution of multiple execution threads; and
an accounting component that stores, in an electronic memory, indications of package seconds accumulated by each virtual machine during execution of the virtual machine within the execution environment provided by the physical computer system and virtual-machine monitor, package seconds corresponding to a relative portion of the total processing resources of a physical-processor package used by the virtual machine.
1 Assignment
0 Petitions
Accused Products
Abstract
A thread scheduling mechanism is provided that flexibly enforces performance isolation of multiple threads to alleviate the effect of anti-cooperative execution behavior with respect to a shared resource, for example, hoarding a cache or pipeline, using the hardware capabilities of simultaneous multi-threaded (SMT) or multi-core processors. Given a plurality of threads running on at least two processors in at least one functional processor group, the occurrence of a rescheduling condition indicating anti-cooperative execution behavior is sensed, and, if present, at least one of the threads is rescheduled such that the first and second threads no longer execute in the same functional processor group at the same time.
-
Citations
18 Claims
-
1. A virtual-machine monitor, implemented as computer instructions encoded within a data-storage subcomponent of a physical computer system that includes one or more mass-storage devices, one or more electronic memories, and one or more physical processors, the virtual-machine monitor comprising:
-
an interface component that schedules execution of virtual machines on logical processors that are each mapped to an execution thread executing on a physical-processor package, each physical-processor package supporting simultaneous execution of multiple execution threads; and an accounting component that stores, in an electronic memory, indications of package seconds accumulated by each virtual machine during execution of the virtual machine within the execution environment provided by the physical computer system and virtual-machine monitor, package seconds corresponding to a relative portion of the total processing resources of a physical-processor package used by the virtual machine. - View Dependent Claims (2, 3, 4)
-
-
5. A virtual-machine monitor, implemented as computer instructions encoded within a data-storage subcomponent of a physical computer system that includes one or more mass-storage devices, one or more electronic memories, and one or more physical processors, the virtual-machine monitor comprising:
-
an interface component that interfaces to hardware components of the computer system on behalf of the virtual-machine monitor and virtual machines and provides a virtual hardware interface to virtual machines; a scheduler component that schedules execution of virtual machines on logical processors that are each mapped to an execution thread executing on a physical-processor package, each physical-processor package supporting simultaneous execution of multiple execution threads; and an activity sensor within the scheduler component that continuously monitors execution performance and execution characteristics of the virtual machines to detect non-optimal mapping of logical processors to execution threads within physical-processor packages. - View Dependent Claims (6, 7, 8, 9, 10, 11)
-
-
12. A virtual-machine monitor, implemented as computer instructions encoded within a data-storage subcomponent of a physical computer system that includes one or more mass-storage devices, one or more electronic memories, and one or more physical processors, the virtual-machine monitor comprising:
-
an interface component that interfaces to hardware components of the computer system on behalf of the virtual-machine monitor and virtual machines and provides a virtual hardware interface to virtual machines; a scheduler component that schedules execution of virtual machines on logical processors that are each mapped to an execution thread executing on a physical-processor package, each physical-processor package supporting simultaneous execution of multiple execution threads; and an activity sensor within the scheduler component that continuously monitors relative execution performance and relative execution characteristics of the virtual machines to detect non-optimal mapping of logical processors to execution threads within physical-processor packages. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
Specification