irqdomain: Simple NUMA awareness.
authorPaul Mundt <lethal@linux-sh.org>
Mon, 4 Jun 2012 05:04:34 +0000 (22:04 -0700)
committerGrant Likely <grant.likely@secretlab.ca>
Fri, 15 Jun 2012 18:08:00 +0000 (12:08 -0600)
commit5ca4db61e859526b2dbee3bcea3626d3de49a0b2
treeabbe2bc14d1de334834b1c5ace2cbbaf2b7c1b45
parentefd68e7254503f3207805f674a1ea1d743f5dfe2
irqdomain: Simple NUMA awareness.

While common irqdesc allocation is node aware, the irqdomain code is not.

Presently we observe a number of regressions/inconsistencies on
NUMA-capable platforms:

- Platforms using irqdomains with legacy mappings, where the
  irq_descs are allocated node-local and the irqdomain data
  structure is not.

- Drivers implementing irqdomains will lose node locality
  regardless of the underlying struct device's node id.

This plugs in NUMA node id proliferation across the various allocation
callsites by way of_node_to_nid() node lookup. While of_node_to_nid()
does the right thing for OF-capable platforms it doesn't presently handle
the non-DT case. This is trivially dealt with by simply wraping in to
numa_node_id() unconditionally.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
include/linux/of.h
kernel/irq/irqdomain.c