[PATCH V2 0/2] nvme: dhchap_secret code cleanup
Chaitanya Kulkarni
kch at nvidia.com
Sun Jun 4 23:51:23 PDT 2023
Hi,
Refactor code to avoid duplication and improve maintainability:
Consolidate the shared code between the functions
nvme_ctrl_dhchap_secret_store() and
nvme_ctrl_dhchap_ctrl_secret_store(). This duplication not only
increases the likelihood of bugs but also requires additional effort for
maintenance and testing.
Introduce a new generic helper function called
nvme_dhchap_secret_store_common() to handle the storage of the
dhchap secret. This helper function will be used by both
nvme_ctrl_dhchap_secret_store() and
nvme_ctrl_dhchap_ctrl_secret_store().
Lastly create a macro to define dhchap attr to remove attribute code
duplication altogether for dhchap secret and dhchap ctrl secret.
Below are the blktests results.
Full disclosure checkpatch has following warning :-
WARNING: Symbolic permissions 'S_IRUGO | S_IWUSR' are not preferred. Consider using octal permissions '0644'.
#62: FILE: drivers/nvme/host/sysfs.c:485:
I purposly did not fix it in this series, I'll send out a separate
fix for that if there is no objection.
-ck
V2:- Merge patch 1/2. (Sagi)
Chaitanya Kulkarni (2):
nvme: add generic helper to store secret
nvme-core: use macro defination to define dev attr
drivers/nvme/host/sysfs.c | 145 +++++++++++++++-----------------------
1 file changed, 55 insertions(+), 90 deletions(-)
blktests (master) # ./check nvme
nvme/002 (create many subsystems and test discovery) [passed]
runtime ... 20.419s
nvme/003 (test if we're sending keep-alives to a discovery controller) [passed]
runtime 10.090s ... 10.111s
nvme/004 (test nvme and nvmet UUID NS descriptors) [passed]
runtime 1.156s ... 1.465s
nvme/005 (reset local loopback target) [passed]
runtime 1.221s ... 1.810s
nvme/006 (create an NVMeOF target with a block device-backed ns) [passed]
runtime 0.059s ... 0.058s
nvme/007 (create an NVMeOF target with a file-backed ns) [passed]
runtime 0.042s ... 0.034s
nvme/008 (create an NVMeOF host with a block device-backed ns) [passed]
runtime 1.171s ... 1.465s
nvme/009 (create an NVMeOF host with a file-backed ns) [passed]
runtime 1.143s ... 1.432s
nvme/010 (run data verification fio job on NVMeOF block device-backed ns) [passed]
runtime 102.360s ... 96.545s
nvme/011 (run data verification fio job on NVMeOF file-backed ns) [passed]
runtime 56.073s ... 68.359s
nvme/012 (run mkfs and data verification fio job on NVMeOF block device-backed ns) [passed]
runtime 83.236s ... 84.890s
nvme/013 (run mkfs and data verification fio job on NVMeOF file-backed ns) [passed]
runtime 66.492s ... 70.922s
nvme/014 (flush a NVMeOF block device-backed ns) [passed]
runtime 3.964s ... 4.239s
nvme/015 (unit test for NVMe flush for file backed ns) [passed]
runtime 3.507s ... 3.763s
nvme/016 (create/delete many NVMeOF block device-backed ns and test discovery) [passed]
runtime ... 12.382s
nvme/017 (create/delete many file-ns and test discovery) [passed]
runtime ... 12.338s
nvme/018 (unit test NVMe-oF out of range access on a file backend) [passed]
runtime 1.117s ... 1.440s
nvme/019 (test NVMe DSM Discard command on NVMeOF block-device ns) [passed]
runtime 1.128s ... 1.451s
nvme/020 (test NVMe DSM Discard command on NVMeOF file-backed ns) [passed]
runtime 1.125s ... 1.430s
nvme/021 (test NVMe list command on NVMeOF file-backed ns) [passed]
runtime 1.125s ... 1.434s
nvme/022 (test NVMe reset command on NVMeOF file-backed ns) [passed]
runtime 1.171s ... 1.756s
nvme/023 (test NVMe smart-log command on NVMeOF block-device ns) [passed]
runtime 1.150s ... 1.449s
nvme/024 (test NVMe smart-log command on NVMeOF file-backed ns) [passed]
runtime 1.134s ... 1.414s
nvme/025 (test NVMe effects-log command on NVMeOF file-backed ns) [passed]
runtime 1.122s ... 1.431s
nvme/026 (test NVMe ns-descs command on NVMeOF file-backed ns) [passed]
runtime 1.126s ... 1.435s
nvme/027 (test NVMe ns-rescan command on NVMeOF file-backed ns) [passed]
runtime 1.131s ... 1.438s
nvme/028 (test NVMe list-subsys command on NVMeOF file-backed ns) [passed]
runtime 1.127s ... 1.433s
nvme/029 (test userspace IO via nvme-cli read/write interface) [passed]
runtime 1.262s ... 1.579s
nvme/030 (ensure the discovery generation counter is updated appropriately) [passed]
runtime 0.140s ... 0.211s
nvme/031 (test deletion of NVMeOF controllers immediately after setup) [passed]
runtime 0.894s ... 3.968s
nvme/038 (test deletion of NVMeOF subsystem without enabling) [passed]
runtime 0.015s ... 0.013s
nvme/040 (test nvme fabrics controller reset/disconnect operation during I/O) [passed]
runtime 7.171s ... 7.909s
nvme/041 (Create authenticated connections) [passed]
runtime 0.460s ... 0.741s
nvme/042 (Test dhchap key types for authenticated connections) [passed]
runtime 2.891s ... 4.897s
nvme/043 (Test hash and DH group variations for authenticated connections) [passed]
runtime 0.724s ... 3.126s
nvme/044 (Test bi-directional authentication) [passed]
runtime 1.241s ... 1.854s
nvme/045 (Test re-authentication) [passed]
runtime 3.804s ... 4.087s
nvme/047 (test different queue types for fabric transports) [not run]
runtime 1.849s ...
nvme_trtype=loop is not supported in this test
nvme/048 (Test queue count changes on reconnect) [not run]
runtime 6.254s ...
nvme_trtype=loop is not supported in this test
--
2.40.0
More information about the Linux-nvme
mailing list