All of lore.kernel.org
 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: 130+ 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 ` [Ocfs2-devel] [-mm patch] fs/ocfs2/inode.c:ocfs2_refresh_inode(): remove unused variable Adrian Bunk
2006-07-06 20:37   ` Adrian Bunk
2006-07-06 20:43   ` [Ocfs2-devel] " Mark Fasheh
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
  -- strict thread matches above, loose matches on Subject: below --
2006-07-03 10:03 2.6.17-mm6 Andrew Morton
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 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.