Proximity mapping of virtual-machine threads to processors
AssigneeHewlett-Packard Development Company, L.P.
InventorScott Rhine
Life of this patent
Estimating the term…
Abstract
Virtual machine threads are mapped to virtual processors. Groups of virtual processors are formed. The number of virtual processors in each group is selected to match a number of unassigned physical processors in a proximity. The virtual processors of each group are selected so that the total estimated interactivity for the group is significantly above average for groups having the same number of those virtual processors.
Claims17
A method of assigning virtual-machine threads to physical processors arranged in plural proximities such that inter-processor communications between processors in different proximities are over a common bus, while inter-processor communications between processors within the same proximity are over a bus local to that proximity, said method comprising:
- mapping virtual-machine threads to virtual processors such that each virtual-machine thread is mapped to one virtual processor at any given time;
- forming, in response to the mapping of virtual-machine threads, virtual-processor groups of said virtual processors, said virtual-processor groups being formed such that each virtual-processor group has a number of virtual processors that matches a number of unassigned physical processors of a respective proximity, said virtual-processor groups being formed by selecting virtual processors that provide a total estimated virtual-machine thread interactivity for the virtual-processor group that is greater than average virtual-machine thread interactivity for virtual-processor groups having the same number of said virtual processors, total estimated virtual-machine thread interactivity being based on the virtual-machine threads mapped to virtual processors of a virtual-processor group;
- and
- assigning each of said virtual-processor groups to respective ones of said proximities so that virtual processors of a virtual-processor group are mapped to physical processors of the respective proximity so that the virtual-machine threads assigned to virtual processors of a virtual-processor group execute on respective physical processors of the proximity to which the virtual-processor group is assigned.
A system comprising:
- physical processors arranged in plural proximities such that inter-processor communications between processors in different proximities are over a common bus, while inter-processor communications between processors within the same proximity are over a bus local to that proximity;
- a hypervisor and virtual machines, each of said virtual machines having a respective number of threads active at any given time;
- and
- said hypervisor:
- mapping virtual-machine threads to virtual processors such that each virtual-machine thread is mapped to one virtual processor at any given time;
- forming, in response to the mapping of virtual-machine threads, virtual-processor groups of said virtual processors, said virtual-processor groups being formed such that each virtual-processor group has a number of virtual processors that matches a number of unassigned physical processors of a respective proximity, said virtual-processor groups being formed by selecting virtual processors that provide a total estimated virtual-machine thread interactivity for the virtual-processor group that is greater than average virtual-machine thread interactivity for virtual-processor groups having the same number of said virtual processors, total estimated virtual-machine thread interactivity being based on the virtual-machine threads mapped to virtual processors of a virtual-processor group;
- and
- assigning each of said virtual-processor groups to respective ones of said proximities so that virtual processors of a virtual-processor group are mapped to physical processors of the respective proximity so that the virtual-machine threads assigned to virtual processors of a virtual-processor group execute on respective physical processors of the proximity to which the virtual-processor group is assigned.
A system comprising non-transitory computer-readable storage media encoded with code for assigning virtual-machine threads to physical processors arranged in plural proximities such that inter-processor communications between processors in different proximities are over a common bus, while inter-processor communications between processors within the same proximity are over a bus local to that proximity, said code providing for:
- mapping virtual-machine threads to virtual processors such that each virtual-machine thread is mapped to one virtual processor at any given time;
- forming, in response to the mapping of virtual-machine threads, virtual-processor groups of said virtual processors, said virtual-processor groups being formed such that each virtual-processor group has a number of virtual processors that matches a number of unassigned physical processors of a respective proximity, said virtual-processor groups being formed by selecting virtual processors that provide a total estimated virtual-machine thread interactivity for the virtual-processor group that is greater than average virtual-machine thread interactivity for virtual-processor groups having the same number of said virtual processors, total estimated virtual-machine thread interactivity being based on the virtual-machine threads mapped to virtual processors of a virtual-processor group;
- and
- assigning each of said virtual-processor groups to respective ones of said proximities so that virtual processors of a virtual-processor group are mapped to physical processors of the respective proximity so that the virtual-machine threads assigned to virtual processors of a virtual-processor group execute on respective physical processors of the proximity to which the virtual-processor group is assigned.
Dependencies are inferred from the claim text.