All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Jiang Liu <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: mingo@kernel.org, yinghai@kernel.org, tony.luck@intel.com,
	bp@alien8.de, linux-kernel@vger.kernel.org, hpa@zytor.com,
	cernekee@gmail.com, rdunlap@infradead.org,
	konrad.wilk@oracle.com, jason@lakedaemon.net,
	jiang.liu@linux.intel.com, arnd@arndb.de,
	benh@kernel.crashing.org, tglx@linutronix.de,
	bhelgaas@google.com
Subject: [tip:irq/urgent] genirq: Move field 'node' from irq_data into irq_common_data
Date: Wed, 16 Sep 2015 13:56:00 -0700	[thread overview]
Message-ID: <tip-449e9cae58b06be1293858ec8e5d8cb728238baa@git.kernel.org> (raw)
In-Reply-To: <1433145945-789-8-git-send-email-jiang.liu@linux.intel.com>

Commit-ID:  449e9cae58b06be1293858ec8e5d8cb728238baa
Gitweb:     http://git.kernel.org/tip/449e9cae58b06be1293858ec8e5d8cb728238baa
Author:     Jiang Liu <jiang.liu@linux.intel.com>
AuthorDate: Mon, 1 Jun 2015 16:05:16 +0800
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Wed, 16 Sep 2015 15:46:49 +0200

genirq: Move field 'node' from irq_data into irq_common_data

NUMA node information is per-irq instead of per-irqchip, so move it into
struct irq_common_data. Also use CONFIG_NUMA to guard irq_common_data.node.

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Kevin Cernekee <cernekee@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Link: http://lkml.kernel.org/r/1433145945-789-8-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 include/linux/irq.h    | 17 ++++++++++++++---
 kernel/irq/internals.h |  2 +-
 kernel/irq/irqdesc.c   |  4 +++-
 kernel/irq/irqdomain.c |  1 -
 4 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/include/linux/irq.h b/include/linux/irq.h
index e54ae82..ebcc5c6 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -129,9 +129,13 @@ struct irq_domain;
  * struct irq_common_data - per irq data shared by all irqchips
  * @state_use_accessors: status information for irq chip functions.
  *			Use accessor functions to deal with it
+ * @node:		node index useful for balancing
  */
 struct irq_common_data {
 	unsigned int		state_use_accessors;
+#ifdef CONFIG_NUMA
+	unsigned int		node;
+#endif
 };
 
 /**
@@ -139,7 +143,6 @@ struct irq_common_data {
  * @mask:		precomputed bitmask for accessing the chip registers
  * @irq:		interrupt number
  * @hwirq:		hardware interrupt number, local to the interrupt domain
- * @node:		node index useful for balancing
  * @common:		point to data shared by all irqchips
  * @chip:		low level interrupt hardware access
  * @domain:		Interrupt translation domain; responsible for mapping
@@ -156,7 +159,6 @@ struct irq_data {
 	u32			mask;
 	unsigned int		irq;
 	unsigned long		hwirq;
-	unsigned int		node;
 	struct irq_common_data	*common;
 	struct irq_chip		*chip;
 	struct irq_domain	*domain;
@@ -664,9 +666,18 @@ static inline u32 irq_get_trigger_type(unsigned int irq)
 	return d ? irqd_get_trigger_type(d) : 0;
 }
 
-static inline int irq_data_get_node(struct irq_data *d)
+static inline int irq_common_data_get_node(struct irq_common_data *d)
 {
+#ifdef CONFIG_NUMA
 	return d->node;
+#else
+	return 0;
+#endif
+}
+
+static inline int irq_data_get_node(struct irq_data *d)
+{
+	return irq_common_data_get_node(d->common);
 }
 
 static inline struct cpumask *irq_get_affinity_mask(int irq)
diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
index eee4b38..5ef0c2d 100644
--- a/kernel/irq/internals.h
+++ b/kernel/irq/internals.h
@@ -194,7 +194,7 @@ static inline void kstat_incr_irqs_this_cpu(struct irq_desc *desc)
 
 static inline int irq_desc_get_node(struct irq_desc *desc)
 {
-	return irq_data_get_node(&desc->irq_data);
+	return irq_common_data_get_node(&desc->irq_common_data);
 }
 
 #ifdef CONFIG_PM_SLEEP
diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
index 0a2a4b6..7f3e9fa 100644
--- a/kernel/irq/irqdesc.c
+++ b/kernel/irq/irqdesc.c
@@ -52,11 +52,13 @@ static int alloc_masks(struct irq_desc *desc, gfp_t gfp, int node)
 
 static void desc_smp_init(struct irq_desc *desc, int node)
 {
-	desc->irq_data.node = node;
 	cpumask_copy(desc->irq_data.affinity, irq_default_affinity);
 #ifdef CONFIG_GENERIC_PENDING_IRQ
 	cpumask_clear(desc->pending_mask);
 #endif
+#ifdef CONFIG_NUMA
+	desc->irq_common_data.node = node;
+#endif
 }
 
 #else
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
index 79baaf8..dc9d27c 100644
--- a/kernel/irq/irqdomain.c
+++ b/kernel/irq/irqdomain.c
@@ -844,7 +844,6 @@ static struct irq_data *irq_domain_insert_irq_data(struct irq_domain *domain,
 		child->parent_data = irq_data;
 		irq_data->irq = child->irq;
 		irq_data->common = child->common;
-		irq_data->node = child->node;
 		irq_data->domain = domain;
 	}
 

  reply	other threads:[~2015-09-16 20:57 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-01  8:05 [Patch v3 00/36] Split struct irq_data into common part and per-chip part Jiang Liu
2015-06-01  8:05 ` [Patch v3 01/36] genirq: Enhance irq_data_to_desc() to support hierarchy irqdomain Jiang Liu
2015-06-16  8:16   ` [tip:x86/apic] " tip-bot for Jiang Liu
2015-06-20 17:18   ` [tip:irq/core] " tip-bot for Jiang Liu
2015-06-01  8:05 ` [Patch v3 02/36] genirq: Fix crash caused by irq_move_irq() when hierarch irqdomain is enabled Jiang Liu
2015-06-16  7:31   ` [tip:x86/apic] genirq: Prevent crash in irq_move_irq() tip-bot for Jiang Liu
2015-06-16  7:47     ` Jiang Liu
2015-06-16  8:12       ` Thomas Gleixner
2015-06-16  8:25         ` Jiang Liu
2015-06-16  8:16   ` tip-bot for Jiang Liu
2015-06-20 17:19   ` [tip:irq/core] " tip-bot for Jiang Liu
2015-06-01  8:05 ` [Patch v3 03/36] genirq: Introduce struct irq_common_data to host shared irq data Jiang Liu
2015-06-20 17:19   ` [tip:irq/core] " tip-bot for Jiang Liu
2015-06-01  8:05 ` [Patch v3 04/36] genirq: Introduce helper function irq_data_get_node() Jiang Liu
2015-06-20 17:19   ` [tip:irq/core] " tip-bot for Jiang Liu
2015-06-01  8:05 ` [Patch v3 05/36] x86, irq: Use accessor irq_data_get_node() to hide struct irq_data detail Jiang Liu
2015-06-01  8:05 ` [Patch v3 06/36] sh, " Jiang Liu
2015-06-01  8:05   ` Jiang Liu
2015-06-01  8:05 ` [Patch v3 07/36] genirq: Move field 'node' from struct irq_data into struct irq_common_data Jiang Liu
2015-09-16 20:56   ` tip-bot for Jiang Liu [this message]
2015-06-01  8:05 ` [Patch v3 08/36] sparc, irq: Use helper irq_data_get_irq_handler_data() to hide irq_desc details Jiang Liu
2015-06-01  8:05   ` Jiang Liu
2015-07-31 21:53   ` [tip:irq/core] sparc/irq: Use helper irq_data_get_irq_handler_data() tip-bot for Jiang Liu
2015-06-01  8:05 ` [Patch v3 09/36] x86, irq: Use helper irq_data_get_irq_handler_data() to hide irq_desc details Jiang Liu
2015-06-01  8:05 ` [Patch v3 10/36] " Jiang Liu
2015-06-01  8:05 ` [Patch v3 11/36] sh, " Jiang Liu
2015-06-01  8:05   ` Jiang Liu
2015-06-01 11:38   ` Sergei Shtylyov
2015-06-01 11:38     ` Sergei Shtylyov
2015-06-01 13:53     ` Jiang Liu
2015-06-01 13:53       ` Jiang Liu
2015-06-01  8:05 ` [Patch v3 12/36] genirq: Move field 'handler_data' from struct irq_data into struct irq_common_data Jiang Liu
2015-09-16 20:56   ` [tip:irq/urgent] genirq: Move field 'handler_data' from irq_data into irq_common_data tip-bot for Jiang Liu
2015-06-01  8:05 ` [Patch v3 13/36] mn10300: Fix incorrect use of data->affinity Jiang Liu
2015-06-26 19:49   ` [tip:irq/urgent] mn10300: Fix incorrect use of irq_data->affinity tip-bot for Jiang Liu
2015-06-01  8:05 ` [Patch v3 14/36] genirq: Introduce helper function irq_data_get_affinity_mask() Jiang Liu
2015-06-20 17:19   ` [tip:irq/core] " tip-bot for Jiang Liu
2015-06-01  8:05 ` [Patch v3 15/36] alpha, irq: Use access helper irq_data_get_affinity_mask() Jiang Liu
2015-06-01  8:05 ` [Patch v3 16/36] ARM, " Jiang Liu
2015-06-01  8:05   ` Jiang Liu
2015-06-01  8:05 ` [Patch v3 17/36] ARM64, " Jiang Liu
2015-06-01  8:05   ` Jiang Liu
2015-06-02  6:25   ` Hanjun Guo
2015-06-02  6:25     ` Hanjun Guo
2015-06-02  6:25     ` Hanjun Guo
2015-06-01  8:05 ` [Patch v3 18/36] blackfin, " Jiang Liu
2015-06-01  8:05 ` [Patch v3 19/36] IA64, " Jiang Liu
2015-06-01  8:05   ` Jiang Liu
2015-06-01  8:05 ` [Patch v3 20/36] metag, " Jiang Liu
2015-06-01  8:05 ` [Patch v3 21/36] mips, " Jiang Liu
2015-06-05  8:46   ` Ralf Baechle
2015-06-01  8:05 ` [Patch v3 22/36] mn10300, " Jiang Liu
2015-07-31 21:53   ` [tip:irq/core] mn10300/irq: " tip-bot for Jiang Liu
2015-06-01  8:05 ` [Patch v3 23/36] parisc, irq: " Jiang Liu
2015-07-31 21:53   ` [tip:irq/core] parisc/irq: " tip-bot for Jiang Liu
2015-06-01  8:05 ` [Patch v3 24/36] powerpc, irq: " Jiang Liu
2015-09-15 15:47   ` [tip:irq/urgent] " tip-bot for Jiang Liu
2015-06-01  8:05 ` [Patch v3 25/36] sh, " Jiang Liu
2015-06-01  8:05   ` Jiang Liu
2015-06-01  8:05 ` [Patch v3 26/36] sparc, " Jiang Liu
2015-06-01  8:05   ` Jiang Liu
2015-07-31 21:54   ` [tip:irq/core] sparc/irq: " tip-bot for Jiang Liu
2015-06-01  8:05 ` [Patch v3 27/36] x86, irq: " Jiang Liu
2015-06-01  8:05 ` Jiang Liu
2015-06-02 19:19   ` Thomas Gleixner
2015-06-02 19:19   ` Thomas Gleixner
2015-06-03  1:53     ` Jiang Liu
2015-06-03  1:53     ` Jiang Liu
2015-06-03  3:46     ` Jiang Liu
2015-06-03  3:46     ` Jiang Liu
2015-06-01  8:05 ` [Patch v3 28/36] xtensa, " Jiang Liu
2015-06-01  8:05 ` [Patch v3 29/36] irqchip, " Jiang Liu
2015-07-11 21:38   ` [tip:irq/core] irqchip/mips-gic: " tip-bot for Jiang Liu
2015-06-01  8:05 ` [Patch v3 30/36] net/mlx4: Cache irq_desc->affinity instead of irq_desc Jiang Liu
2015-06-01  8:05 ` [Patch v3 31/36] genirq: Move field 'affinity' from struct irq_data into struct irq_common_data Jiang Liu
2015-06-03  3:47   ` Jiang Liu
2015-09-16 20:56     ` [tip:irq/urgent] genirq: Move field 'affinity' from irq_data into irq_common_data tip-bot for Jiang Liu
2015-06-01  8:05 ` [Patch v3 32/36] genirq: Rename irq_data_get_msi() as irq_data_get_msi_desc() Jiang Liu
2015-06-01  8:05 ` [Patch v3 33/36] genirq: Use helper function to access irq_data->msi_desc Jiang Liu
2015-06-01  8:05   ` Jiang Liu
2015-06-02  3:45   ` [v3,33/36] " Michael Ellerman
2015-06-02  3:45     ` Michael Ellerman
2015-06-02  3:45     ` [v3, 33/36] " Michael Ellerman
2015-06-02  3:45     ` [v3,33/36] " Michael Ellerman
2015-06-02  5:46     ` Jiang Liu
2015-06-02  5:46       ` Jiang Liu
2015-06-02  5:46       ` [v3, 33/36] " Jiang Liu
2015-06-03 16:53     ` [v3,33/36] " Thomas Gleixner
2015-06-03 16:53       ` Thomas Gleixner
2015-06-03 16:53       ` Thomas Gleixner
2015-06-01  8:05 ` [Patch v3 34/36] genirq: Move field 'msi_desc' from struct irq_data into struct irq_common_data Jiang Liu
2015-09-16 20:57   ` [tip:irq/urgent] genirq: Move field 'msi_desc' from irq_data into irq_common_data tip-bot for Jiang Liu
     [not found] ` <1433145945-789-1-git-send-email-jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-06-01  8:05   ` [Patch v3 35/36] genirq: Pass irq_data to helper function __irq_set_chip_handler_name_locked() Jiang Liu
2015-06-01  8:05     ` Jiang Liu
2015-06-01  8:05     ` Jiang Liu
2015-06-01  8:05     ` Jiang Liu
2015-06-05  8:48     ` Ralf Baechle
2015-06-05  8:48       ` Ralf Baechle
2015-06-05  8:48       ` Ralf Baechle
2015-06-05  8:48       ` Ralf Baechle
2015-06-01  8:05 ` [Patch v3 36/36] genirq: Optimize irq_data_to_desc() to avoid irq_to_desc() lookup Jiang Liu

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=tip-449e9cae58b06be1293858ec8e5d8cb728238baa@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=bhelgaas@google.com \
    --cc=bp@alien8.de \
    --cc=cernekee@gmail.com \
    --cc=hpa@zytor.com \
    --cc=jason@lakedaemon.net \
    --cc=jiang.liu@linux.intel.com \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.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.