mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: ebiederm@xmission.com (Eric W. Biederman)
Cc: "Keith Mannthey" <kmannth@gmail.com>,
	linux-kernel@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
	Thomas Gleixner <tglx@linutronix.de>,
	"Protasevich, Natalie" <Natalie.Protasevich@UNISYS.com>,
	akpm@osdl.org
Subject: Re: 2.6.17-mm6
Date: 06 Jul 2006 19:16:35 +0200	[thread overview]
Message-ID: <p73lkr6psb0.fsf@verdi.suse.de> (raw)
In-Reply-To: <m1u05v2st3.fsf@ebiederm.dsl.xmission.com>

ebiederm@xmission.com (Eric W. Biederman) writes:

> Andrew Morton <akpm@osdl.org> writes:
> 
> > On Wed, 5 Jul 2006 17:05:49 -0700
> > "Keith Mannthey" <kmannth@gmail.com> wrote:
> >
> >> On 7/5/06, Andrew Morton <akpm@osdl.org> wrote:
> >> > On Wed, 5 Jul 2006 16:44:57 -0700
> >> > Andrew Morton <akpm@osdl.org> wrote:
> >> >
> >> > > I guess a medium-term fix would be to add a boot parameter to override
> >> > > PERCPU_ENOUGH_ROOM - it's hard to justify increasing it permanently just
> >> > > for the benefit of the tiny minority of kernels which are hand-built with
> >> > > lots of drivers in vmlinux.
> >> 
> >> I am not really loading alot of drivers.  I am building with a ton of driver.
> >> >
> >> > That's not right, is it.  PERCPU_ENOUGH_ROOM covers vmlinux and all loaded
> >> > modules, so if vmlinux blows it all then `modprobe the-same-stuff' will
> >> > blow it as well.
> >> >
> >> > > But first let's find out where it all went.
> >> >
> >> > I agree with that person.
> >> :)
> >> 
> >> This is what I get it is diffrent that yours for sure. I am a little
> >> confused by the large offset change near the start.....?
> >
> > Yes, I had an unexplained 8k hole.  That was i386.  Your x86_64 output
> > looks OK though.
> >
> >> elm3a153:/home/keith/linux-2.6.17-mm6-orig # nm -n vmlinux | grep per_cpu
> >>...
> >> ffffffff80658000 A __per_cpu_start			It starts here
> >> ffffffff80658000 D per_cpu__init_tss			8k
> >> ffffffff8065a080 d per_cpu__idle_state		
> >> ffffffff8065a084 d per_cpu__cpu_idle_state
> >> ffffffff8065a0a0 D per_cpu__vector_irq
> >> ffffffff8065a4a0 D per_cpu__device_mce
> >> ffffffff8065a518 d per_cpu__next_check
> >> ffffffff8065a520 d per_cpu__threshold_banks
> >> ffffffff8065a550 d per_cpu__bank_map
> >> ffffffff8065a580 d per_cpu__flush_state
> >> ffffffff8065a600 D per_cpu__cpu_state
> >> ffffffff8065a620 d per_cpu__perfctr_nmi_owner
> >> ffffffff8065a624 d per_cpu__evntsel_nmi_owner
> >> ffffffff8065a640 d per_cpu__nmi_watchdog_ctlblk
> >> ffffffff8065a660 d per_cpu__last_irq_sum
> >> ffffffff8065a668 d per_cpu__alert_counter
> >> ffffffff8065a670 d per_cpu__nmi_touch
> >> ffffffff8065a680 D per_cpu__current_kprobe
> >> ffffffff8065a6a0 D per_cpu__kprobe_ctlblk
> >> ffffffff8065a7e0 D per_cpu__mmu_gathers		4k
> >> ffffffff8065b7e0 d per_cpu__runqueues			5k
> >> ffffffff8065ca60 d per_cpu__cpu_domains
> >> ffffffff8065cae0 d per_cpu__core_domains
> >> ffffffff8065cb60 d per_cpu__phys_domains
> >> ffffffff8065cbe0 d per_cpu__node_domains
> >> ffffffff8065cc60 d per_cpu__allnodes_domains
> >> ffffffff8065cce0 D per_cpu__kstat			wham - 17.5k
> >> ffffffff80661120 D per_cpu__process_counts
> >> ffffffff80661130 d per_cpu__cpu_profile_hits
> >> ffffffff80661140 d per_cpu__cpu_profile_flip
> >> ffffffff80661148 d per_cpu__tasklet_vec
> >> ffffffff80661150 d per_cpu__tasklet_hi_vec
> >> ffffffff80661158 d per_cpu__ksoftirqd
> >> ffffffff80661160 d per_cpu__tvec_bases
> >> ffffffff80661180 D per_cpu__rcu_data
> >> ffffffff80661200 D per_cpu__rcu_bh_data
> >> ffffffff80661280 d per_cpu__rcu_tasklet
> >> ffffffff806612c0 d per_cpu__hrtimer_bases
> >> ffffffff80661340 d per_cpu__kprobe_instance
> >> ffffffff80661348 d per_cpu__taskstats_seqnum
> >> ffffffff80661360 d per_cpu__ratelimits.18857
> >> ffffffff80661380 d per_cpu__committed_space
> >> ffffffff806613a0 d per_cpu__lru_add_pvecs
> >> ffffffff80661420 d per_cpu__lru_add_active_pvecs
> >> ffffffff806614a0 d per_cpu__lru_add_tail_pvecs
> >> ffffffff80661520 D per_cpu__vm_event_states
> >> ffffffff80661640 d per_cpu__reap_work
> >> ffffffff806616a0 d per_cpu__reap_node
> >> ffffffff806616c0 d per_cpu__bh_lrus
> >> ffffffff80661700 d per_cpu__bh_accounting
> >> ffffffff80661720 d per_cpu__fdtable_defer_list
> >> ffffffff806617c0 d per_cpu__blk_cpu_done
> >> ffffffff806617e0 D per_cpu__radix_tree_preloads
> >> ffffffff80661860 d per_cpu__trickle_count
> >> ffffffff80661864 d per_cpu__proc_event_counts
> >> ffffffff80661880 d per_cpu__loopback_stats
> >> ffffffff80661980 d per_cpu__sockets_in_use
> >> ffffffff80661a00 D per_cpu__softnet_data
> >> ffffffff80662000 D per_cpu__netdev_rx_stat
> >> ffffffff80662010 d per_cpu__net_rand_state
> >> ffffffff80662080 d per_cpu__flow_tables
> >> ffffffff80662100 d per_cpu__flow_hash_info
> >> ffffffff80662180 d per_cpu__flow_flush_tasklets
> >> ffffffff806621c0 d per_cpu__rt_cache_stat
> >> ffffffff80662200 d per_cpu____icmp_socket
> >> ffffffff80662208 A __per_cpu_end
> >
> > So you've been hit by the expansion of NR_IRQS which bloats kernel_stat
> > which gobbles per-cpu data.
> >
> > In 2.6.17 NR_IRQS is 244.  In -mm (due to the x86_64 genirq conversion)
> > NR_IRQS became (256 + 32 * NR_CPUS).  Hence the kstat "array" became
> > two-dimensional.  It's now O(NR_CPUS^2).
> 
> Hmm.  Perhaps it is a good thing I didn't push it to it's limit
> of 244*NR_CPUS.

Clearly it just needs to be dynamically allocated and only
for interrupts that are actually used.

e.g. a 2 level array scheme?

Just need to make sure the memory overhead for small systems stays reasonable.

> 
> > I don't know what's a sane max for NR_CPUS on x86_64, but that'll sure be a
> > showstopper if the ia64 guys try the same trick.
> 
> I think the unisys boxes are about 128 sockets.  

64 I thought. Newisys also plans 64 socket boxes.

> So 128 or 256 is the
> max at the moment.  I'm not certain where things are heading.  Big
> specialized boxes seem to be giving way to smaller systems.  Yet the
> amount that you can do with commodity hardware is getting larger,
> so I suspect it will likely be a wash.  The worst case scenario
> is that sgi will build a chipset supporting 32K cpus that works with
> both Xeons and Itaniums.

Currently x86 has a 8 bit APIC limit.  So 255 is max.

But at some point I expect it will be broken, not with sockets
but with multicores and threads.

On the other hand it might be reasonable to size the NR_CPUs
only by sockets. The would lower the memory requirements.
> 
> I'm tempted to suggest adding the following to irq_desc.
> unsigned int last_cpu_count;
> unsigned int last_cpu;

Add all the statistics to irq_desc?

-Andi


  parent reply	other threads:[~2006-07-06 17:16 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-03 10:03 2.6.17-mm6 Andrew Morton
2006-07-03 10:50 ` 2.6.17-mm6 Michal Piotrowski
2006-07-03 10:56   ` 2.6.17-mm6 Andrew Morton
2006-07-03 11:36     ` 2.6.17-mm6 Michal Piotrowski
2006-07-03 12:27       ` 2.6.17-mm6 Michal Piotrowski
2006-07-03 13:28         ` 2.6.17-mm6 Dmitry Torokhov
2006-07-03 11:00 ` 2.6.17-mm6 Reuben Farrelly
2006-07-03 11:25   ` 2.6.17-mm6 Andrew Morton
2006-07-03 12:34     ` 2.6.17-mm6 Reuben Farrelly
2006-07-03 11:39   ` 2.6.17-mm6 Andrew Morton
2006-07-03 11:41     ` 2.6.17-mm6 Reuben Farrelly
2006-07-03 12:10       ` 2.6.17-mm6 Andrew Morton
2006-07-03 13:36         ` 2.6.17-mm6 Reuben Farrelly
2006-07-03 20:21       ` 2.6.17-mm6 Andrew Morton
2006-07-03 20:31         ` 2.6.17-mm6 Reuben Farrelly
2006-07-03 12:29   ` 2.6.17-mm6 Sergey Vlasov
2006-07-03 17:25     ` 2.6.17-mm6 Jeremy Fitzhardinge
2006-07-03 19:01       ` 2.6.17-mm6 Andrew Morton
2006-07-03 12:15 ` 2.6.17-mm6 Cedric Le Goater
2006-07-03 12:17   ` 2.6.17-mm6 Heiko Carstens
2006-07-03 13:08     ` 2.6.17-mm6 Martin Peschke
2006-07-03 13:12     ` 2.6.17-mm6 Cedric Le Goater
2006-07-03 12:15 ` 2.6.17-mm6 Cedric Le Goater
2006-07-03 14:09   ` 2.6.17-mm6 Theodore Tso
2006-07-03 19:07 ` 2.6.17-mm6 Alistair John Strachan
2006-07-03 19:37   ` 2.6.17-mm6 Andrew Morton
2006-07-03 19:43     ` 2.6.17-mm6 Alistair John Strachan
2006-07-03 19:27 ` 2.6.17-mm6 Alistair John Strachan
2006-07-03 19:39   ` 2.6.17-mm6 Andrew Morton
2006-07-03 19:56     ` 2.6.17-mm6 Alistair John Strachan
2006-07-03 20:17       ` 2.6.17-mm6 Andrew Morton
2006-07-03 20:36         ` 2.6.17-mm6 Alistair John Strachan
2006-07-03 20:54           ` 2.6.17-mm6 Andrew Morton
2006-07-03 21:50             ` 2.6.17-mm6 Alistair John Strachan
2006-07-03 23:31               ` 2.6.17-mm6 Andrew Morton
2006-07-04  8:34                 ` 2.6.17-mm6 Alistair John Strachan
2006-07-04  8:49                   ` 2.6.17-mm6 Andrew Morton
2006-07-04 16:28                     ` 2.6.17-mm6 Alistair John Strachan
2006-07-05 20:37                     ` 2.6.17-mm6 john stultz
2006-07-05 20:46                       ` 2.6.17-mm6 Greg KH
2006-07-05 22:32                         ` 2.6.17-mm6 Alistair John Strachan
2006-07-06 17:31                           ` 2.6.17-mm6 john stultz
2006-07-06 19:06                             ` 2.6.17-mm6 Alistair John Strachan
2006-07-06 19:16                               ` 2.6.17-mm6 Alistair John Strachan
2006-07-06 20:02                             ` 2.6.17-mm6 Alistair John Strachan
2006-07-06 20:11                               ` 2.6.17-mm6 Greg KH
2006-07-07 20:48                                 ` 2.6.17-mm6 Alistair John Strachan
2006-07-08 16:02                                   ` 2.6.17-mm6 Alistair John Strachan
2006-07-03 22:10             ` 2.6.17-mm6 Anton Blanchard
2006-07-04 19:53 ` 2.6.17-mm6 Rafael J. Wysocki
2006-07-04 20:01   ` 2.6.17-mm6 Arjan van de Ven
2006-07-05 10:27     ` 2.6.17-mm6 Stefan Richter
2006-07-05 10:36       ` 2.6.17-mm6 Stefan Richter
2006-07-05 11:13         ` 2.6.17-mm6 Ingo Molnar
2006-07-05 21:43 ` 2.6.17-mm6 J.A. Magallón
2006-07-05 22:56   ` 2.6.17-mm6 Andrew Morton
2006-07-05 23:57     ` 2.6.17-mm6 J.A. Magallón
2006-07-06  0:02       ` 2.6.17-mm6 Andrew Morton
2006-07-06 14:36         ` 2.6.17-mm6 J.A. Magallón
2006-07-06 14:48           ` 2.6.17-mm6 J.A. Magallón
2006-07-06 21:44             ` 2.6.17-mm6 J.A. Magallón
2006-07-06 21:57               ` 2.6.17-mm6 Andrew Morton
2006-07-07 15:38                 ` 2.6.17-mm6 J.A. Magallón
2006-07-07 16:02                 ` 2.6.17-mm6 Alan Cox
2006-07-07 15:55                   ` 2.6.17-mm6 J.A. Magallón
2006-07-07 16:44                     ` 2.6.17-mm6 Alan Cox
2006-07-07 16:34                       ` 2.6.17-mm6 Randy.Dunlap
2006-07-07 17:09                         ` 2.6.17-mm6 Alan Cox
2006-07-07 17:14                           ` 2.6.17-mm6 Jeff Garzik
2006-07-07 17:22                             ` 2.6.17-mm6 David Lloyd
2006-07-07 17:23                               ` 2.6.17-mm6 Jeff Garzik
2006-07-07 17:44                             ` 2.6.17-mm6 Alan Cox
2006-07-07 17:39                               ` 2.6.17-mm6 Jeff Garzik
2006-07-07 20:03                                 ` 2.6.17-mm6 Alan Cox
2006-07-07 19:59                                   ` 2.6.17-mm6 Jeff Garzik
2006-07-07 20:23                                     ` 2.6.17-mm6 Alan Cox
2006-07-07 20:14                                       ` 2.6.17-mm6 Jeff Garzik
2006-07-07 20:42                                         ` 2.6.17-mm6 Alan Cox
2006-07-07 20:37                                           ` 2.6.17-mm6 Jeff Garzik
2006-07-07 21:09                                             ` 2.6.17-mm6 J.A. Magallón
2006-07-07 21:11                                               ` 2.6.17-mm6 Jeff Garzik
2006-07-07 21:40                                                 ` 2.6.17-mm6 J.A. Magallón
2006-07-06 23:26               ` 2.6.17-mm6 (try-3) Randy.Dunlap
     [not found] ` <a762e240607051447x3c3c6e15k9cdb38804cf13f35@mail.gmail.com>
2006-07-05 22:50   ` 2.6.17-mm6 Andrew Morton
2006-07-05 23:28     ` 2.6.17-mm6 Keith Mannthey
2006-07-05 23:44       ` 2.6.17-mm6 Andrew Morton
2006-07-05 23:48         ` 2.6.17-mm6 Andrew Morton
2006-07-06  0:05           ` 2.6.17-mm6 Keith Mannthey
2006-07-06  0:25             ` 2.6.17-mm6 Andrew Morton
2006-07-06  5:42               ` 2.6.17-mm6 Eric W. Biederman
2006-07-06  5:59                 ` 2.6.17-mm6 Andrew Morton
2006-07-06  6:31                   ` 2.6.17-mm6 Andrew Morton
2006-07-06  7:18                     ` 2.6.17-mm6 Eric W. Biederman
2006-07-06  7:25                       ` 2.6.17-mm6 Ingo Molnar
2006-07-06  8:21                         ` 2.6.17-mm6 Eric W. Biederman
2006-07-06  8:26                           ` 2.6.17-mm6 Ingo Molnar
2006-07-06  7:31                       ` 2.6.17-mm6 Arjan van de Ven
2006-07-06 16:37                         ` 2.6.17-mm6 Valdis.Kletnieks
2006-07-06 16:49                     ` 2.6.17-mm6 Eric W. Biederman
2006-07-06  6:40                   ` 2.6.17-mm6 Eric W. Biederman
2006-07-06  7:38                   ` 2.6.17-mm6 vmstat breakage Mike Galbraith
2006-07-06  8:24                     ` Andrew Morton
2006-07-06 17:16                 ` Andi Kleen [this message]
2006-07-12  3:55               ` 2.6.17-mm6 Steven Rostedt
2006-07-06 20:36 ` [-mm patch] drivers/edac/: make code static Adrian Bunk
2006-07-06 20:37 ` [-mm patch] fs/ocfs2/inode.c:ocfs2_refresh_inode(): remove unused variable Adrian Bunk
2006-07-06 20:43   ` Mark Fasheh
2006-07-06 20:37 ` [-mm patch] reiserfs: warn about the useless nolargeio option Adrian Bunk
2006-07-07  0:35   ` Hans Reiser
2006-07-06 20:37 ` [-mm patch] drivers/net/e1000/: possible cleanups Adrian Bunk
2006-07-06 20:47   ` Auke Kok
2006-07-07  7:35     ` Adrian Bunk
2006-07-07  9:17 ` 2.6.17-mm6 Reuben Farrelly
2006-07-07  9:35   ` 2.6.17-mm6 Andrew Morton
2006-07-07 21:15     ` 2.6.17-mm6 Reuben Farrelly
2006-07-07 21:38       ` 2.6.17-mm6 Andrew Morton
2006-07-07 21:42         ` 2.6.17-mm6 Martin Bligh
2006-07-07 23:06           ` 2.6.17-mm6 Andrew Morton
2006-07-08  3:46           ` 2.6.17-mm6 Badari Pulavarty
2006-07-07 23:08         ` 2.6.17-mm6 Reuben Farrelly
2006-07-07 15:24 ` 2.6.17-mm6 Reuben Farrelly
2006-07-08 20:20 ` 2.6.17-mm6: kernel/sysctl.c: PROC_FS=n compile error Adrian Bunk
2006-07-09 18:52   ` Serge E. Hallyn
2006-07-09 23:33     ` Adrian Bunk
2006-07-10 14:22       ` Serge E. Hallyn
2006-07-10 15:08       ` Serge E. Hallyn
2006-07-07 14:21 2.6.17-mm6 Martin J. Bligh

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=p73lkr6psb0.fsf@verdi.suse.de \
    --to=ak@suse.de \
    --cc=Natalie.Protasevich@UNISYS.com \
    --cc=akpm@osdl.org \
    --cc=ebiederm@xmission.com \
    --cc=kmannth@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=tglx@linutronix.de \
    /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