IBM Support

Power 8 - SMT2, SMT4, SMT8 Information

Technote (troubleshooting)


How to determine what processor core the server is using as well as additional information.


How to determine SMT setting


Power 8

Resolving the problem

On a Power8 server with v7r1 defaults to SMT4 and with v7r2 defaults to SMT8


The API can be used to set the maximum number of secondary threads per processor to be used by the OS.
The default value is "0", which allows the system to determine the maximum. This can be be overriden with
another value, such as '1' (SMT2), '3' (SMT 4), or '7' (SMT 8).

When the value is '0', IBM i uses SMT2 for P5 / P6, SMT4 for P7, SMT4 for P8 in v7r1, and SMT8 for P8 in v7r2.

Excerpt from IBM i and Power8 article:

Processor maximum SMT level when processor multitasking is enabled, switching among the thread contexts available
for the partition IPL can be accomplished using the change processor multitasking information API, QWCCHGPR.

The QWCCHGPR API changes are effective immediately and persist across a partition IPL.

The QWCCHGPR API takes a single parameter, the maximum number of secondary threads per processor:

0 -- No maximum is selected. The system uses the default number of secondary threads as determined by the operating system.

1-255 -- The system might use up to the number of secondary threads specified.

The QWCCHGPR API might be called from a command line.

** NOTE ** Setting the maximum number of secondary threads does not establish the processor threading context directly. The maximum value will be accepted regardless of the processor threading contexts supported by the underlying hardware and the operating system will apply the configured maximum to the system.

On a Power8 processor-based system, if a maximum value is specified by the QWCCHGPR API, the operating system tries to establish the maximum thread context supported and subject to the maximum specified by the QWCCHGPR API. In other words, if the QWCCHGPR API sets the maximum number of secondary threads to a value that is not supported by the hardware, the operating system sets the thread context to the maximum supported by the hardware that meets the specified value.


CALL QWCCHGPR 7 changes to SMT 8

CALL PGM(QWCCHGPR) PARM(X'00000000') /* No maximum */
CALL PGM(QWCCHGPR) PARM(X'00000001') /* SMT2 context */
CALL PGM(QWCCHGPR) PARM(X'00000002') /* SMT2 context */
CALL PGM(QWCCHGPR) PARM(X'00000003') /* SMT4 context */
CALL PGM(QWCCHGPR) PARM(X'00000004') /* SMT4 context */
CALL PGM(QWCCHGPR) PARM(X'00000007') /* SMT8 context */
CALL PGM(QWCCHGPR) PARM(X'000000FF') /* SMT8 context */

The maximum number of secondary threads can be obtained from the retrieve processor multitasking information API (QWCRRTVPR). Note that the value returned is the maximum number of secondary threads configured.

To check the current setting, need to write a program .. reference:

Cross reference information
Segment Product Component Platform Version Edition
Operating System IBM i 7.2
Operating System IBM i 7.1

Document information

More support for: IBM i

Software version: 7.1, 7.1.0, 7.2, 7.2.0

Operating system(s): IBM i

Software edition: Standard

Reference #: N1020695

Modified date: 31 March 2016

Translate this page: