# Witherspoon thermal policy for PDM.
#
# Shut down a Witherspoon system if more than three POWER9 cores
# have a temperature greater than 115 degrees Celcius.


- name: core sensors
  description: >
    'Witherspoon has two POWER9 chips with 24 cores each.'
  class: group
  group: path
  members:
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core0_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core1_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core2_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core3_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core4_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core5_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core6_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core7_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core8_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core9_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core10_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core11_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core12_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core13_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core14_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core15_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core16_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core17_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core18_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core19_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core20_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core21_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core22_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p0_core23_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core0_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core1_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core2_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core3_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core4_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core5_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core6_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core7_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core8_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core9_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core10_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core11_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core12_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core13_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core14_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core15_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core16_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core17_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core18_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core19_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core20_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core21_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core22_temp
    - meta: SENSOR
      path: /xyz/openbmc_project/sensors/temperature/p1_core23_temp

- name: core temp
  description: >
    'Monitor the temperature of each core.'
  class: group
  group: property
  type: int64
  members:
    - interface: xyz.openbmc_project.Sensor.Value
      meta: TEMP
      property: Value

- name: watch core temps
  description: >
    'Trigger logic on core temp changes.'
  class: watch
  watch: property
  paths: core sensors
  properties: core temp
  callback: check temps

- name: check temps
  description: >
    'If this condition passes at least three cores are running
    too hot.  Shut the system down.'
  class: condition
  condition: count
  paths: core sensors
  properties: core temp
  callback: log and shutdown
  countop: '>='
  countbound: 3
  op: '>='
  bound: 115000
  oneshot: true

- name: log and shutdown
  description: >
    'Shut the system down and log an event.'
  class: callback
  callback: group
  members:
    - shutdown
    - create criticalhigh error
    - create shutdown error

- name: shutdown
  description: >
    'Shut down the system.'
  class: callback
  callback: method
  service: org.freedesktop.systemd1
  path: /org/freedesktop/systemd1
  interface: org.freedesktop.systemd1.Manager
  method: StartUnit
  args:
    - value: obmc-chassis-hard-poweroff@0.target
      type: string
    - value: replace
      type: string

- name: create criticalhigh error
  description: >
    'Create a CriticalHigh Error log.'
  class: callback
  callback: elog_with_metadata
  paths: core sensors
  properties: core temp
  error: xyz::openbmc_project::Sensor::Threshold::Error::CriticalHigh
  metadata: xyz::openbmc_project::Sensor::Threshold::CriticalHigh::SENSOR_DATA

- name: create shutdown error
  description: >
    'Create a SystemShutdown Error log.'
  class: callback
  callback: elog
  paths: core sensors
  properties: core temp
  error: xyz::openbmc_project::State::Shutdown::ThermalEvent::Error::Processor
