Re: 2.6.25-rc8-mm2: boot hang after "ACPI: using IOAPIC for interrupt routing"

Alexey Dobriyan
2008-04-11T23:13:49Z

On Sat, Apr 12, 2008 at 12:25:21AM +0300, Pekka J Enberg wrote:
> On Sat, 12 Apr 2008, Alexey Dobriyan wrote:
> > > Alexey, can you try passing the 'slub_nomerge' option to the kernel to
> > > see if the hang goes away with that?
> >
> > nomerge doesn't help as well as turning on combinations of SLUB debug options.
>
> Does the following patch fix it?
>
> Pekka
>
> From 7c7e7e5e7ec07c0a47705b2d21c779c39ba02252 Mon Sep 17 00:00:00 2001
> From: Pekka Enberg <penberg@cs.helsinki.fi>
> Date: Fri, 11 Apr 2008 17:17:43 +0300
> Subject: [PATCH] slub: add missing slab_unlock() to __kmem_cache_shrink()
>
> If page is not kickable, remember to slab_unlock() before continuing the loop.
>
> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
> ---
> mm/slub.c | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/mm/slub.c b/mm/slub.c
> index 4b694a7..f09f1fb 100644
> --- a/mm/slub.c
> +++ b/mm/slub.c
> @@ -2926,8 +2926,10 @@ static unsigned long __kmem_cache_shrink(struct kmem_cache *s, int node,
> continue;
>
> if (page->inuse) {
> - if (!SlabKickable(page))
> + if (!SlabKickable(page)) {
> + slab_unlock(page);
> continue;
> + }

Yes, it helps. Now I have some more bugs to report. :-(