From: Yinghai Lu <yinghai@kernel.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: Pekka J Enberg <penberg@cs.helsinki.fi>,
Christoph Lameter <cl@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
linux-kernel@vger.kernel.org, akpm@linux-foundation.org,
hannes@cmpxchg.org, mpm@selenic.com, npiggin@suse.de
Subject: Re: [GIT PULL v3] Early boot SLAB for 2.6.31
Date: Thu, 11 Jun 2009 16:14:29 -0700 [thread overview]
Message-ID: <4A318FD5.7090908@kernel.org> (raw)
In-Reply-To: <20090611214342.GA12762@elte.hu>
Ingo Molnar wrote:
> * Pekka J Enberg <penberg@cs.helsinki.fi> wrote:
>
>> Hi Linus,
>>
>> Here's third take on the early boot SLAB patches for 2.6.31. I
>> fixed the problems found by Ingo in his testing and rebased the
>> series to be bisectable. I have tested the tree on 32-bit UMA and
>> on x86-64 with qemu and Yanghai has tested them on NUMA+SLUB
>> (thanks Yanghai!). Note: The series has not been tested on non-x86
>> architectures so we may introduce some breakage there.
>
> Latest -git now produces this boot warning on x86:
>
> [ 0.000000] Memory: 885032k/915540k available (5993k kernel code, 29844k reserved, 3842k data, 428k init, 0k highmem)
> [ 0.000000] virtual kernel memory layout:
> [ 0.000000] fixmap : 0xffe17000 - 0xfffff000 (1952 kB)
> [ 0.000000] vmalloc : 0xf8615000 - 0xffe15000 ( 120 MB)
> [ 0.000000] lowmem : 0xc0000000 - 0xf7e15000 ( 894 MB)
> [ 0.000000] .init : 0xc19a5000 - 0xc1a10000 ( 428 kB)
> [ 0.000000] .data : 0xc15da4bb - 0xc199af6c (3842 kB)
> [ 0.000000] .text : 0xc1000000 - 0xc15da4bb (5993 kB)
> [ 0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok.
> [ 0.000000] ------------[ cut here ]------------
> [ 0.000000] WARNING: at kernel/smp.c:369 smp_call_function_many+0x50/0x1b0()
> [ 0.000000] Hardware name: System Product Name
> [ 0.000000] Modules linked in:
> [ 0.000000] Pid: 0, comm: swapper Not tainted 2.6.30-tip #52504
> [ 0.000000] Call Trace:
> [ 0.000000] [<c104aa16>] warn_slowpath_common+0x65/0x95
> [ 0.000000] [<c104aa58>] warn_slowpath_null+0x12/0x15
> [ 0.000000] [<c1073bbe>] smp_call_function_many+0x50/0x1b0
> [ 0.000000] [<c1037615>] ? do_flush_tlb_all+0x0/0x41
> [ 0.000000] [<c1037615>] ? do_flush_tlb_all+0x0/0x41
> [ 0.000000] [<c1073d4f>] smp_call_function+0x31/0x58
> [ 0.000000] [<c1037615>] ? do_flush_tlb_all+0x0/0x41
> [ 0.000000] [<c104f635>] on_each_cpu+0x26/0x65
> [ 0.000000] [<c10374b5>] flush_tlb_all+0x19/0x1b
> [ 0.000000] [<c1032ab3>] zap_low_mappings+0x4d/0x56
> [ 0.000000] [<c15d64b5>] ? printk+0x14/0x17
> [ 0.000000] [<c19b42a8>] mem_init+0x23d/0x245
> [ 0.000000] [<c19a56a1>] start_kernel+0x17a/0x2d5
> [ 0.000000] [<c19a5347>] ? unknown_bootoption+0x0/0x19a
> [ 0.000000] [<c19a5039>] __init_begin+0x39/0x41
> [ 0.000000] ---[ end trace 4eaa2a86a8e2da22 ]---
> [ 0.000000] ------------[ cut here ]------------
> [ 0.000000] WARNING: at kernel/lockdep.c:2128 trace_hardirqs_on_caller+0xc6/0x143()
> [ 0.000000] Hardware name: System Product Name
> [ 0.000000] Modules linked in:
> [ 0.000000] Pid: 0, comm: swapper Tainted: G W 2.6.30-tip #52504
> [ 0.000000] Call Trace:
> [ 0.000000] [<c104aa16>] warn_slowpath_common+0x65/0x95
> [ 0.000000] [<c104f64b>] ? on_each_cpu+0x3c/0x65
> [ 0.000000] [<c1037615>] ? do_flush_tlb_all+0x0/0x41
> [ 0.000000] [<c104aa58>] warn_slowpath_null+0x12/0x15
> [ 0.000000] [<c106c883>] trace_hardirqs_on_caller+0xc6/0x143
> [ 0.000000] [<c106c90b>] trace_hardirqs_on+0xb/0xd
> [ 0.000000] [<c104f64b>] on_each_cpu+0x3c/0x65
> [ 0.000000] [<c10374b5>] flush_tlb_all+0x19/0x1b
> [ 0.000000] [<c1032ab3>] zap_low_mappings+0x4d/0x56
> [ 0.000000] [<c15d64b5>] ? printk+0x14/0x17
> [ 0.000000] [<c19b42a8>] mem_init+0x23d/0x245
> [ 0.000000] [<c19a56a1>] start_kernel+0x17a/0x2d5
> [ 0.000000] [<c19a5347>] ? unknown_bootoption+0x0/0x19a
> [ 0.000000] [<c19a5039>] __init_begin+0x39/0x41
> [ 0.000000] ---[ end trace 4eaa2a86a8e2da23 ]---
> [ 0.000000] SLUB: Genslabs=13, HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
> [ 0.000000] start_kernel(): bug: interrupts were enabled *very* early, fixing it
> [ 0.000000] Preemptible RCU implementation.
> [ 0.000000] NR_IRQS:2304 nr_irqs:424
> [ 0.000000] Fast TSC calibration using PIT
> [ 0.000000] Detected 2010.509 MHz processor.
> [ 0.010000] spurious 8259A interrupt: IRQ7.
> [ 0.010000] Console: colour VGA+ 80x25
> [ 0.010000] console [tty0] enabled
>
> config attached.
please check
[PATCH] x86: make zap_low_mapping could be used early
only one cpu is there, just call __flush_tlb for it
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
---
arch/x86/include/asm/tlbflush.h | 2 +-
arch/x86/kernel/smpboot.c | 2 +-
arch/x86/mm/init_32.c | 10 +++++++---
3 files changed, 9 insertions(+), 5 deletions(-)
Index: linux-2.6/arch/x86/include/asm/tlbflush.h
===================================================================
--- linux-2.6.orig/arch/x86/include/asm/tlbflush.h
+++ linux-2.6/arch/x86/include/asm/tlbflush.h
@@ -172,6 +172,6 @@ static inline void flush_tlb_kernel_rang
flush_tlb_all();
}
-extern void zap_low_mappings(void);
+extern void zap_low_mappings(bool early);
#endif /* _ASM_X86_TLBFLUSH_H */
Index: linux-2.6/arch/x86/kernel/smpboot.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/smpboot.c
+++ linux-2.6/arch/x86/kernel/smpboot.c
@@ -875,7 +875,7 @@ int __cpuinit native_cpu_up(unsigned int
err = do_boot_cpu(apicid, cpu);
- zap_low_mappings();
+ zap_low_mappings(false);
low_mappings = 0;
#else
err = do_boot_cpu(apicid, cpu);
Index: linux-2.6/arch/x86/mm/init_32.c
===================================================================
--- linux-2.6.orig/arch/x86/mm/init_32.c
+++ linux-2.6/arch/x86/mm/init_32.c
@@ -576,7 +576,7 @@ static inline void save_pg_dir(void)
}
#endif /* !CONFIG_ACPI_SLEEP */
-void zap_low_mappings(void)
+void zap_low_mappings(bool early)
{
int i;
@@ -593,7 +593,11 @@ void zap_low_mappings(void)
set_pgd(swapper_pg_dir+i, __pgd(0));
#endif
}
- flush_tlb_all();
+
+ if (early)
+ __flush_tlb();
+ else
+ flush_tlb_all();
}
pteval_t __supported_pte_mask __read_mostly = ~(_PAGE_NX | _PAGE_GLOBAL | _PAGE_IOMAP);
@@ -968,7 +972,7 @@ void __init mem_init(void)
test_wp_bit();
save_pg_dir();
- zap_low_mappings();
+ zap_low_mappings(true);
}
#ifdef CONFIG_MEMORY_HOTPLUG
next prev parent reply other threads:[~2009-06-11 23:15 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-10 20:12 [GIT PULL] Early boot SLAB for 2.6.31 Pekka J Enberg
2009-06-10 20:32 ` Linus Torvalds
2009-06-10 20:30 ` Pekka Enberg
2009-06-10 20:43 ` Ingo Molnar
2009-06-10 20:47 ` Pekka Enberg
2009-06-10 20:50 ` Ingo Molnar
2009-06-10 20:57 ` Ingo Molnar
2009-06-10 20:58 ` Pekka Enberg
2009-06-10 21:07 ` Pekka Enberg
2009-06-11 0:54 ` Ingo Molnar
2009-06-10 21:00 ` Pekka J Enberg
2009-06-10 20:33 ` Linus Torvalds
2009-06-10 20:57 ` Pekka J Enberg
2009-06-11 11:17 ` [GIT PULL v2] " Pekka J Enberg
2009-06-11 11:35 ` Ingo Molnar
2009-06-11 11:40 ` Ingo Molnar
2009-06-11 11:42 ` Ingo Molnar
2009-06-11 11:48 ` Ingo Molnar
2009-06-11 11:56 ` Pekka Enberg
2009-06-11 11:49 ` Pekka J Enberg
2009-06-11 11:54 ` Ingo Molnar
2009-06-11 13:58 ` Christoph Lameter
2009-06-11 14:06 ` Pekka Enberg
2009-06-11 14:26 ` Christoph Lameter
2009-06-11 15:24 ` Pekka Enberg
2009-06-11 17:50 ` Yinghai Lu
2009-06-11 18:10 ` [GIT PULL v3] " Pekka J Enberg
2009-06-11 21:43 ` Ingo Molnar
2009-06-11 22:03 ` Ingo Molnar
2009-06-11 22:41 ` Yinghai Lu
2009-06-12 8:33 ` Pekka Enberg
2009-06-12 7:17 ` Ingo Molnar
2009-06-12 7:25 ` Li Zefan
2009-06-12 7:29 ` Pekka Enberg
2009-06-12 7:29 ` KAMEZAWA Hiroyuki
2009-06-12 7:33 ` Li Zefan
2009-06-12 7:51 ` Ingo Molnar
2009-06-11 23:14 ` Yinghai Lu [this message]
2009-06-12 8:37 ` Pekka Enberg
2009-06-10 21:00 ` [GIT PULL] " Ingo Molnar
2009-06-10 20:57 ` Pekka Enberg
2009-06-10 21:03 ` Yinghai Lu
2009-06-10 21:11 ` Yinghai Lu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A318FD5.7090908@kernel.org \
--to=yinghai@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=cl@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mpm@selenic.com \
--cc=npiggin@suse.de \
--cc=penberg@cs.helsinki.fi \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.