[PATCH v2] drm/amdkfd: Fix memory leaks according to error branches
Julia Lawall
julia.lawall at inria.fr
Sat Jun 20 11:26:14 UTC 2020
On Sat, 20 Jun 2020, Bernard wrote:
>
>
> From: Julia Lawall <julia.lawall at inria.fr>
> Date: 2020-06-20 17:37:19
> To: Markus Elfring <Markus.Elfring at web.de>
> Cc: Bernard Zhao <bernard at vivo.com>,opensource.kernel at vivo.com,amd-gfx at lists.freedesktop.org,dri-devel at lists.freedesktop.org,kernel-janitors at vger.kernel.org,linux-kernel at vger.kernel.org,Alex Deucher <alexander.deucher at amd.com>,"Christian König" <christian.koenig at amd.com>,"Felix Kühling" <Felix.Kuehling at amd.com>,Daniel Vetter <daniel at ffwll.ch>,David Airlie <airlied at linux.ie>
> Subject: Re: [PATCH v2] drm/amdkfd: Fix memory leaks according to error branches>
> >
> >On Sat, 20 Jun 2020, Markus Elfring wrote:
> >
> >> > The function kobject_init_and_add alloc memory like:
> >> > kobject_init_and_add->kobject_add_varg->kobject_set_name_vargs
> >> > ->kvasprintf_const->kstrdup_const->kstrdup->kmalloc_track_caller
> >> > ->kmalloc_slab, in err branch this memory not free. If use
> >> > kmemleak, this path maybe catched.
> >> > These changes are to add kobject_put in kobject_init_and_add
> >> > failed branch, fix potential memleak.
> >>
> >> I suggest to improve this change description.
> >>
> >> * Can an other wording variant be nicer?
> >
> >Markus's suggestion is as usual extremely imprecise. However, I also find
> >the message quite unclear.
> >
> >It would be good to always use English words. alloc and err are not
> >English words. Perhaps most people will figure out what they are
> >abbreviations for, but it would be better to use a few more letters to
> >make it so that no one has to guess.
> >
> >Then there are a bunch of things that are connected by arrows with no
> >spaces between them. The most obvious meaning of an arrow with no space
> >around it is a variable dereference. After spending some mental effort,
> >one can realize that that is not what you mean here. A layout like:
> >
> > first_function ->
> > second_function ->
> > third_function
> >
> >would be much more readable.
> >
> >I don't know what "this patch maybe catched" means. Is "catched" supposed
> >to be "caught" or "cached"? Overall, the sentence could be "Kmemleak
> >could possibly detect this issue", or something like that. But I don't
> >know what this means. Did you detect the problem with kmemleak? if you
> >did not detect the problem with kmemleak, and overall you don't know
> >whether kmemleak would detect the bug or not, is this information useful
> >at all for the patch?
>
> Hi:
>
> Kmemleak detected a memory leak as below:
> kobject_init_and_add->
> kobject_add_varg->
> kobject_set_name_vargs->
> kvasprintf_const->
> kstrdup_const->
> kstrdup->
> kmalloc_track_caller->
> kmalloc_slab
>
> If kobject_init_and_add is called, but kobject_put is not called in the error branch.
> This will be detected by kmemleak.
Thanks. This is much more understandable. The last part still seems a
bit hypothetical. After the trace, which explain why you made the change,
just say what you did in the patch to fix the problem.
julia
>
> BR//Bernard
>
> >"These changes are to" makes a lot of words with no information. While it
> >is perhaps not necessary to slavishly follow the rule about using the
> >imperative, if it is convenient to use the imperative, doing so eliminates
> >such meaningless phrases.
> >
> >memleak is also not an English word. Memory leak is only a few more
> >characters, and doesn't require the reader to make the small extra effort
> >to figure out what you mean.
> >
> >julia
> >
> >>
> >> * Will the tag “Fixes” become helpful for the commit message?
> >>
> >> Regards,
> >> Markus
> >>
>
>
>
More information about the dri-devel
mailing list