All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Mike Travis <travis@sgi.com>, Andrew Morton <akpm@linux-foundation.org>
Cc: Ingo Molnar <mingo@redhat.com>,
	Rusty Russell <rusty@rustcorp.com.au>,
	Yinghai Lu <yinghai@kernel.org>, Jack Steiner <steiner@sgi.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/4] kstat: modify kstat_irqs_legacy to be variable sized
Date: Sat, 10 Jan 2009 23:52:29 +0100	[thread overview]
Message-ID: <20090110225229.GE17917@elte.hu> (raw)
In-Reply-To: <20090110223819.033438000@polaris-admin.engr.sgi.com>


* Mike Travis <travis@sgi.com> wrote:

> Impact: reduce memory usage.
> 
> Allocate kstat_irqs_legacy based on nr_cpu_ids to deal with this
> memory usage bump when NR_CPUS bumped from 128 to 4096:
> 
>      8192   +253952    262144 +3100%  kstat_irqs_legacy(.bss)
> 
> This is only when CONFIG_SPARSE_IRQS=y.
> 
> Signed-off-by: Mike Travis <travis@sgi.com>
> ---
>  kernel/irq/handle.c |    9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> --- linux-2.6-for-ingo.orig/kernel/irq/handle.c
> +++ linux-2.6-for-ingo/kernel/irq/handle.c
> @@ -124,8 +124,7 @@ static struct irq_desc irq_desc_legacy[N
>  	}
>  };
>  
> -/* FIXME: use bootmem alloc ...*/
> -static unsigned int kstat_irqs_legacy[NR_IRQS_LEGACY][NR_CPUS];
> +static unsigned int *kstat_irqs_legacy;
>  
>  int __init early_irq_init(void)
>  {
> @@ -146,9 +145,13 @@ int __init early_irq_init(void)
>  	/* allocate irq_desc_ptrs array based on nr_irqs */
>  	irq_desc_ptrs = alloc_bootmem(nr_irqs * sizeof(void *));
>  
> +	/* allocate based on nr_cpu_ids */
> +	kstat_irqs_legacy = alloc_bootmem(NR_IRQS_LEGACY * nr_cpu_ids *
> +					  sizeof(int));
> +
>  	for (i = 0; i < legacy_count; i++) {
>  		desc[i].irq = i;
> -		desc[i].kstat_irqs = kstat_irqs_legacy[i];
> +		desc[i].kstat_irqs = kstat_irqs_legacy + i * NR_IRQS_LEGACY;
>  		lockdep_set_class(&desc[i].lock, &irq_desc_lock_class);
>  		init_alloc_desc_masks(&desc[i], 0, true);
>  		irq_desc_ptrs[i] = desc + i;

btw., while at it - dont we want to upgrade this to a 'long' (in a 
separate commit)? Having more than 4 billion irqs after bootup is easily 
possible.

	Ingo

  reply	other threads:[~2009-01-10 22:53 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-10 22:38 [PATCH 0/4] irq: change irq_desc and kstat_irq_legacy to variable sized arrays Mike Travis
2009-01-10 22:38 ` [PATCH 1/4] irq: change references from NR_IRQS to nr_irqs Mike Travis
2009-01-10 22:45   ` Ingo Molnar
2009-01-10 23:10     ` Mike Travis
2009-01-11  1:06       ` Ingo Molnar
2009-01-10 22:38 ` [PATCH 2/4] irq: allocate irq_desc_ptrs array based on nr_irqs Mike Travis
2009-01-10 22:47   ` Ingo Molnar
2009-01-10 23:03     ` Mike Travis
2009-01-11  1:06       ` Ingo Molnar
2009-01-10 22:38 ` [PATCH 3/4] irq: initialize nr_irqs based on nr_cpu_ids Mike Travis
2009-01-10 22:50   ` Ingo Molnar
2009-01-10 23:20     ` Mike Travis
2009-01-11  1:07       ` Ingo Molnar
2009-01-11  2:00     ` Mike Travis
2009-01-10 22:38 ` [PATCH 4/4] kstat: modify kstat_irqs_legacy to be variable sized Mike Travis
2009-01-10 22:52   ` Ingo Molnar [this message]
2009-01-10 23:08     ` Mike Travis
2009-01-11  1:08       ` Ingo Molnar
2009-01-11  4:32         ` Mike Travis
2009-01-11  7:01   ` Yinghai Lu
2009-01-11 12:17     ` Ingo Molnar
2009-01-11 17:50       ` Mike Travis
2009-01-11 17:40     ` Mike Travis
2009-01-11 17:48       ` Mike Travis
2009-01-10 22:43 ` [PATCH 0/4] irq: change irq_desc and kstat_irq_legacy to variable sized arrays Ingo Molnar
2009-01-11  0:15   ` Mike Travis
2009-01-11  1:10     ` Ingo Molnar
2009-01-11  1:19       ` 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=20090110225229.GE17917@elte.hu \
    --to=mingo@elte.hu \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=rusty@rustcorp.com.au \
    --cc=steiner@sgi.com \
    --cc=travis@sgi.com \
    --cc=yinghai@kernel.org \
    /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.