<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:΢ÈíÑźÚ
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><div>> Date: Tue, 16 Jun 2015 11:14:51 -0400<br>> From: anderson@redhat.com<br>> To: crash-utility@redhat.com<br>> Subject: Re: [Crash-utility] [PATCH] Fix memory leaks in dump_mem_map when SPARSEMEM is enabled<br>> <br>> <br>> Hi Oliver,<br>> <br>> Since it's a GETBUF() call, it's not really a memory leak (by design). </div><div><br></div><div>Dave,</div><div><br></div><div>Sorry, I'm not familiar the code. </div><div><br></div><div>If the  <span style="font-size: 12pt;">dump_mem_map get called in a thousand loop, the crash could reported memory allocation errors and exit the loop.</span></div><div>After I fixed with this patch, the issue got disappeared.</div><div><br></div><div>I'm not sure you know the reason, if not, I can show you the error messages.</div><div>  <br>> But it's certainly unnecessary for CONFIG_SPARSEMEM kernels.  Queued<br>> for crash-7.1.2:<br>> <br>>   https://github.com/crash-utility/crash/commit/005eb9e502056a09196f6507162648c796e36f95<br>> <br>> Thanks,<br>>   Dave<br>> <br>> <br>> ----- Original Message -----<br>> > Signed-off-by: Yong Yang <yangoliver@gmail.com><br>> > ---<br>> >  memory.c | 7 +++----<br>> >  1 file changed, 3 insertions(+), 4 deletions(-)<br>> > <br>> > diff --git a/memory.c b/memory.c<br>> > index 32427ea..765732b 100644<br>> > --- a/memory.c<br>> > +++ b/memory.c<br>> > @@ -5734,10 +5734,6 @@ dump_mem_map(struct meminfo *mi)<br>> >    long buffersize;<br>> >     char *outputbuffer;<br>> >          int bufferindex;<br>> > -<br>> > -      buffersize = 1024 * 1024;<br>> > -  outputbuffer = GETBUF(buffersize + 512);<br>> > -<br>> >        char style1[100];<br>> >    char style2[100];<br>> >    char style3[100];<br>> > @@ -5748,6 +5744,9 @@ dump_mem_map(struct meminfo *mi)<br>> >                  return;<br>> >      }<br>> >  <br>> > +     buffersize = 1024 * 1024;<br>> > +  outputbuffer = GETBUF(buffersize + 512);<br>> > +<br>> >        sprintf((char *)&style1, "%%lx%s%%%dllx%s%%%dlx%s%%8lx %%2d%s",<br>> >                        space(MINSPACE),<br>> >                     (int)MAX(PADDR_PRLEN, strlen("PHYSICAL")),<br>> > --<br>> > 1.9.1<br>> > <br>> > --<br>> > Crash-utility mailing list<br>> > Crash-utility@redhat.com<br>> > https://www.redhat.com/mailman/listinfo/crash-utility<br>> > <br>> <br>> --<br>> Crash-utility mailing list<br>> Crash-utility@redhat.com<br>> https://www.redhat.com/mailman/listinfo/crash-utility<br></div>                                    </div></body>
</html>