All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Daney <ddaney@caviumnetworks.com>
To: Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-mips <linux-mips@linux-mips.org>,
	Mike Travis <travis@sgi.com>
Subject: [Resend PATCH 0/2] cpumask fallout: Initialize irq_default_affinity earlier et al. (v3)
Date: Tue, 27 Jan 2009 09:48:34 -0800	[thread overview]
Message-ID: <497F48F2.90309@caviumnetworks.com> (raw)

This seems to have fallen through the cracks, so I am resending:

Now that mips/OCTEON support has been merged, this patch set has
slightly more urgency.

The interrupt affinity on OCTEON is determined by
irq_default_affinity, as that is what the code in kernel/irq/manage.c
uses to set affinity.  Since for the majority of devices (Serial,
Compact Flash, Network...) we want interrupts to be handled on a
single CPU, we set irq_default_affinity to the boot CPU in init_IRQ().
The problem we have is that with the new cpumask infrastructure,
irq_default_affinity is being initialized in core_initcall which
undoes our initialization.

As I said in 2/2:

    Move the initialization of irq_default_affinity to early_irq_init
    as core_initcall is too late.

    irq_default_affinity can be used in init_IRQ and potentially timer
    and SMP init as well.  All of these happen before core_initcall.
    Moving the initialization to early_irq_init ensures that it is
    initialized before it is used.

Mike Travis pointed out that irq_default_affinity depends on
CONFIG_GENERIC_HARDIRQS in addition to CONFIG_SMP.  So to make things
consistent, I added 1/2 so that the irq_*_affinity functions and
irq_default_affinity are defined for the same conditions that they are
declared.

I Took Linus' suggestion to move init_irq_default_affinity over to
kernel/irq/handle.c, however due to the way that cpumask_*() are
defined, it is still necessary to have the ugly ifdefs, but now they
are localized to init_irq_default_affinity.

Mike Travis also suggested that alloc_bootmem_cpumask_var() be used in
preference to alloc_cpumask_var, so I incorporated that suggestion as
well.

I tested both with and without CONFIG_SMP, on mips/cavium_octeon, Mike
tested a similar(but not identical patch) on x86_64.

Changes from v2 of this set are just a small rearrangement of the
#ifdefs suggested by Ihar Hrachyshka that make the code look a bit
cleaner.


I will reply with the two patches.

David Daney (2):
  Make irq_*_affinity depend on CONFIG_GENERIC_HARDIRQS too.
  cpumask fallout: Initialize irq_default_affinity earlier (v3).

 kernel/irq/handle.c |   16 ++++++++++++++++
 kernel/irq/manage.c |   10 +---------
 2 files changed, 17 insertions(+), 9 deletions(-)

             reply	other threads:[~2009-01-27 17:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-27 17:48 David Daney [this message]
2009-01-27 17:53 ` [PATCH 1/2] Make irq_*_affinity depend on CONFIG_GENERIC_HARDIRQS too David Daney
2009-01-27 17:53 ` [PATCH 2/2] cpumask fallout: Initialize irq_default_affinity earlier (v3) David Daney

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=497F48F2.90309@caviumnetworks.com \
    --to=ddaney@caviumnetworks.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=torvalds@linux-foundation.org \
    --cc=travis@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.