* Re: Patch "percpu: fix a memory leak in pcpu_extend_area_map()" has been added to the 2.6.35-stable tree [not found] <12845915543097@site> @ 2010-09-16 21:39 ` Stefan Lippers-Hollmann 2010-09-16 22:47 ` Greg KH 2010-09-17 2:43 ` Huang Shijie 0 siblings, 2 replies; 5+ messages in thread From: Stefan Lippers-Hollmann @ 2010-09-16 21:39 UTC (permalink / raw) To: gregkh; +Cc: linux-kernel, shijie8, tj, stable [-- Attachment #1: Type: Text/Plain, Size: 1625 bytes --] Hi On Thursday 16 September 2010, gregkh@suse.de wrote: > This is a note to let you know that I've just added the patch titled > percpu: fix a memory leak in pcpu_extend_area_map() > to the 2.6.35-stable tree which can be found at: > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary [...] > From a002d148426f40bc2b7dc066982eb177cdebeaaa Mon Sep 17 00:00:00 2001 > From: Huang Shijie <shijie8@gmail.com> > Date: Sun, 8 Aug 2010 14:39:07 +0200 > Subject: percpu: fix a memory leak in pcpu_extend_area_map() > > From: Huang Shijie <shijie8@gmail.com> > > commit a002d148426f40bc2b7dc066982eb177cdebeaaa upstream. > > The original code did not free the old map. This patch fixes it. > > tj: use @old as memcpy source instead of @chunk->map, and indentation > and description update This patch, as part of the current -stable queue-2.6.35, breaks booting for me on nforce4/ AMD64 X2. Unfortunately it fails even before the serial console is initialized and the only messages shown on screen are: Decompressing Linux... Parsing ELF... done. Booting kernel. [...] > --- a/mm/percpu.c > +++ b/mm/percpu.c > @@ -390,7 +390,9 @@ static int pcpu_extend_area_map(struct p > goto out_unlock; > > old_size = chunk->map_alloc * sizeof(chunk->map[0]); > - memcpy(new, chunk->map, old_size); > + old = chunk->map; > + > + memcpy(new, old, old_size); > > /* > * map_alloc < PCPU_DFL_MAP_ALLOC indicates that the chunk is Reverting just this patch from the current queue-2.6.35 fixes the issue for me; gzipped kernel config (amd64) attached. Regards Stefan Lippers-Hollmann [-- Attachment #2: config-2.6.35-4.slh.11.9-aptosid-amd64.gz --] [-- Type: application/x-gzip, Size: 28163 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Patch "percpu: fix a memory leak in pcpu_extend_area_map()" has been added to the 2.6.35-stable tree 2010-09-16 21:39 ` Patch "percpu: fix a memory leak in pcpu_extend_area_map()" has been added to the 2.6.35-stable tree Stefan Lippers-Hollmann @ 2010-09-16 22:47 ` Greg KH 2010-09-16 23:37 ` Stefan Lippers-Hollmann 2010-09-17 2:43 ` Huang Shijie 1 sibling, 1 reply; 5+ messages in thread From: Greg KH @ 2010-09-16 22:47 UTC (permalink / raw) To: Stefan Lippers-Hollmann; +Cc: linux-kernel, shijie8, tj, stable On Thu, Sep 16, 2010 at 11:39:02PM +0200, Stefan Lippers-Hollmann wrote: > Hi > > On Thursday 16 September 2010, gregkh@suse.de wrote: > > This is a note to let you know that I've just added the patch titled > > percpu: fix a memory leak in pcpu_extend_area_map() > > to the 2.6.35-stable tree which can be found at: > > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > [...] > > From a002d148426f40bc2b7dc066982eb177cdebeaaa Mon Sep 17 00:00:00 2001 > > From: Huang Shijie <shijie8@gmail.com> > > Date: Sun, 8 Aug 2010 14:39:07 +0200 > > Subject: percpu: fix a memory leak in pcpu_extend_area_map() > > > > From: Huang Shijie <shijie8@gmail.com> > > > > commit a002d148426f40bc2b7dc066982eb177cdebeaaa upstream. > > > > The original code did not free the old map. This patch fixes it. > > > > tj: use @old as memcpy source instead of @chunk->map, and indentation > > and description update > > This patch, as part of the current -stable queue-2.6.35, breaks booting for > me on nforce4/ AMD64 X2. Unfortunately it fails even before the serial > console is initialized and the only messages shown on screen are: > > Decompressing Linux... Parsing ELF... done. > Booting kernel. > > [...] > > --- a/mm/percpu.c > > +++ b/mm/percpu.c > > @@ -390,7 +390,9 @@ static int pcpu_extend_area_map(struct p > > goto out_unlock; > > > > old_size = chunk->map_alloc * sizeof(chunk->map[0]); > > - memcpy(new, chunk->map, old_size); > > + old = chunk->map; > > + > > + memcpy(new, old, old_size); > > > > /* > > * map_alloc < PCPU_DFL_MAP_ALLOC indicates that the chunk is > > Reverting just this patch from the current queue-2.6.35 fixes the issue for > me; gzipped kernel config (amd64) attached. Does Linus's tree also cause the same problems for you? thanks, greg k-h ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Patch "percpu: fix a memory leak in pcpu_extend_area_map()" has been added to the 2.6.35-stable tree 2010-09-16 22:47 ` Greg KH @ 2010-09-16 23:37 ` Stefan Lippers-Hollmann 0 siblings, 0 replies; 5+ messages in thread From: Stefan Lippers-Hollmann @ 2010-09-16 23:37 UTC (permalink / raw) To: Greg KH; +Cc: linux-kernel, shijie8, tj, stable Hi On Friday 17 September 2010, Greg KH wrote: > On Thu, Sep 16, 2010 at 11:39:02PM +0200, Stefan Lippers-Hollmann wrote: [...] > > On Thursday 16 September 2010, gregkh@suse.de wrote: > > > This is a note to let you know that I've just added the patch titled > > > percpu: fix a memory leak in pcpu_extend_area_map() > > > to the 2.6.35-stable tree which can be found at: > > > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > > [...] > > > From a002d148426f40bc2b7dc066982eb177cdebeaaa Mon Sep 17 00:00:00 2001 > > > From: Huang Shijie <shijie8@gmail.com> > > > Date: Sun, 8 Aug 2010 14:39:07 +0200 > > > Subject: percpu: fix a memory leak in pcpu_extend_area_map() > > > > > > From: Huang Shijie <shijie8@gmail.com> > > > > > > commit a002d148426f40bc2b7dc066982eb177cdebeaaa upstream. > > > > > > The original code did not free the old map. This patch fixes it. > > > > > > tj: use @old as memcpy source instead of @chunk->map, and indentation > > > and description update > > > > This patch, as part of the current -stable queue-2.6.35, breaks booting for > > me on nforce4/ AMD64 X2. Unfortunately it fails even before the serial > > console is initialized and the only messages shown on screen are: > > > > Decompressing Linux... Parsing ELF... done. > > Booting kernel. [...] > > > --- a/mm/percpu.c > > > +++ b/mm/percpu.c > > > @@ -390,7 +390,9 @@ static int pcpu_extend_area_map(struct p > > > goto out_unlock; > > > > > > old_size = chunk->map_alloc * sizeof(chunk->map[0]); > > > - memcpy(new, chunk->map, old_size); > > > + old = chunk->map; > > > + > > > + memcpy(new, old, old_size); > > > > > > /* > > > * map_alloc < PCPU_DFL_MAP_ALLOC indicates that the chunk is > > > > Reverting just this patch from the current queue-2.6.35 fixes the issue for > > me; gzipped kernel config (amd64) attached. > > Does Linus's tree also cause the same problems for you? Current linux-2.6 HEAD (v2.6.36-rc4-134-g03a7ab0) boots and works fine with a config very closely derived from the previous one. Regards Stefan Lippers-Hollmann ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Patch "percpu: fix a memory leak in pcpu_extend_area_map()" has been added to the 2.6.35-stable tree 2010-09-16 21:39 ` Patch "percpu: fix a memory leak in pcpu_extend_area_map()" has been added to the 2.6.35-stable tree Stefan Lippers-Hollmann 2010-09-16 22:47 ` Greg KH @ 2010-09-17 2:43 ` Huang Shijie 2010-09-17 12:25 ` Stefan Lippers-Hollmann 1 sibling, 1 reply; 5+ messages in thread From: Huang Shijie @ 2010-09-17 2:43 UTC (permalink / raw) To: Stefan Lippers-Hollmann; +Cc: gregkh, linux-kernel, tj, stable hi : I think this maybe caused by the kfree/vfree. I do not have any AMD machine. Could you add some log to debug it ? such as in pcpu_extend_area_map(): ================================ printk(KERN_INFO "[ %s ] line : %d\n", __func__, __LINE__); pcpu_mem_free(old, old_size); printk(KERN_INFO "[ %s ] line : %d\n", __func__, __LINE__); pcpu_mem_free(new, new_size); printk(KERN_INFO "[ %s ] line : %d\n", __func__, __LINE__); ================================ The system will print the log before it hung. Best Regards. Huang Shijie 2010/9/17 Stefan Lippers-Hollmann <s.L-H@gmx.de>: > Hi > > On Thursday 16 September 2010, gregkh@suse.de wrote: >> This is a note to let you know that I've just added the patch titled >> percpu: fix a memory leak in pcpu_extend_area_map() >> to the 2.6.35-stable tree which can be found at: >> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > [...] >> From a002d148426f40bc2b7dc066982eb177cdebeaaa Mon Sep 17 00:00:00 2001 >> From: Huang Shijie <shijie8@gmail.com> >> Date: Sun, 8 Aug 2010 14:39:07 +0200 >> Subject: percpu: fix a memory leak in pcpu_extend_area_map() >> >> From: Huang Shijie <shijie8@gmail.com> >> >> commit a002d148426f40bc2b7dc066982eb177cdebeaaa upstream. >> >> The original code did not free the old map. This patch fixes it. >> >> tj: use @old as memcpy source instead of @chunk->map, and indentation >> and description update > > This patch, as part of the current -stable queue-2.6.35, breaks booting for > me on nforce4/ AMD64 X2. Unfortunately it fails even before the serial > console is initialized and the only messages shown on screen are: > > Decompressing Linux... Parsing ELF... done. > Booting kernel. > > [...] >> --- a/mm/percpu.c >> +++ b/mm/percpu.c >> @@ -390,7 +390,9 @@ static int pcpu_extend_area_map(struct p >> goto out_unlock; >> >> old_size = chunk->map_alloc * sizeof(chunk->map[0]); >> - memcpy(new, chunk->map, old_size); >> + old = chunk->map; >> + >> + memcpy(new, old, old_size); >> >> /* >> * map_alloc < PCPU_DFL_MAP_ALLOC indicates that the chunk is > > Reverting just this patch from the current queue-2.6.35 fixes the issue for > me; gzipped kernel config (amd64) attached. > > Regards > Stefan Lippers-Hollmann > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Patch "percpu: fix a memory leak in pcpu_extend_area_map()" has been added to the 2.6.35-stable tree 2010-09-17 2:43 ` Huang Shijie @ 2010-09-17 12:25 ` Stefan Lippers-Hollmann 0 siblings, 0 replies; 5+ messages in thread From: Stefan Lippers-Hollmann @ 2010-09-17 12:25 UTC (permalink / raw) To: Huang Shijie; +Cc: gregkh, linux-kernel, tj, stable Hi On Friday 17 September 2010, Huang Shijie wrote: > hi : > > I think this maybe caused by the kfree/vfree. > I do not have any AMD machine. Could you add some log to debug it > ? such as in pcpu_extend_area_map(): > > ================================ [...] --- a/mm/percpu.c +++ b/mm/percpu.c @@ -390,7 +390,9 @@ static int pcpu_extend_area_map(struct p goto out_unlock; old_size = chunk->map_alloc * sizeof(chunk->map[0]); - memcpy(new, chunk->map, old_size); + old = chunk->map; + + memcpy(new, old, old_size); /* * map_alloc < PCPU_DFL_MAP_ALLOC indicates that the chunk is @@ -410,8 +412,11 @@ out_unlock: * pcpu_mem_free() might end up calling vfree() which uses * IRQ-unsafe lock and thus can't be called under pcpu_lock. */ + printk(KERN_INFO "[ %s ] line : %d\n", __func__, __LINE__); pcpu_mem_free(old, old_size); + printk(KERN_INFO "[ %s ] line : %d\n", __func__, __LINE__); pcpu_mem_free(new, new_size); + printk(KERN_INFO "[ %s ] line : %d\n", __func__, __LINE__); return 0; } > ================================ > The system will print the log before it hung. Unfortunately those printk lines aren't reached and the systems freezes earlier. > Best Regards. > Huang Shijie > > > 2010/9/17 Stefan Lippers-Hollmann <s.L-H@gmx.de>: [...] > >> to the 2.6.35-stable tree which can be found at: > >> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > > [...] > >> From a002d148426f40bc2b7dc066982eb177cdebeaaa Mon Sep 17 00:00:00 2001 > >> From: Huang Shijie <shijie8@gmail.com> > >> Date: Sun, 8 Aug 2010 14:39:07 +0200 > >> Subject: percpu: fix a memory leak in pcpu_extend_area_map() [...] > > This patch, as part of the current -stable queue-2.6.35, breaks booting for > > me on nforce4/ AMD64 X2. Unfortunately it fails even before the serial > > console is initialized and the only messages shown on screen are: > > > > Decompressing Linux... Parsing ELF... done. > > Booting kernel. I'm still stuck on those lines, before the system freezes, but I can reproduce the same issues in Intel Q9550/ ICH10 (x86_64) and Intel Pentium M (Banias)/ ICH4-M. All systems use current Debian/ unstable (gcc-4.4 4.4.4-14, binutils 2.20.1-14) and are booted by grub2 (grub-pc 1.98+20100804-4). Queue-2.6.35 with this patch backed out and current linux-2.6 HEAD (v2.6.36-rc4-134-g03a7ab0) are working fine on all tested systems. Regards Stefan Lippers-Hollmann ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-09-17 12:25 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <12845915543097@site>
2010-09-16 21:39 ` Patch "percpu: fix a memory leak in pcpu_extend_area_map()" has been added to the 2.6.35-stable tree Stefan Lippers-Hollmann
2010-09-16 22:47 ` Greg KH
2010-09-16 23:37 ` Stefan Lippers-Hollmann
2010-09-17 2:43 ` Huang Shijie
2010-09-17 12:25 ` Stefan Lippers-Hollmann
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox