Re: [SLUB 2/2] i386 arch page size slab fixes

Andrew Morton
2007-03-31T19:55:48Z

On Sat, 31 Mar 2007 11:31:07 -0800 (PST) Christoph Lameter <clameter@sgi.com> wrote:

> Fixup i386 arch for SLUB support
>
> i386 arch code currently uses the page struct of slabs for various purposes.
> This interferes with slub and so SLUB has been disabled for i386 by setting
> ARCH_USES_SLAB_PAGE_STRUCT.
>
> This patch removes the use of page sized slabs for maintaining pgds and pmds.
>
> Patch by William Irwin with only very minor modifications by me which are
>
> 1. Removal of HIGHMEM64G slab caches. It seems that virtualization hosts
> require a a full pgd page.
>
> 2. Add missing virtualization hook. Seems that we need a new way
> of serializing paravirt_alloc(). It may need to do its own serialization.
>
> 3. Remove ARCH_USES_SLAB_PAGE_STRUCT
>
> Note that this makes things work without debugging on.
> The arch still fails to boot properly if full SLUB debugging is on with
> a cryptic message:
>
> CPU: AMD Athlon(tm) 64 Processor 3000+ stepping 00
> Checking 'hlt' instruction... OK.
> ACPI: Core revision 20070126
> ACPI: setting ELCR to 0200 (from 1ca0)
> BUG: at kernel/sched.c:3417 sub_preempt_count()
> [<c0342d43>] _spin_unlock_irq+0x13/0x30
> [<c01160e6>] schedule_tail+0x36/0xd0
> [<c0102df8>] __switch_to+0x28/0x180
> [<c0103f9a>] ret_from_fork+0x6/0x1c
> [<c012acf0>] kthread+0x0/0xe0

This all has the potential to make my inbox hurt.

Can we disable SLUB on i386 in Kconfig until it gets sorted out?