From: Artem Bityutskiy <dedekind1@gmail.com>
To: Marek Skuczynski <mareksk7@gmail.com>
Cc: linux-mtd@lists.infradead.org
Subject: Re: Memory leak on UBI volume truncating
Date: Mon, 18 Jan 2010 12:03:04 +0200 [thread overview]
Message-ID: <1263808984.27592.70.camel@localhost> (raw)
In-Reply-To: <a328840c1001180036j771339a7t780960627e742c9b@mail.gmail.com>
On Mon, 2010-01-18 at 09:36 +0100, Marek Skuczynski wrote:
> Hello Artem,
> > On Sun, Jan 17, 2010 at 11:43 AM, Artem Bityutskiy <dedekind1@gmail.com> wrote:
> >> On Sun, 2010-01-17 at 12:37 +0200, Artem Bityutskiy wrote:
> >>> Hi,
> >>>
> >>> On Wed, 2010-01-13 at 15:28 +0100, Marek Skuczynski wrote:
> >>> > Hello,
> >>> > I have prepare a simple volume update stress test (see test code below).
> >>> > This test has been run for kernel 2.6.23 with some updates from 2.6.28,
> >>> > and always after a few minutes the OOM killer was launched.
> >>> >
> >>> > What i found it that each an UBI volume truncate operation with
> >>> > ubiupdatevol tool
> >>> > causes memory leak. I think this happens because:
> >>> >
> >>> > - ubi_start_update() param "bytes" is equal 0
> >>> >
> >>> > - vol->updating flag is re-set to 0
> >>> >
> >>> > - vol->upd_buf is allocated regardless of vol->updating flag,
> >>> > but not released on device close by vol_cdev_release()
> >>> >
> >>> > I never run the test on a newer kernel version, so I cannot confirm
> >>> > that this problem still exists.
> >>> >
> >>> > Please confirm, whether my findings are correct or not, thanks.
> >>>
> >>> thanks for this finding. Looks like your analysis is right. Does this
> >>> simple patch help?
> >>
> >> Actually this even simpler patch should fix the issue. Could you please
> >> test it and let me know if it helps.
> >>
> >> diff --git a/drivers/mtd/ubi/upd.c b/drivers/mtd/ubi/upd.c
> >> index c1d7b88..425bf5a 100644
> >> --- a/drivers/mtd/ubi/upd.c
> >> +++ b/drivers/mtd/ubi/upd.c
> >> @@ -155,6 +155,7 @@ int ubi_start_update(struct ubi_device *ubi, struct ubi_volume *vol,
> >> if (err)
> >> return err;
> >> vol->updating = 0;
> >> + return 0;
> >> }
> >>
> >> vol->upd_buf = vmalloc(ubi->leb_size);
> >>
> >> --
>
> Thanks for you reply. It seems the fix solve the issue.
Cool. I'll push the fix and also send it to -stable a bit later. Thanks
for catching this.
--
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
next prev parent reply other threads:[~2010-01-18 10:03 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-13 14:28 Memory leak on UBI volume truncating Marek Skuczynski
2010-01-17 10:37 ` Artem Bityutskiy
2010-01-17 10:43 ` Artem Bityutskiy
[not found] ` <a328840c1001180034n7fd1c3e9m420afef60f7c97ab@mail.gmail.com>
2010-01-18 8:36 ` Marek Skuczynski
2010-01-18 10:03 ` Artem Bityutskiy [this message]
2010-01-28 15:07 ` Artem Bityutskiy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1263808984.27592.70.camel@localhost \
--to=dedekind1@gmail.com \
--cc=linux-mtd@lists.infradead.org \
--cc=mareksk7@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.