x86: Reduce memory and intra-node effects with large count NR_CPUs V2
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest10 patches 4 repliesIn review
V1->V2 from the cover letter
- Remove extraneous casts
- Add comment about node memory < NODE_MIN_SIZE
- changed pxm_to_node_map to u16
- changed memnode map entries to u16
- Fix !NUMA builds with '#ifdef CONFIG_NUMA"
- Add slight optimization to apic_is_clustered_box()
---
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/10 | x86: Change size of APICIDs from u8 to u16 V2arch/ arch/ arch/ +4 more | +34 | 0 replies | |
| 2/10 | x86: Change size of node ids from u8 to u16 V2arch/ arch/ drivers/ +3 more | +13 | 2 replies | |
| 3/10 | x86: Change NR_CPUS arrays in powernow-k8 V2arch/ | +6 | 0 replies | |
| 4/10 | x86: Change NR_CPUS arrays in intel_cacheinfo V2arch/ | +29 | 0 replies | |
| 5/10 | x86: Change NR_CPUS arrays in smpboot_64 V2arch/ | +11 | 0 replies | |
| 6/10 | x86: Change NR_CPUS arrays in topology V2arch/ include/ | +5 | 0 replies | |
| 7/10 | x86: Cleanup x86_cpu_to_apicid references V2arch/ arch/ arch/ +4 more | +21 | 0 replies | |
| 8/10 | x86: Change NR_CPUS arrays in numa_64 V2arch/ arch/ arch/ +3 more | +44 | 2 replies | |
| 9/10 | x86: Change NR_CPUS arrays in acpi-cpufreq V2arch/ | +13 | 0 replies | |
| 10/10 | x86: Change bios_cpu_apicid to percpu data variable V2arch/ arch/ arch/ +2 more | +33 | 0 replies |
Reviews trailers per patch
All 10 patches have a Reviewed-by or Acked-by of their own; the series has one for all of them.
| Patch | Christoph Lameter |
|---|---|
| Series | R-b |
| 1/10 | R-b |
| 2/10 | R-b |
| 3/10 | R-b |
| 4/10 | R-b |
| 5/10 | R-b |
| 6/10 | R-b |
| 7/10 | R-b |
| 8/10 | R-b |
| 9/10 | R-b |
| 10/10 | R-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH 00/10] x86: Reduce memory and intra-node effects with large count NR_CPUs V2
This patchset addresses the kernel bloat that occurs when NR_CPUS is increased. The memory numbers below are with NR_CPUS = 1024 which I've been testing (4 and 32 real processors, the rest "possible" using the additional_cpus start option.) These changes are all specific to the x86 architecture, non-arch specific changes will follow.
Based on 2.6.24-rc6-mm1
---V1->V2:
- Remove extraneous casts
- Add comment about node memory < NODE_MIN_SIZE
- changed pxm_to_node_map to u16
- changed memnode map entries to u16
- Fix !NUMA builds with '#ifdef CONFIG_NUMA"
- Add slight optimization to apic_is_clustered_box()
---
The following columns are using the default x86_64 config with no modules. 32cpus is the default NR_CPUS, 1kcpus-before has NR_CPUS = 1024, and 1kcpus-after is after applying this patch.
As noticeable below there's still plenty of room for improvement... ;-)
32cpus 1kcpus-before 1kcpus-after
228 .altinstr_repl +0 .altinstr_repl +0 .altinstr_repl
1219 .altinstructio +0 .altinstructio +0 .altinstructio
717512 .bss +1542784 .bss -147456 .bss
61374 .comment +0 .comment +0 .comment
16 .con_initcall. +0 .con_initcall. +0 .con_initcall.
425256 .data +20224 .data -1024 .data
178688 .data.cachelin +12898304 .data.cachelin +0 .data.cachelin
8192 .data.init_tas +0 .data.init_tas +0 .data.init_tas
4096 .data.page_ali +0 .data.page_ali +0 .data.page_ali
27008 .data.percpu +128768 .data.percpu +128 .data.percpu
43904 .data.read_mos +8707872 .data.read_mos -4096 .data.read_mos
4 .data_nosave +0 .data_nosave +0 .data_nosave
5141 .exit.text +9 .exit.text -1 .exit.text
138480 .init.data +992 .init.data +3616 .init.data
133 .init.ramfs +0 .init.ramfs +1 .init.ramfs
3192 .init.setup +0 .init.setup +0 .init.setup
159754 .init.text +891 .init.text +13 .init.text
2288 .initcall.init +0 .initcall.init +0 .initcall.init
8 .jiffies +0 .jiffies +0 .jiffies
4512 .pci_fixup +0 .pci_fixup +0 .pci_fixup
1314438 .rodata +1312 .rodata -552 .rodata
36552 .smp_locks +256 .smp_locks +0 .smp_locks
3971848 .text +12992 .text +1781 .text
3368 .vdso +0 .vdso +0 .vdso
4 .vgetcpu_mode +0 .vgetcpu_mode +0 .vgetcpu_mode
218 .vsyscall_0 +0 .vsyscall_0 +0 .vsyscall_0
52 .vsyscall_1 +0 .vsyscall_1 +0 .vsyscall_1
91 .vsyscall_2 +0 .vsyscall_2 +0 .vsyscall_2
8 .vsyscall_3 +0 .vsyscall_3 +0 .vsyscall_3
54 .vsyscall_fn +0 .vsyscall_fn +0 .vsyscall_fn
80 .vsyscall_gtod +0 .vsyscall_gtod +0 .vsyscall_gtod
39480 __bug_table +0 __bug_table +0 __bug_table
16320 __ex_table +0 __ex_table +0 __ex_table
9160 __param +0 __param +0 __param7172678 Total +23314404 Total -147590 Total
Signature · 5 lines
-- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"[email protected]"> [email protected] </a>