Re: linux-next memleak after IO on dax mountpoint
From: David Drysdale <hidden>
Date: 2016-06-02 15:23:01
Also in:
lkml
On Sat, May 28, 2016 at 5:05 AM, Xiong Zhou [off-list ref] wrote:
On Fri, May 27, 2016 at 04:46:17PM +0800, Xiong Zhou wrote: ...quoted
Still working on to id which commit in this merge causes this issuer,Narrowed down to: 37e5823 block: add offset in blk_add_request_payload() e048948 blk-mq: Export tagset iter function 58b4560 nvme: add helper nvme_map_len() 03b5929 nvme: rewrite discard support 8093f7c nvme: add helper nvme_setup_cmd() 21f033f NVMe: Skip async events for degraded controllers 82b4552 nvme: Use blk-mq helper for IO termination 93e9d8e block: add ability to flag write back caching on a device 519a7e1 dm: switch to using blk_queue_write_cache() bb8d261 nvme: introduce a controller state machine 92911a5 nvme: tighten up state check for namespace scanning 5955be2 nvme: move namespace scanning to core f866fc4 nvme: move AER handling to common code 0bf77e9 nvme: switch to RCU freeing the namespace 9082e87 block: remove struct bio_batch
FWIW, I'm also seeing kmemleak report a leak with v4.7-rc1, in
a different scenario (just normal desktop use). Not done much
digging so far, but this commit (9082e87bf) looks like it might be
relevant -- lots of the following:
unreferenced object 0xffff8800c288e900 (size 256):
comm "dconf-service", pid 1461, jiffies 4294895636 (age 48.028s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 c0 a4 c0 c6 00 88 ff ff ................
02 20 00 20 00 00 00 00 11 00 00 00 00 00 00 00 . . ............
backtrace:
[<ffffffff81955228>] kmemleak_alloc+0x28/0x50
[<ffffffff81268bdc>] kmem_cache_alloc+0xfc/0x360
[<ffffffff81203275>] mempool_alloc_slab+0x15/0x20
[<ffffffff812030de>] mempool_alloc+0x6e/0x170
[<ffffffff815014e8>] bio_alloc_bioset+0xb8/0x230
[<ffffffff81514174>] next_bio+0x24/0x50
[<ffffffff815145ef>] blkdev_issue_zeroout+0xdf/0x1d0
[<ffffffff8132ce79>] ext4_issue_zeroout+0x39/0x50
[<ffffffff81357abf>] ext4_ext_zeroout+0x2f/0x40
[<ffffffff8135ece0>] ext4_ext_map_blocks+0x1870/0x2190
[<ffffffff8132cfa1>] ext4_map_blocks+0x111/0x620
[<ffffffff81330dc8>] ext4_writepages+0x7c8/0x10a0
[<ffffffff81211851>] do_writepages+0x21/0x30
[<ffffffff812012ba>] __filemap_fdatawrite_range+0xaa/0xf0
[<ffffffff812013fd>] filemap_write_and_wait_range+0x2d/0x70
[<ffffffff81326f6d>] ext4_sync_file+0x18d/0x500
38f2525 block: add __blkdev_issue_discard 57aac2f lightnvm: fix "warning: ‘ret’ may be used uninitialized" ecfb40c lightnvm: handle submit_io failure 1145e63 lightnvm: implement nvm_submit_ppa_list 22e8c97 lightnvm: move block fold outside of get_bb_tbl() 7f7c5d0 lightnvm: avoid memory leak when lun_map kcalloc fails 5136061 lightnvm: introduce nvm_for_each_lun_ppa() macro e11903f lightnvm: refactor device ops->get_bb_tbl() 5ebc7d9 lightnvm: make nvm_set_rqd_ppalist() aware of vblks a63d5cf lightnvm: move responsibility for bad blk mgmt to target 00ee6cc lightnvm: refactor set_bb_tbl for accepting ppa list 003fad3 lightnvm: enable metadata to be sent to device 04a8aa1 lightnvm: expose gennvm_mark_blk to targets These commits can not be reverted cleanly.