[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