diff options
author | Mike Travis <travis@sgi.com> | 2008-05-12 15:21:13 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-08 05:31:25 -0400 |
commit | 3461b0af025251bbc6b3d56c821c6ac2de6f7209 (patch) | |
tree | 5350ad712311a69b4b59deec1ec60d8573db8817 /include/asm-x86/pda.h | |
parent | 9f248bde9d47cc177011198c9a15fb339b9f3215 (diff) |
x86: remove static boot_cpu_pda array v2
* Remove the boot_cpu_pda array and pointer table from the data section.
Allocate the pointer table and array during init. do_boot_cpu()
will reallocate the pda in node local memory and if the cpu is being
brought up before the bootmem array is released (after_bootmem = 0),
then it will free the initial pda. This will happen for all cpus
present at system startup.
This removes 512k + 32k bytes from the data section.
For inclusion into sched-devel/latest tree.
Based on:
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
+ sched-devel/latest .../mingo/linux-2.6-sched-devel.git
Signed-off-by: Mike Travis <travis@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/asm-x86/pda.h')
-rw-r--r-- | include/asm-x86/pda.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/asm-x86/pda.h b/include/asm-x86/pda.h index de2ad9ac35a9..b34e9a7cc80b 100644 --- a/include/asm-x86/pda.h +++ b/include/asm-x86/pda.h | |||
@@ -22,7 +22,8 @@ struct x8664_pda { | |||
22 | offset 40!!! */ | 22 | offset 40!!! */ |
23 | #endif | 23 | #endif |
24 | char *irqstackptr; | 24 | char *irqstackptr; |
25 | int nodenumber; /* number of current node */ | 25 | short nodenumber; /* number of current node (32k max) */ |
26 | short in_bootmem; /* pda lives in bootmem */ | ||
26 | unsigned int __softirq_pending; | 27 | unsigned int __softirq_pending; |
27 | unsigned int __nmi_count; /* number of NMI on this CPUs */ | 28 | unsigned int __nmi_count; /* number of NMI on this CPUs */ |
28 | short mmu_state; | 29 | short mmu_state; |
@@ -38,8 +39,7 @@ struct x8664_pda { | |||
38 | unsigned irq_spurious_count; | 39 | unsigned irq_spurious_count; |
39 | } ____cacheline_aligned_in_smp; | 40 | } ____cacheline_aligned_in_smp; |
40 | 41 | ||
41 | extern struct x8664_pda *_cpu_pda[]; | 42 | extern struct x8664_pda **_cpu_pda; |
42 | extern struct x8664_pda boot_cpu_pda[]; | ||
43 | extern void pda_init(int); | 43 | extern void pda_init(int); |
44 | 44 | ||
45 | #define cpu_pda(i) (_cpu_pda[i]) | 45 | #define cpu_pda(i) (_cpu_pda[i]) |