Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1342528 > unrolled thread

[PATCH 0/2] NUMA related header file cleanups.

Started byDavid Daney <ddaney.cavm@gmail.com>
First post2016-02-25 01:10 +0100
Last post2016-03-02 03:20 +0100
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/2] NUMA related header file cleanups. David Daney <ddaney.cavm@gmail.com> - 2016-02-25 01:10 +0100
    [PATCH 2/2] numa, mm, cleanup: remove redundant NODE_DATA macro from asm header files. David Daney <ddaney.cavm@gmail.com> - 2016-02-25 01:10 +0100
      Re: [PATCH 2/2] numa, mm, cleanup: remove redundant NODE_DATA macro  from asm header files. Will Deacon <will.deacon@arm.com> - 2016-03-02 03:20 +0100

#1342528 — [PATCH 0/2] NUMA related header file cleanups.

FromDavid Daney <ddaney.cavm@gmail.com>
Date2016-02-25 01:10 +0100
Subject[PATCH 0/2] NUMA related header file cleanups.
Message-ID<r5RFg-3Xk-13@gated-at.bofh.it>
From: David Daney <david.daney@cavium.com>

Refactor many architectures' cpumask_of_pcibus and NODE_DATA definitions
by moving them to asm-generic.

Tested on arm64.

Build tested on ia64, m32r, powerpc, s390, sh, sparc(64), tile, x86

This patch set (arm64 portion) depends on this one:

https://lkml.org/lkml/2016/2/22/1066

Earler versions of these patches were part of the arm64 NUMA patch
set.  They have been split out here into a separate set.

Ganapatrao Kulkarni (2):
  topology, cleanup: Avoid redefinition of cpumask_of_pcibus in asm
    header files.
  numa, mm, cleanup: remove redundant NODE_DATA macro from asm header
    files.

 arch/arm64/include/asm/mmzone.h     |  4 +---
 arch/arm64/include/asm/topology.h   |  3 ---
 arch/ia64/include/asm/topology.h    |  4 ----
 arch/m32r/include/asm/mmzone.h      |  4 +---
 arch/metag/include/asm/mmzone.h     |  4 +---
 arch/metag/include/asm/topology.h   |  3 ---
 arch/powerpc/include/asm/mmzone.h   |  8 ++------
 arch/powerpc/include/asm/topology.h |  4 ----
 arch/s390/include/asm/mmzone.h      |  6 +-----
 arch/s390/include/asm/pci.h         |  2 +-
 arch/s390/include/asm/topology.h    |  1 +
 arch/sh/include/asm/mmzone.h        |  4 +---
 arch/sh/include/asm/topology.h      |  3 ---
 arch/sparc/include/asm/mmzone.h     |  6 ++----
 arch/tile/include/asm/pci.h         |  2 --
 arch/tile/include/asm/topology.h    |  3 +++
 arch/x86/include/asm/mmzone.h       |  3 +--
 arch/x86/include/asm/mmzone_32.h    |  5 -----
 arch/x86/include/asm/mmzone_64.h    | 17 -----------------
 arch/x86/include/asm/pci.h          |  2 +-
 arch/x86/include/asm/topology.h     |  1 +
 include/asm-generic/mmzone.h        | 24 ++++++++++++++++++++++++
 include/asm-generic/topology.h      |  4 ++--
 23 files changed, 43 insertions(+), 74 deletions(-)
 delete mode 100644 arch/x86/include/asm/mmzone_64.h
 create mode 100644 include/asm-generic/mmzone.h

-- 
1.8.3.1

[toc] | [next] | [standalone]


#1342530 — [PATCH 2/2] numa, mm, cleanup: remove redundant NODE_DATA macro from asm header files.

FromDavid Daney <ddaney.cavm@gmail.com>
Date2016-02-25 01:10 +0100
Subject[PATCH 2/2] numa, mm, cleanup: remove redundant NODE_DATA macro from asm header files.
Message-ID<r5RFg-3Xk-11@gated-at.bofh.it>
In reply to#1342528
From: Ganapatrao Kulkarni <gkulkarni@caviumnetworks.com>

NODE_DATA is defined across multiple asm header files.
Moving generic definition to asm-generic/mmzone.h to
remove redundant definitions.

Reviewed-by: Robert Richter <rrichter@cavium.com>
Signed-off-by: Ganapatrao Kulkarni <gkulkarni@caviumnetworks.com>
Signed-off-by: David Daney <david.daney@cavium.com>
---
 arch/arm64/include/asm/mmzone.h   |  4 +---
 arch/m32r/include/asm/mmzone.h    |  4 +---
 arch/metag/include/asm/mmzone.h   |  4 +---
 arch/powerpc/include/asm/mmzone.h |  8 ++------
 arch/s390/include/asm/mmzone.h    |  6 +-----
 arch/sh/include/asm/mmzone.h      |  4 +---
 arch/sparc/include/asm/mmzone.h   |  6 ++----
 arch/x86/include/asm/mmzone.h     |  3 +--
 arch/x86/include/asm/mmzone_32.h  |  5 -----
 arch/x86/include/asm/mmzone_64.h  | 17 -----------------
 include/asm-generic/mmzone.h      | 24 ++++++++++++++++++++++++
 11 files changed, 34 insertions(+), 51 deletions(-)
 delete mode 100644 arch/x86/include/asm/mmzone_64.h
 create mode 100644 include/asm-generic/mmzone.h

diff --git a/arch/arm64/include/asm/mmzone.h b/arch/arm64/include/asm/mmzone.h
index a0de9e6..611a1cf 100644
--- a/arch/arm64/include/asm/mmzone.h
+++ b/arch/arm64/include/asm/mmzone.h
@@ -4,9 +4,7 @@
 #ifdef CONFIG_NUMA
 
 #include <asm/numa.h>
-
-extern struct pglist_data *node_data[];
-#define NODE_DATA(nid)		(node_data[(nid)])
+#include  <asm-generic/mmzone.h>
 
 #endif /* CONFIG_NUMA */
 #endif /* __ASM_MMZONE_H */
diff --git a/arch/m32r/include/asm/mmzone.h b/arch/m32r/include/asm/mmzone.h
index 115ced3..e3d66a0 100644
--- a/arch/m32r/include/asm/mmzone.h
+++ b/arch/m32r/include/asm/mmzone.h
@@ -7,12 +7,10 @@
 #define _ASM_MMZONE_H_
 
 #include <asm/smp.h>
+#include  <asm-generic/mmzone.h>
 
 #ifdef CONFIG_DISCONTIGMEM
 
-extern struct pglist_data *node_data[];
-#define NODE_DATA(nid)		(node_data[nid])
-
 #define node_localnr(pfn, nid)	((pfn) - NODE_DATA(nid)->node_start_pfn)
 
 #define pmd_page(pmd)		(pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT))
diff --git a/arch/metag/include/asm/mmzone.h b/arch/metag/include/asm/mmzone.h
index 9c88a9c..b1e95b3 100644
--- a/arch/metag/include/asm/mmzone.h
+++ b/arch/metag/include/asm/mmzone.h
@@ -3,9 +3,7 @@
 
 #ifdef CONFIG_NEED_MULTIPLE_NODES
 #include <linux/numa.h>
-
-extern struct pglist_data *node_data[];
-#define NODE_DATA(nid)		(node_data[nid])
+#include  <asm-generic/mmzone.h>
 
 static inline int pfn_to_nid(unsigned long pfn)
 {
diff --git a/arch/powerpc/include/asm/mmzone.h b/arch/powerpc/include/asm/mmzone.h
index 7b58917..da0c5ba 100644
--- a/arch/powerpc/include/asm/mmzone.h
+++ b/arch/powerpc/include/asm/mmzone.h
@@ -19,12 +19,6 @@
 
 #ifdef CONFIG_NEED_MULTIPLE_NODES
 
-extern struct pglist_data *node_data[];
-/*
- * Return a pointer to the node data for node n.
- */
-#define NODE_DATA(nid)		(node_data[nid])
-
 /*
  * Following are specific to this numa platform.
  */
@@ -42,5 +36,7 @@ u64 memory_hotplug_max(void);
 #define memory_hotplug_max() memblock_end_of_DRAM()
 #endif /* CONFIG_NEED_MULTIPLE_NODES */
 
+#include  <asm-generic/mmzone.h>
+
 #endif /* __KERNEL__ */
 #endif /* _ASM_MMZONE_H_ */
diff --git a/arch/s390/include/asm/mmzone.h b/arch/s390/include/asm/mmzone.h
index a9e834e..91f1fcc 100644
--- a/arch/s390/include/asm/mmzone.h
+++ b/arch/s390/include/asm/mmzone.h
@@ -7,10 +7,6 @@
 #ifndef _ASM_S390_MMZONE_H
 #define _ASM_S390_MMZONE_H
 
-#ifdef CONFIG_NUMA
+#include  <asm-generic/mmzone.h>
 
-extern struct pglist_data *node_data[];
-#define NODE_DATA(nid) (node_data[nid])
-
-#endif /* CONFIG_NUMA */
 #endif /* _ASM_S390_MMZONE_H */
diff --git a/arch/sh/include/asm/mmzone.h b/arch/sh/include/asm/mmzone.h
index 15a8496..c070d00 100644
--- a/arch/sh/include/asm/mmzone.h
+++ b/arch/sh/include/asm/mmzone.h
@@ -5,9 +5,7 @@
 
 #ifdef CONFIG_NEED_MULTIPLE_NODES
 #include <linux/numa.h>
-
-extern struct pglist_data *node_data[];
-#define NODE_DATA(nid)		(node_data[nid])
+#include  <asm-generic/mmzone.h>
 
 static inline int pfn_to_nid(unsigned long pfn)
 {
diff --git a/arch/sparc/include/asm/mmzone.h b/arch/sparc/include/asm/mmzone.h
index 99d9b9f..ef1365b 100644
--- a/arch/sparc/include/asm/mmzone.h
+++ b/arch/sparc/include/asm/mmzone.h
@@ -5,13 +5,11 @@
 
 #include <linux/cpumask.h>
 
-extern struct pglist_data *node_data[];
-
-#define NODE_DATA(nid)		(node_data[nid])
-
 extern int numa_cpu_lookup_table[];
 extern cpumask_t numa_cpumask_lookup_table[];
 
 #endif /* CONFIG_NEED_MULTIPLE_NODES */
 
+#include  <asm-generic/mmzone.h>
+
 #endif /* _SPARC64_MMZONE_H */
diff --git a/arch/x86/include/asm/mmzone.h b/arch/x86/include/asm/mmzone.h
index d497bc4..8b9a0c2 100644
--- a/arch/x86/include/asm/mmzone.h
+++ b/arch/x86/include/asm/mmzone.h
@@ -1,5 +1,4 @@
+#include  <asm-generic/mmzone.h>
 #ifdef CONFIG_X86_32
 # include <asm/mmzone_32.h>
-#else
-# include <asm/mmzone_64.h>
 #endif
diff --git a/arch/x86/include/asm/mmzone_32.h b/arch/x86/include/asm/mmzone_32.h
index 1ec990b..09f7cfb 100644
--- a/arch/x86/include/asm/mmzone_32.h
+++ b/arch/x86/include/asm/mmzone_32.h
@@ -8,11 +8,6 @@
 
 #include <asm/smp.h>
 
-#ifdef CONFIG_NUMA
-extern struct pglist_data *node_data[];
-#define NODE_DATA(nid)	(node_data[nid])
-#endif /* CONFIG_NUMA */
-
 #ifdef CONFIG_DISCONTIGMEM
 
 /*
diff --git a/arch/x86/include/asm/mmzone_64.h b/arch/x86/include/asm/mmzone_64.h
deleted file mode 100644
index 129d9aa..0000000
--- a/arch/x86/include/asm/mmzone_64.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* K8 NUMA support */
-/* Copyright 2002,2003 by Andi Kleen, SuSE Labs */
-/* 2.5 Version loosely based on the NUMAQ Code by Pat Gaughen. */
-#ifndef _ASM_X86_MMZONE_64_H
-#define _ASM_X86_MMZONE_64_H
-
-#ifdef CONFIG_NUMA
-
-#include <linux/mmdebug.h>
-#include <asm/smp.h>
-
-extern struct pglist_data *node_data[];
-
-#define NODE_DATA(nid)		(node_data[nid])
-
-#endif
-#endif /* _ASM_X86_MMZONE_64_H */
diff --git a/include/asm-generic/mmzone.h b/include/asm-generic/mmzone.h
new file mode 100644
index 0000000..ec0fc4c
--- /dev/null
+++ b/include/asm-generic/mmzone.h
@@ -0,0 +1,24 @@
+/*
+ * linux/include/asm-generic/mmzone.h
+ *
+ * Author: Ganapatrao Kulkarni <gkulkarni@cavium.com>
+ * Copyright (C) 2016 Cavium Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ */
+
+#ifndef _ASM_GENERIC_MMZONE_H
+#define _ASM_GENERIC_MMZONE_H
+
+#if defined(CONFIG_NUMA) || defined(CONFIG_NEED_MULTIPLE_NODES)
+
+#ifndef NODE_DATA
+extern struct pglist_data *node_data[];
+#define NODE_DATA(nid)          (node_data[(nid)])
+#endif
+
+#endif
+#endif /* _ASM_GENERIC_MMZONE_H */
-- 
1.8.3.1

[toc] | [prev] | [next] | [standalone]


#1347660 — Re: [PATCH 2/2] numa, mm, cleanup: remove redundant NODE_DATA macro from asm header files.

FromWill Deacon <will.deacon@arm.com>
Date2016-03-02 03:20 +0100
SubjectRe: [PATCH 2/2] numa, mm, cleanup: remove redundant NODE_DATA macro from asm header files.
Message-ID<r84yo-144-61@gated-at.bofh.it>
In reply to#1342530
On Wed, Feb 24, 2016 at 04:02:08PM -0800, David Daney wrote:
> From: Ganapatrao Kulkarni <gkulkarni@caviumnetworks.com>
> 
> NODE_DATA is defined across multiple asm header files.
> Moving generic definition to asm-generic/mmzone.h to
> remove redundant definitions.
> 
> Reviewed-by: Robert Richter <rrichter@cavium.com>
> Signed-off-by: Ganapatrao Kulkarni <gkulkarni@caviumnetworks.com>
> Signed-off-by: David Daney <david.daney@cavium.com>
> ---
>  arch/arm64/include/asm/mmzone.h   |  4 +---
>  arch/m32r/include/asm/mmzone.h    |  4 +---
>  arch/metag/include/asm/mmzone.h   |  4 +---
>  arch/powerpc/include/asm/mmzone.h |  8 ++------
>  arch/s390/include/asm/mmzone.h    |  6 +-----
>  arch/sh/include/asm/mmzone.h      |  4 +---
>  arch/sparc/include/asm/mmzone.h   |  6 ++----
>  arch/x86/include/asm/mmzone.h     |  3 +--
>  arch/x86/include/asm/mmzone_32.h  |  5 -----
>  arch/x86/include/asm/mmzone_64.h  | 17 -----------------
>  include/asm-generic/mmzone.h      | 24 ++++++++++++++++++++++++
>  11 files changed, 34 insertions(+), 51 deletions(-)
>  delete mode 100644 arch/x86/include/asm/mmzone_64.h
>  create mode 100644 include/asm-generic/mmzone.h
> 
> diff --git a/arch/arm64/include/asm/mmzone.h b/arch/arm64/include/asm/mmzone.h
> index a0de9e6..611a1cf 100644
> --- a/arch/arm64/include/asm/mmzone.h
> +++ b/arch/arm64/include/asm/mmzone.h
> @@ -4,9 +4,7 @@
>  #ifdef CONFIG_NUMA
>  
>  #include <asm/numa.h>
> -
> -extern struct pglist_data *node_data[];
> -#define NODE_DATA(nid)		(node_data[(nid)])
> +#include  <asm-generic/mmzone.h>
>  
>  #endif /* CONFIG_NUMA */
>  #endif /* __ASM_MMZONE_H */

Actually, we can remove the header file entirely and use a generic-y
line in Kbuild instead.

Will

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web