[bug report] kmemleak observed during blktests nvme/fc
Chaitanya Kulkarni
chaitanyak at nvidia.com
Thu Dec 18 11:41:06 PST 2025
On 12/14/25 7:44 PM, Chaitanya Kulkarni wrote:
> On 12/11/25 07:40, Yi Zhang wrote:
>> Hi
>> The following kmemleak was observed during blktests nvme/fc, please
>> help check it and let me know if you need any info/test for it,
>> thanks.
>>
>> commit d678712ead7318d5650158aa00113f63ccd4e210
>> Merge: 95ed689e9f30 a0750fae73c5
>> Author: Jens Axboe <axboe at kernel.dk>
>> Date: Wed Dec 10 13:41:17 2025 -0700
>>
>> Merge branch 'block-6.19' into for-next
>>
>> * block-6.19:
>> blk-mq-dma: always initialize dma state
>>
>> # cat /sys/kernel/debug/kmemleak
>> unreferenced object 0xffff88826cab51c0 (size 2488):
>> comm "nvme", pid 84134, jiffies 4304631753
>> hex dump (first 32 bytes):
>> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>> 60 1a be c1 ff ff ff ff c0 2b 05 73 77 60 00 00 `........+.sw`..
>> backtrace (crc 155ec6c5):
>> kmem_cache_alloc_node_noprof+0x5e4/0x830
>> blk_alloc_queue+0x30/0x700
>> blk_mq_alloc_queue+0x14b/0x230
>> nvme_alloc_admin_tag_set+0x352/0x670 [nvme_core]
>> 0xffffffffc11de07f
>> 0xffffffffc11dfc28
>> nvmf_create_ctrl+0x2ec/0x620 [nvme_fabrics]
>> nvmf_dev_write+0xd5/0x180 [nvme_fabrics]
>> vfs_write+0x1d0/0xfd0
>> ksys_write+0xf9/0x1d0
>> do_syscall_64+0x95/0x520
>> entry_SYSCALL_64_after_hwframe+0x76/0x7e
>
>
> Can you try following ? FYI : - Potential fix, only compile tested.
>
> From b3c2e350ae741b18c04abe489dcf9d325537c01c Mon Sep 17 00:00:00 2001
> From: Chaitanya Kulkarni <ckulkarnilinux at gmail.com>
> Date: Sun, 14 Dec 2025 19:29:24 -0800
> Subject: [PATCH COMPILE TESTED ONLY] nvme-fc: release admin tagset if
> init fails
>
> nvme_fabrics creates an NVMe/FC controller in following path:
>
> nvmf_dev_write()
> -> nvmf_create_ctrl()
> -> nvme_fc_create_ctrl()
> -> nvme_fc_init_ctrl()
>
> Check ctrl->ctrl.admin_tagset in the fail_ctrl path and call
> nvme_remove_admin_tag_set() to release the resources.
>
> Signed-off-by: Chaitanya Kulkarni <ckulkarnilinux at gmail.com>
> ---
> drivers/nvme/host/fc.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c
> index bc455fa98246..6948de3f438a 100644
> --- a/drivers/nvme/host/fc.c
> +++ b/drivers/nvme/host/fc.c
> @@ -3587,6 +3587,8 @@ nvme_fc_init_ctrl(struct device *dev, struct
> nvmf_ctrl_options *opts,
>
> ctrl->ctrl.opts = NULL;
>
> + if (ctrl->ctrl.admin_tagset)
> + nvme_remove_admin_tag_set(&ctrl->ctrl);
> /* initiate nvme ctrl ref counting teardown */
> nvme_uninit_ctrl(&ctrl->ctrl);
>
did you get a chance to try this ?
-ck
More information about the Linux-nvme
mailing list