mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@osdl.org>
To: "Keith Mannthey" <kmannth@gmail.com>
Cc: linux-kernel@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
	Thomas Gleixner <tglx@linutronix.de>,
	"Eric W. Biederman" <ebiederm@xmission.com>
Subject: Re: 2.6.17-mm6
Date: Wed, 5 Jul 2006 17:25:45 -0700	[thread overview]
Message-ID: <20060705172545.815872b6.akpm@osdl.org> (raw)
In-Reply-To: <a762e240607051705h33952e5elf6bd09c1ccea8ab4@mail.gmail.com>

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).

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 guess one fix would be to de-percpuify kernel_stat.irqs[].  Or
dynamically allocate it with alloc_percpu().

(cc's people, runs away)

  reply	other threads:[~2006-07-06  0:26 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             ` Andrew Morton [this message]
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                 ` 2.6.17-mm6 Andi Kleen
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=20060705172545.815872b6.akpm@osdl.org \
    --to=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