All of lore.kernel.org
 help / color / mirror / Atom feed
From: travis@sgi.com
To: Andrew Morton <akpm@linux-foundation.org>,
	Andi Kleen <ak@suse.de>,
	mingo@elte.hu
Cc: Eric Dumazet <dada1@cosmosbay.com>,
	Christoph Lameter <clameter@sgi.com>,
	Jack Steiner <steiner@sgi.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: [PATCH 00/10] x86: Reduce memory and intra-node effects with large count NR_CPUs V3
Date: Wed, 16 Jan 2008 09:09:02 -0800	[thread overview]
Message-ID: <20080116170902.006151000@sgi.com> (raw)


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

Signed-off-by: Mike Travis <travis@sgi.com>
Reviewed-by: Christoph Lameter <clameter@sgi.com>
---
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()

V2->V3:
    - add early_cpu_to_node function to keep cpu_to_node efficient
    - move and rename smp_set_apicids() to setup_percpu_maps()
    - call setup_percpu_maps() as early as possible
    - changed memnode.embedded_map from [64-16] to [64-8]
      (and size comment to 128 bytes)
---

[Updated memory usage table.]

The following columns are using the SuSE default x86_64 config
[which has NR_CPUS=128] and NR_CPUS=1024.  There are no modules
in either.  Each column's percentage is relative to the first.

128cpus			1kcpus-before		1kcpus-after
       228 .altinstr_re        228 +0%		       228 +0%
      1219 .altinstruct       1219 +0%		      1219 +0%
    866632 .bss		   2260296 +160%	   2112968 +143%
     61374 .comment	     61374 +0%		     61374 +0%
	16 .con_initcal 	16 +0%			16 +0%
    427560 .data	    445480 +4%		    444200 +3%
   1165824 .data.cachel   13076992 +1021%	  13076992 +1021%
      8192 .data.init_t       8192 +0%		      8192 +0%
      4096 .data.page_a       4096 +0%		      4096 +0%
     39296 .data.percpu     155776 +296%	    155904 +296%
    188992 .data.read_m    8751776 +4530%	   8747680 +4528%
	 4 .data_nosave 	 4 +0%			 4 +0%
      5141 .exit.text	      5150 +0%		      5149 +0%
    138576 .init.data	    139472 +0%		    145424 +4%
       134 .init.ramfs	       134 +0%		       134 +0%
      3192 .init.setup	      3192 +0%		      3192 +0%
    160143 .init.text	    160643 +0%		    160914 +0%
      2288 .initcall.in       2288 +0%		      2288 +0%
	 8 .jiffies		 8 +0%			 8 +0%
      4512 .pci_fixup	      4512 +0%		      4512 +0%
   1314318 .rodata	   1315630 +0%		   1315305 +0%
     36856 .smp_locks	     36808 +0%		     36800 +0%
   3975021 .text	   3984829 +0%		   3987389 +0%
      3368 .vdso	      3368 +0%		      3368 +0%
	 4 .vgetcpu_mod 	 4 +0%			 4 +0%
       218 .vsyscall_0	       218 +0%		       218 +0%
	52 .vsyscall_1		52 +0%			52 +0%
	91 .vsyscall_2		91 +0%			91 +0%
	 8 .vsyscall_3		 8 +0%			 8 +0%
	54 .vsyscall_fn 	54 +0%			54 +0%
	80 .vsyscall_gt 	80 +0%			80 +0%
     39480 __bug_table	     39480 +0%		     39480 +0%
     16320 __ex_table	     16320 +0%		     16320 +0%
      9160 __param	      9160 +0%		      9160 +0%
						
   1818299 Text		   1834603 +0%		   1834859 +0%
   3975021 Data		   3984829 +0%		   3987389 +0%
    866632 Bss		   2260296 +160%	   2112968 +143%
    360448 InitData	    483328 +34%		    487424 +35%
   1415640 OtherData	  21885912 +1446%	  21883096 +1445%
     39296 PerCpu	    155776 +0%		    155904 +0%
   8472457 Total	  30486950 +259%	  30342823 +258%


[Note that the sum of the last 6 lines may not equal "Total" as some
sections may contain others (eg., InitData contains PerCpu data.)]

-- 

WARNING: multiple messages have this Message-ID (diff)
From: travis@sgi.com
To: Andrew Morton <akpm@linux-foundation.org>,
	Andi Kleen <ak@suse.de>,
	mingo@elte.hu
Cc: Eric Dumazet <dada1@cosmosbay.com>,
	Christoph Lameter <clameter@sgi.com>,
	Jack Steiner <steiner@sgi.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: [PATCH 00/10] x86: Reduce memory and intra-node effects with large count NR_CPUs V3
Date: Wed, 16 Jan 2008 09:09:02 -0800	[thread overview]
Message-ID: <20080116170902.006151000@sgi.com> (raw)

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

Signed-off-by: Mike Travis <travis@sgi.com>
Reviewed-by: Christoph Lameter <clameter@sgi.com>
---
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()

V2->V3:
    - add early_cpu_to_node function to keep cpu_to_node efficient
    - move and rename smp_set_apicids() to setup_percpu_maps()
    - call setup_percpu_maps() as early as possible
    - changed memnode.embedded_map from [64-16] to [64-8]
      (and size comment to 128 bytes)
---

[Updated memory usage table.]

The following columns are using the SuSE default x86_64 config
[which has NR_CPUS=128] and NR_CPUS=1024.  There are no modules
in either.  Each column's percentage is relative to the first.

128cpus			1kcpus-before		1kcpus-after
       228 .altinstr_re        228 +0%		       228 +0%
      1219 .altinstruct       1219 +0%		      1219 +0%
    866632 .bss		   2260296 +160%	   2112968 +143%
     61374 .comment	     61374 +0%		     61374 +0%
	16 .con_initcal 	16 +0%			16 +0%
    427560 .data	    445480 +4%		    444200 +3%
   1165824 .data.cachel   13076992 +1021%	  13076992 +1021%
      8192 .data.init_t       8192 +0%		      8192 +0%
      4096 .data.page_a       4096 +0%		      4096 +0%
     39296 .data.percpu     155776 +296%	    155904 +296%
    188992 .data.read_m    8751776 +4530%	   8747680 +4528%
	 4 .data_nosave 	 4 +0%			 4 +0%
      5141 .exit.text	      5150 +0%		      5149 +0%
    138576 .init.data	    139472 +0%		    145424 +4%
       134 .init.ramfs	       134 +0%		       134 +0%
      3192 .init.setup	      3192 +0%		      3192 +0%
    160143 .init.text	    160643 +0%		    160914 +0%
      2288 .initcall.in       2288 +0%		      2288 +0%
	 8 .jiffies		 8 +0%			 8 +0%
      4512 .pci_fixup	      4512 +0%		      4512 +0%
   1314318 .rodata	   1315630 +0%		   1315305 +0%
     36856 .smp_locks	     36808 +0%		     36800 +0%
   3975021 .text	   3984829 +0%		   3987389 +0%
      3368 .vdso	      3368 +0%		      3368 +0%
	 4 .vgetcpu_mod 	 4 +0%			 4 +0%
       218 .vsyscall_0	       218 +0%		       218 +0%
	52 .vsyscall_1		52 +0%			52 +0%
	91 .vsyscall_2		91 +0%			91 +0%
	 8 .vsyscall_3		 8 +0%			 8 +0%
	54 .vsyscall_fn 	54 +0%			54 +0%
	80 .vsyscall_gt 	80 +0%			80 +0%
     39480 __bug_table	     39480 +0%		     39480 +0%
     16320 __ex_table	     16320 +0%		     16320 +0%
      9160 __param	      9160 +0%		      9160 +0%
						
   1818299 Text		   1834603 +0%		   1834859 +0%
   3975021 Data		   3984829 +0%		   3987389 +0%
    866632 Bss		   2260296 +160%	   2112968 +143%
    360448 InitData	    483328 +34%		    487424 +35%
   1415640 OtherData	  21885912 +1446%	  21883096 +1445%
     39296 PerCpu	    155776 +0%		    155904 +0%
   8472457 Total	  30486950 +259%	  30342823 +258%


[Note that the sum of the last 6 lines may not equal "Total" as some
sections may contain others (eg., InitData contains PerCpu data.)]

-- 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

             reply	other threads:[~2008-01-16 17:10 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-16 17:09 travis [this message]
2008-01-16 17:09 ` [PATCH 00/10] x86: Reduce memory and intra-node effects with large count NR_CPUs V3 travis
2008-01-16 17:09 ` [PATCH 01/10] x86: Change size of APICIDs from u8 to u16 V3 travis
2008-01-16 17:09   ` travis
2008-01-16 17:09 ` [PATCH 02/10] x86: Change size of node ids " travis
2008-01-16 17:09   ` travis
2008-01-16 17:53   ` Eric Dumazet
2008-01-16 17:53     ` Eric Dumazet
2008-01-16 18:10     ` Mike Travis
2008-01-16 18:10       ` Mike Travis
2008-01-16 19:16     ` Mike Travis
2008-01-16 19:16       ` Mike Travis
2008-01-16 20:37       ` Eric Dumazet
2008-01-16 20:37         ` Eric Dumazet
2008-01-16 17:09 ` [PATCH 03/10] x86: Change NR_CPUS arrays in powernow-k8 V3 travis
2008-01-16 17:09   ` travis
2008-01-16 17:09 ` [PATCH 04/10] x86: Change NR_CPUS arrays in intel_cacheinfo V3 travis
2008-01-16 17:09   ` travis
2008-01-16 17:09 ` [PATCH 05/10] x86: Change NR_CPUS arrays in smpboot_64 V3 travis
2008-01-16 17:09   ` travis
2008-01-16 17:09 ` [PATCH 06/10] x86: Change NR_CPUS arrays in topology V3 travis
2008-01-16 17:09   ` travis
2008-01-16 17:09 ` [PATCH 07/10] x86: Cleanup x86_cpu_to_apicid references V3 travis
2008-01-16 17:09   ` travis
2008-01-16 17:09 ` [PATCH 08/10] x86: Change NR_CPUS arrays in numa_64 V3 travis
2008-01-16 17:09   ` travis
2008-01-16 17:09 ` [PATCH 09/10] x86: Change NR_CPUS arrays in acpi-cpufreq V3 travis
2008-01-16 17:09   ` travis
2008-01-16 17:09 ` [PATCH 10/10] x86: Change bios_cpu_apicid to percpu data variable V3 travis
2008-01-16 17:09   ` travis
2008-01-16 18:01 ` [PATCH 00/10] x86: Reduce memory and intra-node effects with large count NR_CPUs V3 Frans Pop
2008-01-16 18:01   ` Frans Pop
2008-01-16 18:14   ` Mike Travis
2008-01-16 18:14     ` Mike Travis

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=20080116170902.006151000@sgi.com \
    --to=travis@sgi.com \
    --cc=ak@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=clameter@sgi.com \
    --cc=dada1@cosmosbay.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mingo@elte.hu \
    --cc=steiner@sgi.com \
    /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.