Global Config

Modify /virtualun/python_usr/python.conf to configure. Use any of the following sections:

Behavior

  • Skip Cleanup: prevent the cleanup of the NVMe device after the test is complete.

    [Behavior]
    Skip Cleanup = True
    

    Warning

    This might result in a drive in a strange state that will need to be recovered by the user.

  • Fail on Warning: treat a warning as a script failure. Useful when debugging.

    [Behavior]
    Fail on Warning = True
    

Hooks

Hook Configuration allows for the execution of scripts on test action.

  • On Error: run a script when a test error occurs.

    [Hooks]
    On Error = /path/to/script.sh
    

Timeouts

Specify a timeout value, in seconds, for NVMe commands. A timeout is the maximum amount of time the host will wait for a command to complete, before it is considered failed.

Timeouts can be specified for:

  • All NVMe Admin or I/O Command Set commands

  • Specific NVMe commands (e.g. FormatNVM, SetFeatures)

  • FID-specific (e.g. SetFeatures.0x1D)

These settings may be combined to create a custom timeout configuration.

If no timeout is specified, the values found in /sys/module/nvme_core/parameters are used (system default is 10s).

Timeouts are prioritized in the following order:

  1. FID-specific

  2. Command-specific

  3. Admin or I/O command set specific

Examples

Read receives a 15 second timeout, and Admin commands receive a 30 second timeout.

[Timeouts]
admin = 30
Read = 15

Same as previous example, but GetFeatures receives a 45 second timeout, taking precedence over the 30-second Admin timeout.

[Timeouts]
admin = 30
Read = 15
GetFeatures = 45

All other non-FID 02h GetFeatures calls receive a 45 second timeout, and Admin commands receive a 30 second timeout.

[Timeouts]
admin = 30
Read = 15
GetFeatures = 45
GetFeatures.0x02 = 90

Note

Command strings are case-sensitive. Use the exact casing shown here and in the sections below. (e.g. GetFeatures, not getfeatures or Get Features).

admin

Set a default timeout for all NVMe Admin Command Set commands.

See Supported NVMe Admin commands below for a list of NVMe Admin commands affected by this setting.

Example:

[Timeouts]
admin = 30

io

Set a default timeout for all NVMe I/O Command Set commands.

See Supported NVMe I/O commands below for a list of NVMe I/O commands affected by this setting.

Example:

[Timeouts]
io = 60

Command-Specific Overrides

Set a timeout for a specific NVMe command.

Note

Command-specific timeouts take precedence over admin and io settings. (e.g. Read = 15 takes precedence over io = 60), etc.

Supported NVMe Admin commands include:

  • GetFeatures

  • SetFeatures

  • GetLogPage

  • Identify

  • DirectiveReceive

  • DirectiveSend

  • IOManagementReceive

  • IOManagementSend

  • FormatNVM

  • FirmwareCommit

  • FirmwareDownload

  • SanitizeNVM

  • SecuritySend

  • SecurityReceive

  • NamespaceManagement

  • NamespaceAttachment

  • CreateCQ

  • CreateSQ

  • DeleteCQ

  • DeleteSQ

Supported NVMe I/O commands include:

  • Read

  • Write

  • WriteUncorrectable

  • WriteZeroes

  • DatasetManagement

  • Flush

Example:

[Timeouts]
Read = 15
Write = 20
WriteUncorrectable = 25
WriteZeroes = 30
DatasetManagement = 35
NamespaceManagement = 40
Flush = 45

Feature-Specific Overrides (Get / Set Features)

Set a timeout for a specific Feature Identifier on GetFeatures or SetFeatures. The key format is <Command>.<FID> where FID is the Feature Identifier in hexadecimal (with 0x prefix) or decimal.

Note

Feature-specific timeouts take precedence over any command-specific or category-wide timeout.

Example – give SetFeatures with FID=1Dh a longer 120 second timeout than other SetFeatures calls, which receive a 10 second timeout.

[Timeouts] SetFeatures = 10 SetFeatures.0x1D = 120

Extra Checks

  • Verify Max Lane Width: Check lane width at the start and end of a script, and before starting any workloads.

    Note

    Valid settings are ‘ignore’, ‘notify’, ‘warn’, ‘error’

    [Extra Checks]
    Verify Max Lane Width = notify
    
  • Verify Max Link Speed: Check link width at the start and end of a script, and before starting any workloads.

    Note

    Valid settings are ‘ignore’, ‘notify’, ‘warn’, ‘error’

    [Extra Checks]
    Verify Max Lane Width = notify
    

Fail on Warning

Error

Deprecated. Use Behavior: Fail on Warning instead.

Treat a warning as a script failure. Useful when debugging.

  • Enable - Valid settings are True and False

[Fail on Warning]
Enable = True

SPDM

  • Debug - Turn on extra debug logging for SPDM conformance scripts

    Valid settings are True and False