public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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

  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox