- Subject: Re: [PATCH v2 02/14] dm: kill dm_rq_bio_destructor
- From: "Jun'ichi Nomura" <j-nomura@xxxxxxxxxxxxx>
- Date: Thu, 24 May 2012 10:16:09 +0900
- Cc: axboe@xxxxxxxxx, device-mapper development <dm-devel@xxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, tj@xxxxxxxxxx, linux-bcache@xxxxxxxxxxxxxxx, mpatocka@xxxxxxxxxx, agk@xxxxxxxxxx, bharrosh@xxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, yehuda@xxxxxxxxxxxxxxx, drbd-dev@xxxxxxxxxxxxxxxx, vgoyal@xxxxxxxxxx, sage@xxxxxxxxxxxx
- In-reply-to: <20120524003915.GA27443@google.com>
- References: <1337817771-25038-1-git-send-email-koverstreet@google.com> <1337817771-25038-3-git-send-email-koverstreet@google.com> <4FBD7E80.4020005@ce.jp.nec.com> <20120524003915.GA27443@google.com>
- Reply-to: device-mapper development <dm-devel@xxxxxxxxxx>
- User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1
On 05/24/12 09:39, Kent Overstreet wrote:
> On Thu, May 24, 2012 at 09:19:12AM +0900, Jun'ichi Nomura wrote:
>> The destructor may also be called from blk_rq_unprep_clone(),
>> which just puts bio.
>> So this patch will introduce a memory leak.
>
> Well, keeping around bi_destructor solely for that reason would be
> pretty lousy. Can you come up with a better solution?
I don't have good one but here are some ideas:
a) Do bio_endio() rather than bio_put() in blk_rq_unprep_clone()
and let bi_end_io reap additional data.
It looks ugly.
b) Separate the constructor from blk_rq_prep_clone().
dm has to do rq_for_each_bio loop again for constructor.
Possible performance impact.
c) Open code blk_rq_prep/unprep_clone() in dm.
It exposes unnecessary block-internals to dm.
d) Pass destructor function to blk_rq_prep/unprep_clone()
for them to callback.
Umm, is "d)" better?
--
Jun'ichi Nomura, NEC Corporation
--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel
[DM Crypt]
[Fedora Desktop]
[ATA RAID]
[Fedora Marketing]
[Fedora Packaging]
[Fedora SELinux]
[Yosemite Discussion]
[Yosemite Photos]
[KDE Users]
[Fedora Tools]
[Fedora Docs]