OCP_2_0_Group_6
DSSD_20_Idle_Power_Verification_Test_Case.py
- This script will run the following tests:
Loop over power states from 0 to NPSS
Verify IDLP multiplied by IPS = 5W
Set power state to the current power state in the loop and verify it was set correctly
Collect 30 idle power measurements at 1 second intervals
Compute average idle power of the measurements and verify it’s <= 5W + 5% margin
Repeat steps 2-5 for each operational power state
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
PWR-1/6
DSSD_20_Maximum_Average_Power_Verification_Test_Case.py
- This script will run the following tests:
Precondition the namespace twice with 128KiB sequential writes and 4KiB Random Writes
Loop over power states from 0 to NPSS
Loop over the I/O Profile
Collect sample power consumption at a 2ms sampling rate
Compute average maximum power consumption
Verify it’s <= Maximum Power for the power state for any continuous 1s (250000 samples)
Repeat after step 3 with each I/O Profile
Repeat after step 2 with each power state
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
PCM-1, PWR-1/3, FFM2-14
- execute_io_profile(dut, test_type, io_profile, io_runtime=-1, io_pattern=1)
- Executes each of the IO Profiles listed in Table 4
Sequential Read (MiB/s) (128kiB, QD = 128)
Sequential Write (MiB/s) (128kiB, QD = 128)
Random Read (KIOPS) (4kiB, QD = 128)
Random Writes (KIOPS) (4kiB, QD = 128)
Random 70R:30W mix (KIOPS) (4kiB, QD = 128)
- Parameters:
dut (XML_API) – Device object under test
test_type (str) – Either ‘Sequential’ | ‘Random’
io_profile (str) – IO Profile to be executed
io_runtime (int) – Time in seconds for IO to execute
io_pattern (int) – Pattern for io to be executed
- Return type:
dict
DSSD_20_Peak_Power_Verification_Test_Case.py
- This script will run the following tests:
Precondition the namespace twice with 128KiB sequential writes and 4KiB Random Writes
Loop over power states from 0 to NPSS
Loop over the I/O Profile
Collect sample power consumption at a 4us sampling rate
Add every 500th (2ms sampling rate) peak power sample to create a running maximum average power value.
Collect the first 500 samples at 2ms to compute the first Maximum Average Power value
7. Verify the maximum average power value with 25W, and then verify that the current peak power sample with the running maximum average power measurement. 8. Compute the maximum average power consumption for any continuous 25 sample/100us window 9. Verify the maximum average power value with 25W, and then verify the peak power samples with the computed maximum average power value. 10. Repeat after step 3 with each I/O Profile 11. Repeat after step 2 with each power state
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
PCM-2/3, PWR-1/3, FFM2-14
- execute_io_profile(dut, test_type, io_profile, io_runtime=0, io_pattern=1)
- Executes each of the IO Profiles listed in Table 4
Sequential Read (MiB/s) (128kiB, QD = 128)
Sequential Write (MiB/s) (128kiB, QD = 128)
Random Read (KIOPS) (4kiB, QD = 128)
Random Writes (KIOPS) (4kiB, QD = 128)
Random 70R:30W mix (KIOPS) (4kiB, QD = 128)
- Parameters:
dut (XML_API) – Device object under test
test_type (str) – Either ‘Sequential’ | ‘Random’
io_profile (str) – IO Profile to be executed
io_runtime (int) – Time in seconds for IO to execute (Default 0 = Unlimited)
io_pattern (int) – Pattern for io to be executed
- Return type:
dict
DSSD_20_Power_Management_Feature_Test_Case.py
- This script will run the following tests:
Do SetFeaturesSaves with FID=2h to set power state to the current power state in the loop
Do GetFeatures and verify saved and current feature value is the power state that was set previously
Power cycle the drive
Repeat previous steps for each operational power state
Do SetFeaturesSaves with FID=7h to set DSSD power state to the current power state in the loop
Do GetFeatures and verify current feature value is the power state that was set previously
Power cycle the drive
Repeat previous steps for each operational power state
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.0 requirements referenced by this script:
PWR-1/5, DSSDPSS-1/2/3, SDSSDPS-1 to SDSSDPS-15, DSSDPSG-1/2, GDSSDPS-1/2
- get_current_ps(dut)
Gets the current power state
- Parameters:
dut (XML_API) – Device object under test
- Returns:
ps – Current Power State
- Return type:
int
- postcondition(dut, ps)
Sets the current power state back to the default value
- Parameters:
dut (XML_API) – Device object under test
ps (int) – Power State to set device to
- Return type:
None