OCP_2_6_Group_7
DSSD_26_Thermal_Shutdown_Test_Case.py
- This script will run the following tests:
Precondition the drive twice with 128KiB sequential writes followed by 4KiB random writes
Verify CCTEMP is set to 85 degrees Celsius
Issue two asynchronous event requests
Have the user set the thermal chamber temperature to the maximum operating temperature as indicated in the adaptation data
Start running 128KiB sequential writes
Have the user increase the thermal chamber temperature by 1C/minute until it reaches WCTEMP+1
Verify asynchronous event notification details
Issue GetLogPage for LID 2h and verify the composite temperature is within WCTEMP+2
Issue GetLogPage for LID C0h and verify the throttling status reports the device is in a throttling state
Have the user increase the thermal chamber temperature by 1C/minute until it reaches CCTEMP
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
Stop I/O
Have the user set the thermal chamber temperature to 25 degrees Celsius and allow it to cool down
Power the cycle the device
Verify Identify Controller is successful
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.5 requirements referenced by this script:
THRMS-1/2/3, 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_26_Thermal_Throttling_Test_Case.py
- This script will run the following tests:
Issue IdentifyController and verify WCTEMP and CCTEMP values
Issue AERs
Have the user set the oven temperature to 25 degrees Celsius
Issue GetLogPage for LID C0h and check thermal throttling status and count values
Perform 128KB sequential writes
Have the user increase the oven temperature 1 degree Celsius per minute
Issue GetLogPage for LID 2h and get composite temperature
Issue GetLogPage for LID C0h and check thermal throttling status and count values
Repeat steps 7-8 until composite temperature reaches 75 degrees Celsius
Have the user reduce oven temperature to 25 degrees Celsius
Have the user increase oven temperature to 76 degrees Celsius
Record composite temperature and thermal throttling status and count values
Verify device isn’t in a throttled state
Repeat steps 11-12 until composite temperature reaches 76 degrees Celsius
Have the user increase the oven temperature to 77 degrees Celsius
Verify AER completed successfully
Issue GetLogPage for LID 2h and verify critical warning bit 1 is set to 1
Check thermal throttling status and count values
Verify performance is reduced due to thermal throttling being active
Have the user reduce oven temperature to 70 degrees Celsius
Verify AER completed successfully
Issue GetLogPage for LID 2h and verify critical warning bit 1 is cleared to 0
Have the user increase the oven temperature to 79 degrees Celsius
Issue GetLogPage for LID 2h and record composite temperature until it’s >= 77 degrees Celsius
Record warning composite temperature time and wait 5 minutes
Record composite temperature and verify it’s 77-85 degrees Celsius
Verify warning composite temperature time has increased by 5
Have the user reduce oven temperature to 25 degrees Celsius
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.6 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