tree aa28efd09d908cee935cdb23d964a3c64483fb56
parent bd815c7f79301fe3932093bfd799122879122680
author Aditya Kurdunkar <akurdunkar@nvidia.com> 1749596932 +0530
committer Ed Tanous <ed@tanous.net> 1752159682 +0000

gpu: add support for per EID request queuing

The Nvidia Extension of OCP MCTP VDM Protocol specifies that there
should be only one outstanding request message to a GPU Device
implementing the VDM protocol. This introduces a requirement for request
queuing per EID. This patch implements the same.

This patch renames the MctpRequester to Requester and introduces a new
QueuingRequester that composes on top of the Requester and introduces
per EID queuing. Each call to `sendRecvMsg` now enqueues the request
(instead of sending it immediately). If there is no ongoing request the
requester will send the request out right away. Otherwise the requester
waits for the ongoing request to finish before sending out the
previously enqueued request. This ensures the serialization of the
requests and makes sure that there is only one request "in flight" at a
time. For minimal/no client changes, QueuingRequester is type aliased to
MctpRequester.

Tested.

Build an image for gb200nvl-obmc machine with the following
patches cherry picked. This patches are needed to enable the mctp stack.

https://gerrit.openbmc.org/c/openbmc/openbmc/+/79422

Pick the following changes (in order) that enable multiple GPU sensors:

'''
https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/79970
https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/80031
https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/80078
https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/80099
https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/80566
https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/80567
'''

Check if all sensors are available on redfish.

'''
~ % curl -s -k -u 'root:0penBmc' https://10.137.203.137/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/
{
  "@odata.id": "/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors",
  "@odata.type": "#SensorCollection.SensorCollection",
  "Description": "Collection of Sensors for this Chassis",
  "Members": [
    {
      "@odata.id": "/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/energy_NVIDIA_GB200_GPU_0_Energy_0"
    },
    {
      "@odata.id": "/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/power_NVIDIA_GB200_GPU_0_Power_0"
    },
    {
      "@odata.id": "/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/temperature_NVIDIA_GB200_GPU_0_TEMP_0"
    },
    {
      "@odata.id": "/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/temperature_NVIDIA_GB200_GPU_0_TEMP_1"
    },
    {
      "@odata.id": "/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/voltage_NVIDIA_GB200_GPU_0_Voltage_0"
    }
  ],
  "Members@odata.count": 5,
  "Name": "Sensors"
}
'''

Check Individual Sensor Updates.

'''
curl -s -k -u 'root:0penBmc' https://10.137.203.245/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/temperature_NVIDIA_GB200_GPU_0_TEMP_0
{
  "@odata.id": "/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/temperature_NVIDIA_GB200_GPU_0_TEMP_0",
  "@odata.type": "#Sensor.v1_2_0.Sensor",
  "Id": "temperature_NVIDIA_GB200_GPU_0_TEMP_0",
  "Name": "NVIDIA GB200 GPU 0 TEMP 0",
  "Reading": 27.71875,
  "ReadingRangeMax": 127.0,
  "ReadingRangeMin": -128.0,
  "ReadingType": "Temperature",
  "ReadingUnits": "Cel",
  "Status": {
    "Health": "OK",
    "State": "Enabled"
  }
}

curl -s -k -u 'root:0penBmc' https://10.137.203.245/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/temperature_NVIDIA_GB200_GPU_0_TEMP_1
{
  "@odata.id": "/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/temperature_NVIDIA_GB200_GPU_0_TEMP_1",
  "@odata.type": "#Sensor.v1_2_0.Sensor",
  "Id": "temperature_NVIDIA_GB200_GPU_0_TEMP_1",
  "Name": "NVIDIA GB200 GPU 0 TEMP 1",
  "Reading": 57.28125,
  "ReadingRangeMax": 127.0,
  "ReadingRangeMin": -128.0,
  "ReadingType": "Temperature",
  "ReadingUnits": "Cel",
  "Status": {
    "Health": "OK",
    "State": "Enabled"
  }
}

curl -s -k -u 'root:0penBmc' https://10.137.203.245/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/power_NVIDIA_GB200_GPU_0_Power_0
{
  "@odata.id": "/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/power_NVIDIA_GB200_GPU_0_Power_0",
  "@odata.type": "#Sensor.v1_2_0.Sensor",
  "Id": "power_NVIDIA_GB200_GPU_0_Power_0",
  "Name": "NVIDIA GB200 GPU 0 Power 0",
  "Reading": 27.468,
  "ReadingRangeMax": 4294967.295,
  "ReadingRangeMin": 0.0,
  "ReadingType": "Power",
  "ReadingUnits": "W",
  "Status": {
    "Health": "OK",
    "State": "Enabled"
  }
}

curl -s -k -u 'root:0penBmc' https://10.137.203.245/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/energy_NVIDIA_GB200_GPU_0_Energy_0
{
  "@odata.id": "/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/energy_NVIDIA_GB200_GPU_0_Energy_0",
  "@odata.type": "#Sensor.v1_2_0.Sensor",
  "Id": "energy_NVIDIA_GB200_GPU_0_Energy_0",
  "Name": "NVIDIA GB200 GPU 0 Energy 0",
  "Reading": 45058.545,
  "ReadingRangeMax": 1.8446744073709552e+16,
  "ReadingRangeMin": 0.0,
  "ReadingType": "EnergyJoules",
  "ReadingUnits": "J",
  "Status": {
    "Health": "OK",
    "State": "Enabled"
  }
}

curl -s -k -u 'root:0penBmc' https://10.137.203.245/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/voltage_NVIDIA_GB200_GPU_0_Voltage_0
{
  "@odata.id": "/redfish/v1/Chassis/NVIDIA_GB200_1/Sensors/voltage_NVIDIA_GB200_GPU_0_Voltage_0",
  "@odata.type": "#Sensor.v1_2_0.Sensor",
  "Id": "voltage_NVIDIA_GB200_GPU_0_Voltage_0",
  "Name": "NVIDIA GB200 GPU 0 Voltage 0",
  "Reading": 0.735,
  "ReadingRangeMax": 4294.967295,
  "ReadingRangeMin": 0.0,
  "ReadingType": "Voltage",
  "ReadingUnits": "V",
  "Status": {
    "Health": "OK",
    "State": "Enabled"
  }
}
'''

Change-Id: Ic3b892ef2c76c4c703aa55f5b2a66c22a5d71bdf
Signed-off-by: Aditya Kurdunkar <akurdunkar@nvidia.com>
