[bug report] kmemleak observed with blktests nvme/tcp
Chaitanya Kulkarni
chaitanyak at nvidia.com
Mon Apr 15 20:19:41 PDT 2024
+linux-nvme list for awareness ...
-ck
On 4/6/24 17:38, Yi Zhang wrote:
> Hello
>
> I found the kmemleak issue after blktests nvme/tcp tests on the latest
> linux-block/for-next, please help check it and let me know if you need
> any info/testing for it, thanks.
it will help others to specify which testcase you are using ...
> # dmesg | grep kmemleak
> [ 2580.572467] kmemleak: 92 new suspected memory leaks (see
> /sys/kernel/debug/kmemleak)
>
> # cat kmemleak.log
> unreferenced object 0xffff8885a1abe740 (size 32):
> comm "kworker/40:1H", pid 799, jiffies 4296062986
> hex dump (first 32 bytes):
> c2 4a 4a 04 00 ea ff ff 00 00 00 00 00 10 00 00 .JJ.............
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> backtrace (crc 6328eade):
> [<ffffffffa7f2657c>] __kmalloc+0x37c/0x480
> [<ffffffffa86a9b1f>] sgl_alloc_order+0x7f/0x360
> [<ffffffffc261f6c5>] lo_read_simple+0x1d5/0x5b0 [loop]
> [<ffffffffc26287ef>] 0xffffffffc26287ef
> [<ffffffffc262a2c4>] 0xffffffffc262a2c4
> [<ffffffffc262a881>] 0xffffffffc262a881
> [<ffffffffa76adf3c>] process_one_work+0x89c/0x19f0
> [<ffffffffa76b0813>] worker_thread+0x583/0xd20
> [<ffffffffa76ce2a3>] kthread+0x2f3/0x3e0
> [<ffffffffa74a804d>] ret_from_fork+0x2d/0x70
> [<ffffffffa7406e4a>] ret_from_fork_asm+0x1a/0x30
> unreferenced object 0xffff88a8b03647c0 (size 16):
> comm "kworker/40:1H", pid 799, jiffies 4296062986
> hex dump (first 16 bytes):
> c0 4a 4a 04 00 ea ff ff 00 10 00 00 00 00 00 00 .JJ.............
> backtrace (crc 860ce62b):
> [<ffffffffa7f2657c>] __kmalloc+0x37c/0x480
> [<ffffffffc261f805>] lo_read_simple+0x315/0x5b0 [loop]
> [<ffffffffc26287ef>] 0xffffffffc26287ef
> [<ffffffffc262a2c4>] 0xffffffffc262a2c4
> [<ffffffffc262a881>] 0xffffffffc262a881
> [<ffffffffa76adf3c>] process_one_work+0x89c/0x19f0
> [<ffffffffa76b0813>] worker_thread+0x583/0xd20
> [<ffffffffa76ce2a3>] kthread+0x2f3/0x3e0
> [<ffffffffa74a804d>] ret_from_fork+0x2d/0x70
> [<ffffffffa7406e4a>] ret_from_fork_asm+0x1a/0x30
>
> (gdb) l *(lo_read_simple+0x1d5)
> 0x66c5 is in lo_read_simple (drivers/block/loop.c:284).
> 279 struct bio_vec bvec;
> 280 struct req_iterator iter;
> 281 struct iov_iter i;
> 282 ssize_t len;
> 283
> 284 rq_for_each_segment(bvec, rq, iter) {
> 285 iov_iter_bvec(&i, ITER_DEST, &bvec, 1, bvec.bv_len);
> 286 len = vfs_iter_read(lo->lo_backing_file, &i, &pos, 0);
> 287 if (len < 0)
> 288 return len;
> (gdb) l *(lo_read_simple+0x315)
> 0x6805 is in lo_read_simple (./include/linux/bio.h:120).
> 115 iter->bi_sector += bytes >> 9;
> 116
> 117 if (bio_no_advance_iter(bio))
> 118 iter->bi_size -= bytes;
> 119 else
> 120 bvec_iter_advance_single(bio->bi_io_vec, iter, bytes);
> 121 }
> 122
> 123 void __bio_advance(struct bio *, unsigned bytes);
> 124
>
>
-ck
More information about the Linux-nvme
mailing list