OCP_2_0_Group_7

DSSD_20_Thermal_Shutdown_Test_Case.py

This script will run the following tests:
  1. Precondition the drive twice with 128KiB sequential writes followed by 4KiB random writes

  2. Verify CCTEMP is set to 85 degrees Celsius

  3. Issue two asynchronous event requests

  4. Have the user set the thermal chamber temperature to the maximum operating temperature as indicated in the adaptation data

  5. Start running 128KiB sequential writes

  6. Have the user increase the thermal chamber temperature by 1C/minute until it reaches WCTEMP+1

  7. Verify asynchronous event notification details

  8. Issue GetLogPage for LID 2h and verify the composite temperature is within WCTEMP+2

  9. Issue GetLogPage for LID C0h and verify the throttling status reports the device is in a throttling state

  10. Have the user increase the thermal chamber temperature by 1C/minute until it reaches CCTEMP

  11. If drive hasn’t shutdown: i. Verify asynchronous event notification details ii. Issue GetLogPage for LID 2h and verify the composite temperature equals CCTEMP iii. Have the user increase the thermal chamber temperature by 1C/minute until it reaches the shutdown temperature as indicated in the adaptation data

  12. Stop I/O

  13. Have the user set the thermal chamber temperature to 25 degrees Celsius and allow it to cool down

  14. Power the cycle the device

  15. Verify Identify Controller is successful

  16. Perform sequential reads over the entire capacity of the drive and verify there’s no data corruption

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

THRMS-1, TTHROTTLE-1/4/8

wait_for_aen(dut, log_file, wait_time)

Verify asynchronous event request completed and has the correct info

Parameters:
  • dut (XML_API) – Device object under test

  • log_file (file) – /var/log/messages output

  • wait_time (int) – Maximum number of minutes to wait for an AEN

Returns:

aer_flag – 0 = AER was successful, 1 = AER failed

Return type:

int

DSSD_20_Thermal_Throttling_Test_Case.py

This script will run the following tests:
  1. Issue IdentifyController and verify WCTEMP and CCTEMP values

  2. Issue AERs

  3. Have the user set the oven temperature to 25 degrees Celsius

  4. Issue GetLogPage for LID C0h and check thermal throttling status and count values

  5. Perform 128KB sequential writes

  6. Have the user increase the oven temperature 1 degree Celsius per minute

  7. Issue GetLogPage for LID 2h and get composite temperature

  8. Issue GetLogPage for LID C0h and check thermal throttling status and count values

  9. Repeat steps 7-8 until composite temperature reaches 75 degrees Celsius

  10. Have the user reduce oven temperature to 25 degrees Celsius

  11. Have the user increase oven temperature to 76 degrees Celsius

  12. Record composite temperature and thermal throttling status and count values

  13. Verify device isn’t in a throttled state

  14. Repeat steps 11-12 until composite temperature reaches 76 degrees Celsius

  15. Have the user increase the oven temperature to 77 degrees Celsius

  16. Verify AER completed successfully

  17. Issue GetLogPage for LID 2h and verify critical warning bit 1 is set to 1

  18. Check thermal throttling status and count values

  19. Verify performance is reduced due to thermal throttling being active

  20. Have the user reduce oven temperature to 70 degrees Celsius

  21. Verify AER completed successfully

  22. Issue GetLogPage for LID 2h and verify critical warning bit 1 is cleared to 0

  23. Have the user increase the oven temperature to 79 degrees Celsius

  24. Issue GetLogPage for LID 2h and record composite temperature until it’s >= 77 degrees Celsius

  25. Record warning composite temperature time and wait 5 minutes

  26. Record composite temperature and verify it’s 77-85 degrees Celsius

  27. Verify warning composite temperature time has increased by 5

  28. Have the user reduce oven temperature to 25 degrees Celsius

  29. Stop I/O

NOTE: The user is required to run this script from the CLI as Yes/No questions will need to be answered

Pass/Fail: Script passes if all tests pass

Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:

TTHROTTLE-2/3/5/6/7/9/10/11, SMART-12

wait_for_aen(dut, log_file, wait_time)

Verify asynchronous event request completed and has the correct info

Parameters:
  • dut (XML_API) – Device object under test

  • log_file (file) – /var/log/messages output

Returns:

aer_flag – 0 = AER was successful, 1 = AER failed

Return type:

int