Repository navigation
Conversation
Identify remote NVMe controllers by their sysfs model when namespace-based discovery cannot classify them. Update the basic test description to reflect local disk filtering and capability-based counts. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Validation Results
|
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues are reported for the Linux NVMe discovery update that filters remote controllers without attached namespaces.
No open issues 🎉
What changed in this PR
Fixes local NVMe discovery on Linux by excluding remote controllers that have no attached namespaces and therefore do not appear in nvme list.
Changes:
- Adds a sysfs model lookup to identify remote controllers missed by namespace-based detection.
- Updates the basic test description to reflect remote-device filtering and capability-based namespace counts; assertions remain unchanged.
Suggested validation:
Key Test Cases:
verify_nvme_basic
Impacted LISA Features:
Nvme
Tested Azure Marketplace Images:
- canonical 0001-com-ubuntu-server-jammy 22_04-lts-arm64 latest
| File | Description |
|---|---|
| lisa/microsoft/testsuites/nvme/nvme.py | Updates test metadata wording to describe existing validation accurately. |
| lisa/features/nvme.py | Adds Linux sysfs model detection for namespace-free remote controllers. |
Review effort: Balanced
AI Test Case SelectionSelected 9 test case(s): verify_nvme_basic,verify_nvme_max_disk,verify_nvme_function,verify_nvme_function_unpartitioned,verify_nvme_fstrim,verify_nvme_blkdiscard,verify_nvme_manage_ns,verify_nvme_rescind,verify_nvme_sriov_rescind Marketplace image: Result: Succeeded |
|
Run tests with Dpv7 and Dv6 sizes with AzLinux and Canonical images. |
verify_nvme_basic |
Read all controller models in one remote command only when Linux discovery contains controller paths. Avoid per-controller SSH commands and skip sysfs reads for namespace-only lists. Preserve existing remote disk filtering and legacy fallback behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Addressed the bulk sysfs model-read feedback in 621e598. Linux controller discovery now reads all controller models in one remote command per invocation; namespace-only lists do not trigger a sysfs read. Nine isolated simulated checks verify command counts, filtering, platform gating, legacy fallback and error propagation. Black, flake8, pylint and focused mypy passed. No new live Azure validation was run for this follow-up. |
There was a problem hiding this comment.
🟡 Changes recommended
The NVMe discovery assertion omits the failed controller path, command output, and model-file permission guidance, leaving missing or unreadable model files with an unhelpful generic failure.
1 open issue
Review effort: Balanced
AI Test Case SelectionSelected 9 test case(s): verify_nvme_basic,verify_nvme_max_disk,verify_nvme_function,verify_nvme_function_unpartitioned,verify_nvme_fstrim,verify_nvme_blkdiscard,verify_nvme_manage_ns,verify_nvme_rescind,verify_nvme_sriov_rescind Marketplace image: Result: Succeeded |

Summary
Exclude remote NVMe controllers that have no attached namespaces from local NVMe discovery.
nvme listonly reports controllers with namespaces. Consequently, namespace-based model detection can miss an additionalMSFT NVMe Acceleratorcontroller and count it as a local device. This makesverify_nvme_basicfail its controller-to-namespace count check.Validation
verify_nvme_basictwice after the fix on the same VM; both runs passed.--ignore-missing-imports --follow-imports=silent. The default recursive check encountered missing dependency stubs and existing errors in imported modules.Key Test Cases:
verify_nvme_basic
Impacted LISA Features:
Nvme
Tested Azure Marketplace Images:
canonical 0001-com-ubuntu-server-jammy 22_04-lts-arm64 22.04.202610220