From: Brian Gerst <brgerst@gmail.com>
To: Tejun Heo <tj@kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>,
linux-kernel@vger.kernel.org, Brian Gerst <brgerst@gmail.com>
Subject: [PATCH 14/17] x86-64: Remove load_pda_offset()
Date: Fri, 16 Jan 2009 09:16:33 -0500 [thread overview]
Message-ID: <1232115396-26367-14-git-send-email-brgerst@gmail.com> (raw)
In-Reply-To: <1232115396-26367-13-git-send-email-brgerst@gmail.com>
There is only one place now where the %gs base is changed after boot.
Move the code inline to setup_per_cpu_areas().
Signed-off-by: Brian Gerst <brgerst@gmail.com>
---
arch/x86/include/asm/percpu.h | 6 ------
arch/x86/kernel/setup_percpu.c | 20 ++++++--------------
2 files changed, 6 insertions(+), 20 deletions(-)
diff --git a/arch/x86/include/asm/percpu.h b/arch/x86/include/asm/percpu.h
index 165d527..ce980db 100644
--- a/arch/x86/include/asm/percpu.h
+++ b/arch/x86/include/asm/percpu.h
@@ -133,12 +133,6 @@ do { \
/* We can use this directly for local CPU (faster). */
DECLARE_PER_CPU(unsigned long, this_cpu_off);
-#ifdef CONFIG_X86_64
-extern void load_pda_offset(int cpu);
-#else
-static inline void load_pda_offset(int cpu) { }
-#endif
-
#endif /* !__ASSEMBLY__ */
#ifdef CONFIG_SMP
diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c
index 0ddb184..916e2cf 100644
--- a/arch/x86/kernel/setup_percpu.c
+++ b/arch/x86/kernel/setup_percpu.c
@@ -69,23 +69,12 @@ static inline void setup_node_to_cpumask_map(void) { }
#endif
/*
- * Define load_pda_offset() and per-cpu __pda for x86_64.
- * load_pda_offset() is responsible for loading the offset of pda into
- * %gs.
- *
* On SMP, pda offset also duals as percpu base address and thus it
* should be at the start of per-cpu area. To achieve this, it's
* preallocated in vmlinux_64.lds.S directly instead of using
* DEFINE_PER_CPU().
*/
#ifdef CONFIG_X86_64
-void __cpuinit load_pda_offset(int cpu)
-{
- /* Memory clobbers used to order pda/percpu accesses */
- mb();
- wrmsrl(MSR_GS_BASE, cpu_pda(cpu));
- mb();
-}
#ifndef CONFIG_SMP
DEFINE_PER_CPU(struct x8664_pda, __pda);
#endif
@@ -205,9 +194,12 @@ void __init setup_per_cpu_areas(void)
* CPU0 modified pda in the init data area, reload pda
* offset for CPU0 and clear the area for others.
*/
- if (cpu == 0)
- load_pda_offset(0);
- else
+ if (cpu == 0) {
+ /* Memory clobbers used to order pda/percpu accesses */
+ mb();
+ wrmsrl(MSR_GS_BASE, cpu_pda(0));
+ mb();
+ } else
memset(cpu_pda(cpu), 0, sizeof(*cpu_pda(cpu)));
#endif
--
1.6.1.rc1
next prev parent reply other threads:[~2009-01-16 14:19 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <73c1f2160901160610l57e31a64j56fe9544bd2fd309@mail.gmail.com>
2009-01-16 14:16 ` [PATCH 01/17] x86-64: Move irq stats from PDA to per-cpu and consolidate with 32-bit Brian Gerst
2009-01-16 14:16 ` [PATCH 02/17] x86-64: Move TLB state " Brian Gerst
2009-01-16 14:16 ` [PATCH 03/17] x86-64: Convert irqstacks to per-cpu Brian Gerst
2009-01-16 14:16 ` [PATCH 04/17] x86-64: Convert exception stacks " Brian Gerst
2009-01-16 14:16 ` [PATCH 05/17] x86-64: Move cpu number from PDA to per-cpu and consolidate with 32-bit Brian Gerst
2009-01-16 14:16 ` [PATCH 06/17] x86-64: Move current task " Brian Gerst
2009-01-16 14:16 ` [PATCH 07/17] x86-64: Move kernelstack from PDA to per-cpu Brian Gerst
2009-01-16 14:16 ` [PATCH 08/17] x86-64: Move oldrsp " Brian Gerst
2009-01-16 14:16 ` [PATCH 09/17] x86-64: Move irqcount " Brian Gerst
2009-01-16 14:16 ` [PATCH 10/17] x86-64: Move nodenumber " Brian Gerst
2009-01-16 14:16 ` [PATCH 11/17] x86-64: Move isidle " Brian Gerst
2009-01-16 14:16 ` [PATCH 12/17] x86-64: Use absolute displacements for per-cpu accesses Brian Gerst
2009-01-16 14:16 ` [PATCH 13/17] x86-64: Remove pda_init() Brian Gerst
2009-01-16 14:16 ` Brian Gerst [this message]
2009-01-16 14:16 ` [PATCH 15/17] percpu: Refactor percpu.h Brian Gerst
2009-01-16 14:16 ` [PATCH 16/17] x86-64: Remove the PDA Brian Gerst
2009-01-16 14:16 ` [PATCH 17/17] x86-64: Remove pda.h Brian Gerst
2009-01-18 4:54 ` Tejun Heo
2009-01-18 4:52 ` [PATCH 16/17] x86-64: Remove the PDA Tejun Heo
2009-01-18 7:46 ` Brian Gerst
2009-01-18 8:13 ` Tejun Heo
2009-01-18 8:41 ` Ingo Molnar
2009-01-18 4:32 ` [PATCH 13/17] x86-64: Remove pda_init() Tejun Heo
2009-01-18 5:20 ` Brian Gerst
2009-01-18 5:30 ` Tejun Heo
2009-01-18 4:22 ` [PATCH 12/17] x86-64: Use absolute displacements for per-cpu accesses Tejun Heo
[not found] ` <73c1f2160901172036m4d7bb4f8i50b6a5185a63e95@mail.gmail.com>
2009-01-18 16:42 ` Ingo Molnar
2009-01-18 17:38 ` Ingo Molnar
2009-01-18 5:05 ` [PATCH 05/17] x86-64: Move cpu number from PDA to per-cpu and consolidate with 32-bit Tejun Heo
2009-01-18 5:57 ` Brian Gerst
2009-01-18 5:59 ` Tejun Heo
2009-01-18 6:51 ` Brian Gerst
2009-01-18 7:14 ` x86/Voyager Ingo Molnar
2009-01-18 16:41 ` x86/Voyager James Bottomley
2009-01-18 17:41 ` x86/Voyager Brian Gerst
2009-01-18 18:04 ` x86/Voyager James Bottomley
2009-01-18 18:21 ` x86/Voyager Brian Gerst
2009-01-18 18:17 ` x86/Voyager Ingo Molnar
2009-01-18 20:11 ` x86/Voyager James Bottomley
2009-01-18 21:33 ` x86/Voyager Ingo Molnar
2009-01-18 4:58 ` [PATCH 03/17] x86-64: Convert irqstacks to per-cpu Tejun Heo
2009-01-18 5:05 ` Brian Gerst
2009-01-18 5:08 ` Tejun Heo
2009-01-18 8:36 ` Ingo Molnar
2009-01-18 9:04 ` Tejun Heo
2009-01-18 9:16 ` Ingo Molnar
2009-01-18 5:01 ` Tejun Heo
2009-01-20 13:15 ` [PATCH 1/6] x86: Clean up gdt_page definition Brian Gerst
2009-01-20 13:15 ` [PATCH 2/6] x86-64: Fix percpu_write with 64-bit constants Brian Gerst
2009-01-20 13:15 ` [PATCH 3/6] x86-32: Set %fs to __KERNEL_PERCPU unconditionally Brian Gerst
2009-01-20 13:15 ` [PATCH 4/6] x86: Merge mmu_context.h Brian Gerst
2009-01-21 1:31 ` Tejun Heo
2009-01-21 8:21 ` Tejun Heo
2009-01-20 13:15 ` [PATCH 5/6] x86: Merge hardirq.h Brian Gerst
2009-01-21 8:19 ` Tejun Heo
2009-01-21 8:50 ` Tejun Heo
2009-01-21 10:14 ` Ingo Molnar
2009-01-21 10:13 ` Ingo Molnar
2009-01-21 11:33 ` Tejun Heo
2009-01-21 14:21 ` Tilman Schmidt
2009-01-20 13:15 ` [PATCH 6/6] x86: Merge irq_regs.h Brian Gerst
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=1232115396-26367-14-git-send-email-brgerst@gmail.com \
--to=brgerst@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tj@kernel.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
Powered by JetHome