[PATCHv2 0/5] nvme: fix initialization memleak

Chaitanya Kulkarni chaitanyak at nvidia.com
Tue Jun 4 18:09:05 PDT 2024


On 6/4/24 11:59, Keith Busch wrote:
> From: Keith Busch <kbusch at kernel.org>
>
> I ran more of the blktests on loop in addtion to pci, also did more
> error injection at various points around the early initialization to
> make sure the kmemleak really is gone.
>

blktests with nvme-loop and nvme-tcp are passing at my end..

for this series, looks good...

Reviewed-by: Chaitanya Kulkarni <kch at nvidia.com>

-ck

blktests (master) # ./check nvme
nvme/002 (tr=loop) (create many subsystems and test discovery) [passed]
     runtime    ...  31.884s
nvme/003 (tr=loop) (test if we're sending keep-alives to a discovery 
controller) [passed]
     runtime    ...  11.271s
nvme/004 (tr=loop) (test nvme and nvmet UUID NS descriptors) [passed]
     runtime    ...  0.753s
nvme/005 (tr=loop) (reset local loopback target) [passed]
     runtime    ...  1.294s
nvme/006 (tr=loop bd=device) (create an NVMeOF target) [passed]
     runtime    ...  0.093s
nvme/006 (tr=loop bd=file) (create an NVMeOF target) [passed]
     runtime    ...  0.069s
nvme/008 (tr=loop bd=device) (create an NVMeOF host) [passed]
     runtime    ...  0.752s
nvme/008 (tr=loop bd=file) (create an NVMeOF host) [passed]
     runtime    ...  0.738s
nvme/010 (tr=loop bd=device) (run data verification fio job) [passed]
     runtime    ...  57.317s
nvme/010 (tr=loop bd=file) (run data verification fio job) [passed]
     runtime    ...  95.979s
nvme/012 (tr=loop bd=device) (run mkfs and data verification fio) [passed]
     runtime    ...  59.469s
nvme/012 (tr=loop bd=file) (run mkfs and data verification fio) [passed]
     runtime    ...  100.458s
nvme/014 (tr=loop bd=device) (flush a command from host) [passed]
     runtime    ...  9.122s
nvme/014 (tr=loop bd=file) (flush a command from host) [passed]
     runtime    ...  7.001s
nvme/016 (tr=loop) (create/delete many NVMeOF block device-backed ns and 
test discovery) [passed]
     runtime    ...  20.169s
nvme/017 (tr=loop) (create/delete many file-ns and test discovery) [passed]
     runtime    ...  21.960s
nvme/018 (tr=loop) (unit test NVMe-oF out of range access on a file 
backend) [passed]
     runtime    ...  0.742s
nvme/019 (tr=loop bd=device) (test NVMe DSM Discard command) [passed]
     runtime    ...  0.754s
nvme/019 (tr=loop bd=file) (test NVMe DSM Discard command) [passed]
     runtime    ...  0.726s
nvme/021 (tr=loop bd=device) (test NVMe list command) [passed]
     runtime    ...  0.755s
nvme/021 (tr=loop bd=file) (test NVMe list command) [passed]
     runtime    ...  0.724s
nvme/022 (tr=loop bd=device) (test NVMe reset command) [passed]
     runtime    ...  1.317s
nvme/022 (tr=loop bd=file) (test NVMe reset command) [passed]
     runtime    ...  1.299s
nvme/023 (tr=loop bd=device) (test NVMe smart-log command) [passed]
     runtime    ...  0.751s
nvme/023 (tr=loop bd=file) (test NVMe smart-log command) [passed]
     runtime    ...  0.712s
nvme/025 (tr=loop bd=device) (test NVMe effects-log) [passed]
     runtime    ...  0.746s
nvme/025 (tr=loop bd=file) (test NVMe effects-log) [passed]
     runtime    ...  0.715s
nvme/026 (tr=loop bd=device) (test NVMe ns-descs) [passed]
     runtime    ...  0.741s
nvme/026 (tr=loop bd=file) (test NVMe ns-descs) [passed]
     runtime    ...  0.714s
nvme/027 (tr=loop bd=device) (test NVMe ns-rescan command) [passed]
     runtime    ...  0.775s
nvme/027 (tr=loop bd=file) (test NVMe ns-rescan command) [passed]
     runtime    ...  0.761s
nvme/028 (tr=loop bd=device) (test NVMe list-subsys) [passed]
     runtime    ...  0.738s
nvme/028 (tr=loop bd=file) (test NVMe list-subsys) [passed]
     runtime    ...  0.710s
nvme/029 (tr=loop) (test userspace IO via nvme-cli read/write interface) 
[passed]
     runtime    ...  0.914s
nvme/030 (tr=loop) (ensure the discovery generation counter is updated 
appropriately) [passed]
     runtime    ...  0.363s
nvme/031 (tr=loop) (test deletion of NVMeOF controllers immediately 
after setup) [passed]
     runtime    ...  7.090s
nvme/038 (tr=loop) (test deletion of NVMeOF subsystem without enabling) 
[passed]
     runtime    ...  0.019s
nvme/040 (tr=loop) (test nvme fabrics controller reset/disconnect 
operation during I/O) [passed]
     runtime    ...  7.217s
nvme/041 (tr=loop) (Create authenticated connections) [passed]
     runtime    ...  2.216s
nvme/042 (tr=loop) (Test dhchap key types for authenticated connections) 
[passed]
     runtime    ...  7.456s
nvme/043 (tr=loop) (Test hash and DH group variations for authenticated 
connections) [passed]
     runtime  23.558s  ...  27.950s
nvme/044 (tr=loop) (Test bi-directional authentication) [passed]
     runtime    ...  4.652s
nvme/045 (tr=loop) (Test re-authentication) [passed]
     runtime    ...  2.523s
nvme/047 (tr=loop) (test different queue types for fabric transports) 
[not run]
     nvme_trtype=loop is not supported in this test
nvme/048 (tr=loop) (Test queue count changes on reconnect)   [not run]
     nvme_trtype=loop is not supported in this test
nvme/052 (tr=loop) (test nvmet concurrent ns enable/disable) [passed]
     runtime    ...  2.240s

blktests (master) # nvme_trtype=tcp ./check nvme
nvme/002 (tr=tcp) (create many subsystems and test discovery) [not run]
     nvme_trtype=tcp is not supported in this test
nvme/003 (tr=tcp) (test if we're sending keep-alives to a discovery 
controller) [passed]
     runtime  11.238s  ...  11.262s
nvme/004 (tr=tcp) (test nvme and nvmet UUID NS descriptors) [passed]
     runtime  0.246s  ...  0.261s
nvme/005 (tr=tcp) (reset local loopback target) [passed]
     runtime  0.311s  ...  0.311s
nvme/006 (tr=tcp bd=device) (create an NVMeOF target) [passed]
     runtime  0.087s  ...  0.090s
nvme/006 (tr=tcp bd=file) (create an NVMeOF target) [passed]
     runtime  0.074s  ...  0.072s
nvme/008 (tr=tcp bd=device) (create an NVMeOF host) [passed]
     runtime  0.245s  ...  0.259s
nvme/008 (tr=tcp bd=file) (create an NVMeOF host) [passed]
     runtime  0.206s  ...  0.192s
nvme/010 (tr=tcp bd=device) (run data verification fio job) [passed]
     runtime  64.322s  ...  62.326s
nvme/010 (tr=tcp bd=file) (run data verification fio job) [passed]
     runtime  97.964s  ...  95.985s
nvme/012 (tr=tcp bd=device) (run mkfs and data verification fio) [passed]
     runtime  68.434s  ...  63.920s
nvme/012 (tr=tcp bd=file) (run mkfs and data verification fio) [passed]
     runtime  103.278s  ...  105.927s
nvme/014 (tr=tcp bd=device) (flush a command from host) [passed]
     runtime  7.905s  ...  8.228s
nvme/014 (tr=tcp bd=file) (flush a command from host) [passed]
     runtime  6.517s  ...  6.434s
nvme/016 (tr=tcp) (create/delete many NVMeOF block device-backed ns and 
test discovery) [not run]
     nvme_trtype=tcp is not supported in this test
nvme/017 (tr=tcp) (create/delete many file-ns and test discovery) [not run]
     nvme_trtype=tcp is not supported in this test
nvme/018 (tr=tcp) (unit test NVMe-oF out of range access on a file 
backend) [passed]
     runtime  0.221s  ...  0.213s
nvme/019 (tr=tcp bd=device) (test NVMe DSM Discard command) [passed]
     runtime  0.255s  ...  0.250s
nvme/019 (tr=tcp bd=file) (test NVMe DSM Discard command) [passed]
     runtime  0.228s  ...  0.210s
nvme/021 (tr=tcp bd=device) (test NVMe list command) [passed]
     runtime  0.232s  ...  0.246s
nvme/021 (tr=tcp bd=file) (test NVMe list command) [passed]
     runtime  0.221s  ...  0.204s
nvme/022 (tr=tcp bd=device) (test NVMe reset command) [passed]
     runtime  0.308s  ...  0.320s
nvme/022 (tr=tcp bd=file) (test NVMe reset command) [passed]
     runtime  0.283s  ...  0.293s
nvme/023 (tr=tcp bd=device) (test NVMe smart-log command) [passed]
     runtime  0.232s  ...  0.236s
nvme/023 (tr=tcp bd=file) (test NVMe smart-log command) [passed]
     runtime  0.208s  ...  0.224s
nvme/025 (tr=tcp bd=device) (test NVMe effects-log) [passed]
     runtime  0.229s  ...  0.254s
nvme/025 (tr=tcp bd=file) (test NVMe effects-log) [passed]
     runtime  0.217s  ...  0.225s
nvme/026 (tr=tcp bd=device) (test NVMe ns-descs) [passed]
     runtime  0.258s  ...  0.239s
nvme/026 (tr=tcp bd=file) (test NVMe ns-descs) [passed]
     runtime  0.238s  ...  0.230s
nvme/027 (tr=tcp bd=device) (test NVMe ns-rescan command) [passed]
     runtime  0.284s  ...  0.277s
nvme/027 (tr=tcp bd=file) (test NVMe ns-rescan command) [passed]
     runtime  0.256s  ...  0.260s
nvme/028 (tr=tcp bd=device) (test NVMe list-subsys) [passed]
     runtime  0.247s  ...  0.246s
nvme/028 (tr=tcp bd=file) (test NVMe list-subsys) [passed]
     runtime  0.224s  ...  0.232s
nvme/029 (tr=tcp) (test userspace IO via nvme-cli read/write interface) 
[passed]
     runtime  0.429s  ...  0.406s
nvme/030 (tr=tcp) (ensure the discovery generation counter is updated 
appropriately) [passed]
     runtime  0.171s  ...  0.169s
nvme/031 (tr=tcp) (test deletion of NVMeOF controllers immediately after 
setup) [passed]
     runtime  2.120s  ...  2.121s
nvme/038 (tr=tcp) (test deletion of NVMeOF subsystem without enabling) 
[passed]
     runtime  0.022s  ...  0.022s
nvme/040 (tr=tcp) (test nvme fabrics controller reset/disconnect 
operation during I/O) [passed]
     runtime  6.259s  ...  6.289s
nvme/041 (tr=tcp) (Create authenticated connections) [passed]
     runtime  1.709s  ...  1.710s
nvme/042 (tr=tcp) (Test dhchap key types for authenticated connections) 
[passed]
     runtime  3.936s  ...  3.992s
nvme/043 (tr=tcp) (Test hash and DH group variations for authenticated 
connections) [passed]
     runtime  19.664s  ...  19.801s
nvme/044 (tr=tcp) (Test bi-directional authentication) [passed]
     runtime  3.577s  ...  3.609s
nvme/045 (tr=tcp) (Test re-authentication) [passed]
     runtime  2.014s  ...  1.440s
nvme/047 (tr=tcp) (test different queue types for fabric transports) 
[passed]
     runtime    ...  1.114s
nvme/048 (tr=tcp) (Test queue count changes on reconnect) [passed]
     runtime  5.300s  ...  6.308s
nvme/052 (tr=tcp) (test nvmet concurrent ns enable/disable) [passed]
     runtime  2.206s  ...  2.234s
blktests (master) #




More information about the Linux-nvme mailing list