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;
a currently-executing one of the processes detecting access to the hardware thread-specific information;
control logic within the processor 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 the control logic within the processor 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 not having full access to the hardware thread-specific information, the control logic within the processor 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.
75 Citations
20 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; a currently-executing one of the processes detecting access to the hardware thread-specific information; control logic within the processor 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 the control logic within the processor 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 not having full access to the hardware thread-specific information, the control logic within the processor 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 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 that is not signal or propagating wave 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, wherein the hardware thread-specific information is a value dependent on a logical hardware thread number of a particular hardware thread assigned to the given logical partition and specified by the access to the internal register circuit, and wherein the program instructions of the interrupt handler that transform the hardware thread-specific information in the internal register circuit comprise program instructions for generating an actual hardware thread number from the logical hardware thread number, and retrieving the hardware thread-specific information for the particular hardware thread using the actual hardware thread number, and wherein the program instructions that replace the return value replace the return value with the retrieved hardware thread-specific information. - View Dependent Claims (18)
-
-
19. 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, respo trap interrupt generated upon access to a internal register circuit of the processor that contains hardware-thread specific information by a process not having full access to the 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, wherein the hardware thread-specific information is a value dependent on a logical hardware thread number of a particular hardware thread assigned to the given logical partition and specified by the access to the internal register circuit, and wherein the program instructions of the interrupt handler that transform the hardware thread-specific information in the internal register circuit comprise program instructions for generating an actual hardware thread number from the logical hardware thread number, and retrieving the hardware thread-specific information for the particular hardware thread using the actual hardware thread number, and wherein the program instructions that replace the return value replace the return value with the retrieved hardware thread-specific information. - View Dependent Claims (20)
-
Specification