Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ppc64_cpu @ Power9 - power mode changes #48

Open
Pitterling opened this issue Oct 26, 2020 · 7 comments
Open

ppc64_cpu @ Power9 - power mode changes #48

Pitterling opened this issue Oct 26, 2020 · 7 comments

Comments

@Pitterling
Copy link

Power modes @ Power9 have changed:

  • None
  • Static Power Saver Mode
  • Dynamic Performance Mode
  • Maximum Performance Mode

ppc64_cpu currently reports:

  • Dynamic, Favor Performance
  • None
  • Static
  • Dynamic, Favor Power
@tyreld
Copy link
Member

tyreld commented Dec 29, 2020

Is this documented somewhere? We've run across this before where the meaning of the mode values has been changed from what is architected in PAPR.

@Pitterling
Copy link
Author

Kindly refer to IBM’s EnergyScale documentation for this at https://www.ibm.com/downloads/cas/6GZMODN3.

@Pitterling
Copy link
Author

Any update here?

@tyreld
Copy link
Member

tyreld commented Jan 27, 2022

This is a little frustrating on our end. While the names are documented in each new processor power scale document its not really properly defined anywhere and now instead of expanding the reversed space of available bit fields to add new energy management name definitions we keep using the same 4 energy managment minor codes and changing the names with each processor iteration.

We use the H_GET_EM_PARAMS hypercall in the kernel to get the status codes for the platform, group, pool, partition where each of these is a 2 byte code.

Status Codes (bit offset within 2 byte field): Bits 0:5 Reserved (zero)

Bits 6:8 Energy Management major code:

  • 0b000: Non – floor modes:
  • Bits 9:15 Energy Management minor code:
    • 0x00: The energy management policy for this aggregation level is not specified.
    • 0x01: Maximum Performance (Energy Management enabled – performance may exceed nominal)
    • 0x02: Nominal Performance (Energy Management Disabled)
    • 0x03: Static Power Saving Mode
    • 0x04: Deterministic Performance (Energy Management enabled – consistent performance on a given work-
    • load independent of environmental factors and component variances)
    • 0x05 – 0x7F Reserved
  • 0b001: Dynamic Power Management:
    • Bits 9:15 Performance floor as a percentage of nominal (0% - 100%).
  • 0b010:0b111 Reserved

@tyreld
Copy link
Member

tyreld commented Jan 27, 2022

The existing interface is being replaced with Power 10. Here is the pull request for reference: #68

For previous processors that use the H_GET_EM_PARAMS call we will have to determine the processor type to map to the correct power mode names.

@Pitterling
Copy link
Author

https://github.com/pratiksampat/powerpc-utils/blob/H_GET_ENERGY_SCALE_INFO_v2/src/ppc64_cpu.c

is doing the same wrong mapping as this is just a copy of the current code ..

@Pitterling
Copy link
Author

@tyreld I try to tie the provided information - current coding and your comment above about P9

P8 - from coding

# 0x0001: "Dynamic, Favor Performance"
# 0x0002: "None"
# 0x0003: "Static"
# 0x00ff: "Dynamic, Favor Power"
# default: "Unknown"

P9 - from your information above

# 0x0001: "Maximum Performance"
# 0x0002: "Nominal Performance (None)"
# 0x0003: "Static Power Saving"
# 0x0004: "Dynamic Performance"
# default: "Unknown"

Is my understanding correct?
So the changes are actually the naming for 0x0001 -> Dynamic,Favor Performance --> Maximum Performance
and 0x00ff has been discarded, but 0x0004 has been added ?

Thx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants