PROVIDING LOGICAL PARTITIONS WITH HARDWARE-THREAD SPECIFIC INFORMATION REFLECTIVE OF EXCLUSIVE USE OF A PROCESSOR CORE
First Claim
1. A method of providing hardware thread-specific information in a multi-threaded processor supporting a number of hardware threads for executing processes within multiple logical partitions, the method comprising:
- maintaining the hardware thread specific information in an internal register circuit within the multi-threaded processor;
detecting access to the hardware thread-specific information by a currently-executing one of the processes;
determining whether or not a privilege level of the currently-executing process indicates that the currently-executing process is a process within a given one of the multiple logical partitions; and
responsive to determining that the privilege level of the currently-executing process indicates that the currently-executing process is a process within a given one of the multiple logical partitions, selectively transforming the hardware thread-specific information to generate a transformed register value that indicates exclusive use of the multi-threaded processor by hardware threads executed for processes of the given logical partition, while masking hardware-thread specific information present in the internal register circuit corresponding to one or more hardware threads of the multi-threaded processor that are assigned to execute processes of another logical partition other than the given logical partition, and responding to the access with the transformed register value.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for simulating exclusive use of a processor core amongst multiple logical partitions (LPARs) include providing hardware thread-dependent status information in response to access requests by the LPARs that is reflective of exclusive use of the processor by the LPAR accessing the hardware thread-dependent information. The information returned in response to the access requests is transformed if the requestor is a program executing at a privilege level lower than the hypervisor privilege level, so that each logical partition views the processor as though it has exclusive use of the processor. The techniques may be implemented by a logical circuit block within the processor core that transforms the hardware thread-specific information to a logical representation of the hardware thread-specific information or the transformation may be performed by program instructions of an interrupt handler that traps access to the physical register containing the information.
57 Citations
22 Claims
-
1. A method of providing hardware thread-specific information in a multi-threaded processor supporting a number of hardware threads for executing processes within multiple logical partitions, the method comprising:
-
maintaining the hardware thread specific information in an internal register circuit within the multi-threaded processor; detecting access to the hardware thread-specific information by a currently-executing one of the processes; determining whether or not a privilege level of the currently-executing process indicates that the currently-executing process is a process within a given one of the multiple logical partitions; and responsive to determining that the privilege level of the currently-executing process indicates that the currently-executing process is a process within a given one of the multiple logical partitions, selectively transforming the hardware thread-specific information to generate a transformed register value that indicates exclusive use of the multi-threaded processor by hardware threads executed for processes of the given logical partition, while masking hardware-thread specific information present in the internal register circuit corresponding to one or more hardware threads of the multi-threaded processor that are assigned to execute processes of another logical partition other than the given logical partition, and responding to the access with the transformed register value. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A multi-threaded processor core, comprising:
-
one or more execution units for executing instructions of multiple hardware threads; an instruction fetch unit for fetching the instructions of the multiple hardware threads; an instruction dispatch unit for dispatching the instructions of the multiple hardware threads to the execution units; a first register circuit containing hardware thread-specific information; a logic circuit for determining whether or not a privilege level of a process accessing the first register circuit indicates that the process has full access to the thread-specific information contained in the first register circuit, and responsive to determining that process does not have full access to the thread-specific information, selectively transforming the hardware thread-specific information to a logical representation of the hardware thread-specific information to reflect exclusive use of the multi-threaded processor core by hardware threads executed for processes of a given logical partition executed by the multi-threaded processor core to generate a transformed register value, while masking hardware-thread specific information present in the first register circuit corresponding to one or more hardware threads of the multi-threaded processor core that are assigned to execute processes of another logical partition other than the given logical partition, and presenting the transformed register value in response to the access. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A computer system comprising:
-
a memory for storing program instructions and data values; and a multi-threaded processor coupled to the memory for executing the program instructions, wherein the multi-threaded processor comprises one or more execution units for executing instructions of multiple hardware threads, an instruction fetch unit for fetching the instructions of the multiple hardware threads, an instruction dispatch unit for dispatching the instructions of the multiple hardware threads to the execution units, a first register circuit containing hardware thread-specific information, and a logic circuit for determining whether or not a privilege level of a process accessing the first register circuit indicates that the process has full access to the thread-specific information contained in the first register circuit, and responsive to determining that process does not have full access to the thread-specific information, selectively transforming the hardware thread-specific information to a logical representation of the hardware thread-specific information to reflect exclusive use of the multi-threaded processor by hardware threads executed for processes of a given logical partition executed by the multi-threaded processor to generate a transformed register value, while masking hardware-thread specific information present in the first register circuit corresponding to one or more hardware threads of the multi-threaded processor that are assigned to execute processes of another logical partition other than the given logical partition, and responding to the access with the transformed register value. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A computer program product comprising a computer-readable storage medium storing program instructions for execution by a computer system, wherein the program instructions are program instructions of a hypervisor for managing multiple logical partitions executing within a processor core, wherein the program instructions comprise:
-
program instructions of an interrupt handler to, responsive to a trap interrupt generated upon access to an internal register circuit of a processor integrated circuit that contains hardware-thread specific information, transform the hardware thread-specific information in the internal register circuit to reflect an exclusive use of the processor core by a given logical partition by generating a logical register value that is different than an actual value in the internal register circuit; and program instructions of the interrupt handler to replace a return value for the access to the internal register circuit containing hardware thread-specific information with the logical register value. - View Dependent Claims (18, 19)
-
-
20. A computer system comprising:
-
a memory for storing program instructions and data values; and a processor coupled to the memory for executing the program instructions, wherein the program instructions are program instructions of a hypervisor for managing multiple logical partitions executing within the processor, wherein the program instructions comprise program instructions of an interrupt handler to, responsive to a trap interrupt generated upon access to a internal register circuit of the processor that contains hardware-thread specific information, selectively transform the hardware thread-specific information in the internal register circuit to reflect an exclusive use of the processor core by a given logical partition by generating a logical register value that is different than an actual value in the internal register circuit, and program instructions of the interrupt handler to replace a return value for the access to the internal register circuit containing the hardware thread-specific information with the logical register value. - View Dependent Claims (21, 22)
-
Specification