Re: [PATCH V2] mm: Replace all open encodings for NUMA_NO_NODE
On Wed, 2018-12-05 at 17:01 +0530, Anshuman Khandual wrote: > > On 12/05/2018 02:56 AM, Lubomir Rintel wrote: > > On Mon, 2018-11-26 at 17:56 +0530, Anshuman Khandual wrote: > > > At present there are multiple places where invalid node number is encoded > > > as -1. Even though implicitly understood it is always better to have > > > macros > > > in there. Replace these open encodings for an invalid node number with the > > > global macro NUMA_NO_NODE. This helps remove NUMA related assumptions like > > > 'invalid node' from various places redirecting them to a common > > > definition. > > > > > > Signed-off-by: Anshuman Khandual > > > --- > > > Changes in V2: > > > > > > - Added inclusion of 'numa.h' header at various places per Andrew > > > - Updated 'dev_to_node' to use NUMA_NO_NODE instead per Vinod > > > > > > Changes in V1: (https://lkml.org/lkml/2018/11/23/485) > > > > > > - Dropped OCFS2 changes per Joseph > > > - Dropped media/video drivers changes per Hans > > > > > > RFC - https://patchwork.kernel.org/patch/10678035/ > > > > > > Build tested this with multiple cross compiler options like alpha, sparc, > > > arm64, x86, powerpc, powerpc64le etc with their default config which might > > > not have compiled tested all driver related changes. I will appreciate > > > folks giving this a test in their respective build environment. > > > > > > All these places for replacement were found by running the following grep > > > patterns on the entire kernel code. Please let me know if this might have > > > missed some instances. This might also have replaced some false positives. > > > I will appreciate suggestions, inputs and review. > > > > > > 1. git grep "nid == -1" > > > 2. git grep "node == -1" > > > 3. git grep "nid = -1" > > > 4. git grep "node = -1" > > > > > > arch/alpha/include/asm/topology.h | 3 ++- > > > arch/ia64/kernel/numa.c | 2 +- > > > arch/ia64/mm/discontig.c | 6 +++--- > > > arch/ia64/sn/kernel/io_common.c | 3 ++- > > > arch/powerpc/include/asm/pci-bridge.h | 3 ++- > > > arch/powerpc/kernel/paca.c| 3 ++- > > > arch/powerpc/kernel/pci-common.c | 3 ++- > > > arch/powerpc/mm/numa.c| 14 +++--- > > > arch/powerpc/platforms/powernv/memtrace.c | 5 +++-- > > > arch/sparc/kernel/auxio_32.c | 3 ++- > > > arch/sparc/kernel/pci_fire.c | 3 ++- > > > arch/sparc/kernel/pci_schizo.c| 3 ++- > > > arch/sparc/kernel/pcic.c | 7 --- > > > arch/sparc/kernel/psycho_common.c | 3 ++- > > > arch/sparc/kernel/sbus.c | 3 ++- > > > arch/sparc/mm/init_64.c | 6 +++--- > > > arch/sparc/prom/init_32.c | 3 ++- > > > arch/sparc/prom/init_64.c | 5 +++-- > > > arch/sparc/prom/tree_32.c | 13 +++-- > > > arch/sparc/prom/tree_64.c | 19 ++- > > > arch/x86/include/asm/pci.h| 3 ++- > > > arch/x86/kernel/apic/x2apic_uv_x.c| 7 --- > > > arch/x86/kernel/smpboot.c | 3 ++- > > > arch/x86/platform/olpc/olpc_dt.c | 17 + > > > drivers/block/mtip32xx/mtip32xx.c | 5 +++-- > > > drivers/dma/dmaengine.c | 4 +++- > > > drivers/infiniband/hw/hfi1/affinity.c | 3 ++- > > > drivers/infiniband/hw/hfi1/init.c | 3 ++- > > > drivers/iommu/dmar.c | 5 +++-- > > > drivers/iommu/intel-iommu.c | 3 ++- > > > drivers/misc/sgi-xp/xpc_uv.c | 3 ++- > > > drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 5 +++-- > > > include/linux/device.h| 2 +- > > > init/init_task.c | 3 ++- > > > kernel/kthread.c | 3 ++- > > > kernel/sched/fair.c | 15 --- > > > lib/cpumask.c | 3 ++- > > > mm/huge_memory.c | 13 +++-- > > > mm/hugetlb.c | 3 ++- > > > mm/ksm.c | 2 +- > > > mm/memory.c | 7 --- > > > mm/memory_hotplug.c | 12 ++-- > > > mm/mempolicy.c| 2 +- > > > mm/page_alloc.c | 4 ++-- > > > mm/page_ext.c | 2 +- > > > net/core/pktgen.c | 3 ++- > > > net/qrtr/qrtr.c | 3 ++- > > > tools/perf/bench/numa.c | 6 +++--- > > > 48 files changed, 146 insertions(+), 108 deletions(-) > > Thanks for the patch. It seems to me that y
Re: [PATCH V2] mm: Replace all open encodings for NUMA_NO_NODE
On 12/05/2018 02:56 AM, Lubomir Rintel wrote: > On Mon, 2018-11-26 at 17:56 +0530, Anshuman Khandual wrote: >> At present there are multiple places where invalid node number is encoded >> as -1. Even though implicitly understood it is always better to have macros >> in there. Replace these open encodings for an invalid node number with the >> global macro NUMA_NO_NODE. This helps remove NUMA related assumptions like >> 'invalid node' from various places redirecting them to a common definition. >> >> Signed-off-by: Anshuman Khandual >> --- >> Changes in V2: >> >> - Added inclusion of 'numa.h' header at various places per Andrew >> - Updated 'dev_to_node' to use NUMA_NO_NODE instead per Vinod >> >> Changes in V1: (https://lkml.org/lkml/2018/11/23/485) >> >> - Dropped OCFS2 changes per Joseph >> - Dropped media/video drivers changes per Hans >> >> RFC - https://patchwork.kernel.org/patch/10678035/ >> >> Build tested this with multiple cross compiler options like alpha, sparc, >> arm64, x86, powerpc, powerpc64le etc with their default config which might >> not have compiled tested all driver related changes. I will appreciate >> folks giving this a test in their respective build environment. >> >> All these places for replacement were found by running the following grep >> patterns on the entire kernel code. Please let me know if this might have >> missed some instances. This might also have replaced some false positives. >> I will appreciate suggestions, inputs and review. >> >> 1. git grep "nid == -1" >> 2. git grep "node == -1" >> 3. git grep "nid = -1" >> 4. git grep "node = -1" >> >> arch/alpha/include/asm/topology.h | 3 ++- >> arch/ia64/kernel/numa.c | 2 +- >> arch/ia64/mm/discontig.c | 6 +++--- >> arch/ia64/sn/kernel/io_common.c | 3 ++- >> arch/powerpc/include/asm/pci-bridge.h | 3 ++- >> arch/powerpc/kernel/paca.c| 3 ++- >> arch/powerpc/kernel/pci-common.c | 3 ++- >> arch/powerpc/mm/numa.c| 14 +++--- >> arch/powerpc/platforms/powernv/memtrace.c | 5 +++-- >> arch/sparc/kernel/auxio_32.c | 3 ++- >> arch/sparc/kernel/pci_fire.c | 3 ++- >> arch/sparc/kernel/pci_schizo.c| 3 ++- >> arch/sparc/kernel/pcic.c | 7 --- >> arch/sparc/kernel/psycho_common.c | 3 ++- >> arch/sparc/kernel/sbus.c | 3 ++- >> arch/sparc/mm/init_64.c | 6 +++--- >> arch/sparc/prom/init_32.c | 3 ++- >> arch/sparc/prom/init_64.c | 5 +++-- >> arch/sparc/prom/tree_32.c | 13 +++-- >> arch/sparc/prom/tree_64.c | 19 ++- >> arch/x86/include/asm/pci.h| 3 ++- >> arch/x86/kernel/apic/x2apic_uv_x.c| 7 --- >> arch/x86/kernel/smpboot.c | 3 ++- >> arch/x86/platform/olpc/olpc_dt.c | 17 + >> drivers/block/mtip32xx/mtip32xx.c | 5 +++-- >> drivers/dma/dmaengine.c | 4 +++- >> drivers/infiniband/hw/hfi1/affinity.c | 3 ++- >> drivers/infiniband/hw/hfi1/init.c | 3 ++- >> drivers/iommu/dmar.c | 5 +++-- >> drivers/iommu/intel-iommu.c | 3 ++- >> drivers/misc/sgi-xp/xpc_uv.c | 3 ++- >> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 5 +++-- >> include/linux/device.h| 2 +- >> init/init_task.c | 3 ++- >> kernel/kthread.c | 3 ++- >> kernel/sched/fair.c | 15 --- >> lib/cpumask.c | 3 ++- >> mm/huge_memory.c | 13 +++-- >> mm/hugetlb.c | 3 ++- >> mm/ksm.c | 2 +- >> mm/memory.c | 7 --- >> mm/memory_hotplug.c | 12 ++-- >> mm/mempolicy.c| 2 +- >> mm/page_alloc.c | 4 ++-- >> mm/page_ext.c | 2 +- >> net/core/pktgen.c | 3 ++- >> net/qrtr/qrtr.c | 3 ++- >> tools/perf/bench/numa.c | 6 +++--- >> 48 files changed, 146 insertions(+), 108 deletions(-) > Thanks for the patch. It seems to me that you've got a fairly large > amount of it wrong though -- perhaps relying just on "git grep" alone > is not the best idea. Hmm, okay. > > The diffstat is not all that big, it is entirely plausible to just > review each hunk manually: just do a "git show -U20" to get some > context. > > You get a NAK from me for the OLPC DT part, but I th
Re: [PATCH V2] mm: Replace all open encodings for NUMA_NO_NODE
On Mon, 2018-11-26 at 17:56 +0530, Anshuman Khandual wrote: > At present there are multiple places where invalid node number is encoded > as -1. Even though implicitly understood it is always better to have macros > in there. Replace these open encodings for an invalid node number with the > global macro NUMA_NO_NODE. This helps remove NUMA related assumptions like > 'invalid node' from various places redirecting them to a common definition. > > Signed-off-by: Anshuman Khandual > --- > Changes in V2: > > - Added inclusion of 'numa.h' header at various places per Andrew > - Updated 'dev_to_node' to use NUMA_NO_NODE instead per Vinod > > Changes in V1: (https://lkml.org/lkml/2018/11/23/485) > > - Dropped OCFS2 changes per Joseph > - Dropped media/video drivers changes per Hans > > RFC - https://patchwork.kernel.org/patch/10678035/ > > Build tested this with multiple cross compiler options like alpha, sparc, > arm64, x86, powerpc, powerpc64le etc with their default config which might > not have compiled tested all driver related changes. I will appreciate > folks giving this a test in their respective build environment. > > All these places for replacement were found by running the following grep > patterns on the entire kernel code. Please let me know if this might have > missed some instances. This might also have replaced some false positives. > I will appreciate suggestions, inputs and review. > > 1. git grep "nid == -1" > 2. git grep "node == -1" > 3. git grep "nid = -1" > 4. git grep "node = -1" > > arch/alpha/include/asm/topology.h | 3 ++- > arch/ia64/kernel/numa.c | 2 +- > arch/ia64/mm/discontig.c | 6 +++--- > arch/ia64/sn/kernel/io_common.c | 3 ++- > arch/powerpc/include/asm/pci-bridge.h | 3 ++- > arch/powerpc/kernel/paca.c| 3 ++- > arch/powerpc/kernel/pci-common.c | 3 ++- > arch/powerpc/mm/numa.c| 14 +++--- > arch/powerpc/platforms/powernv/memtrace.c | 5 +++-- > arch/sparc/kernel/auxio_32.c | 3 ++- > arch/sparc/kernel/pci_fire.c | 3 ++- > arch/sparc/kernel/pci_schizo.c| 3 ++- > arch/sparc/kernel/pcic.c | 7 --- > arch/sparc/kernel/psycho_common.c | 3 ++- > arch/sparc/kernel/sbus.c | 3 ++- > arch/sparc/mm/init_64.c | 6 +++--- > arch/sparc/prom/init_32.c | 3 ++- > arch/sparc/prom/init_64.c | 5 +++-- > arch/sparc/prom/tree_32.c | 13 +++-- > arch/sparc/prom/tree_64.c | 19 ++- > arch/x86/include/asm/pci.h| 3 ++- > arch/x86/kernel/apic/x2apic_uv_x.c| 7 --- > arch/x86/kernel/smpboot.c | 3 ++- > arch/x86/platform/olpc/olpc_dt.c | 17 + > drivers/block/mtip32xx/mtip32xx.c | 5 +++-- > drivers/dma/dmaengine.c | 4 +++- > drivers/infiniband/hw/hfi1/affinity.c | 3 ++- > drivers/infiniband/hw/hfi1/init.c | 3 ++- > drivers/iommu/dmar.c | 5 +++-- > drivers/iommu/intel-iommu.c | 3 ++- > drivers/misc/sgi-xp/xpc_uv.c | 3 ++- > drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 5 +++-- > include/linux/device.h| 2 +- > init/init_task.c | 3 ++- > kernel/kthread.c | 3 ++- > kernel/sched/fair.c | 15 --- > lib/cpumask.c | 3 ++- > mm/huge_memory.c | 13 +++-- > mm/hugetlb.c | 3 ++- > mm/ksm.c | 2 +- > mm/memory.c | 7 --- > mm/memory_hotplug.c | 12 ++-- > mm/mempolicy.c| 2 +- > mm/page_alloc.c | 4 ++-- > mm/page_ext.c | 2 +- > net/core/pktgen.c | 3 ++- > net/qrtr/qrtr.c | 3 ++- > tools/perf/bench/numa.c | 6 +++--- > 48 files changed, 146 insertions(+), 108 deletions(-) Thanks for the patch. It seems to me that you've got a fairly large amount of it wrong though -- perhaps relying just on "git grep" alone is not the best idea. The diffstat is not all that big, it is entirely plausible to just review each hunk manually: just do a "git show -U20" to get some context. You get a NAK from me for the OLPC DT part, but I think at least the sparc/prom part also deals with device tree nodes and not NUMA nodes. More inline. Lubo > > diff --git a/arch/alpha/include/asm/topolog
Re: [PATCH V2] mm: Replace all open encodings for NUMA_NO_NODE
On Mon, 2018-11-26 at 17:56 +0530, Anshuman Khandual wrote: > At present there are multiple places where invalid node number is encoded > as -1. Even though implicitly understood it is always better to have macros > in there. Replace these open encodings for an invalid node number with the > global macro NUMA_NO_NODE. This helps remove NUMA related assumptions like > 'invalid node' from various places redirecting them to a common definition. > > Signed-off-by: Anshuman Khandual > --- > Changes in V2: > > - Added inclusion of 'numa.h' header at various places per Andrew > - Updated 'dev_to_node' to use NUMA_NO_NODE instead per Vinod > > Changes in V1: (https://lkml.org/lkml/2018/11/23/485) > > - Dropped OCFS2 changes per Joseph > - Dropped media/video drivers changes per Hans > > RFC - https://patchwork.kernel.org/patch/10678035/ > > Build tested this with multiple cross compiler options like alpha, sparc, > arm64, x86, powerpc, powerpc64le etc with their default config which might > not have compiled tested all driver related changes. I will appreciate > folks giving this a test in their respective build environment. > > All these places for replacement were found by running the following grep > patterns on the entire kernel code. Please let me know if this might have > missed some instances. This might also have replaced some false positives. > I will appreciate suggestions, inputs and review. > > 1. git grep "nid == -1" > 2. git grep "node == -1" > 3. git grep "nid = -1" > 4. git grep "node = -1" > > drivers/infiniband/hw/hfi1/affinity.c | 3 ++- > drivers/infiniband/hw/hfi1/init.c | 3 ++- For the drivers/infiniband changes, Acked-by: Doug Ledford -- Doug Ledford GPG KeyID: B826A3330E572FDD Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD signature.asc Description: This is a digitally signed message part
Re: [PATCH V2] mm: Replace all open encodings for NUMA_NO_NODE
On 26-11-18, 17:56, Anshuman Khandual wrote: > At present there are multiple places where invalid node number is encoded > as -1. Even though implicitly understood it is always better to have macros > in there. Replace these open encodings for an invalid node number with the > global macro NUMA_NO_NODE. This helps remove NUMA related assumptions like > 'invalid node' from various places redirecting them to a common definition. > > drivers/dma/dmaengine.c | 4 +++- Acked-by: Vinod Koul -- ~Vinod
Re: [PATCH V2] mm: Replace all open encodings for NUMA_NO_NODE
Anshuman Khandual writes: > At present there are multiple places where invalid node number is encoded > as -1. Even though implicitly understood it is always better to have macros > in there. Replace these open encodings for an invalid node number with the > global macro NUMA_NO_NODE. This helps remove NUMA related assumptions like > 'invalid node' from various places redirecting them to a common definition. > > Signed-off-by: Anshuman Khandual > --- > Changes in V2: > > - Added inclusion of 'numa.h' header at various places per Andrew > - Updated 'dev_to_node' to use NUMA_NO_NODE instead per Vinod > > Changes in V1: (https://lkml.org/lkml/2018/11/23/485) > > - Dropped OCFS2 changes per Joseph > - Dropped media/video drivers changes per Hans > > RFC - https://patchwork.kernel.org/patch/10678035/ > > Build tested this with multiple cross compiler options like alpha, sparc, > arm64, x86, powerpc, powerpc64le etc with their default config which might > not have compiled tested all driver related changes. I will appreciate > folks giving this a test in their respective build environment. > > All these places for replacement were found by running the following grep > patterns on the entire kernel code. Please let me know if this might have > missed some instances. This might also have replaced some false positives. > I will appreciate suggestions, inputs and review. > > 1. git grep "nid == -1" > 2. git grep "node == -1" > 3. git grep "nid = -1" > 4. git grep "node = -1" > > arch/alpha/include/asm/topology.h | 3 ++- > arch/ia64/kernel/numa.c | 2 +- > arch/ia64/mm/discontig.c | 6 +++--- > arch/ia64/sn/kernel/io_common.c | 3 ++- > arch/powerpc/include/asm/pci-bridge.h | 3 ++- > arch/powerpc/kernel/paca.c| 3 ++- > arch/powerpc/kernel/pci-common.c | 3 ++- > arch/powerpc/mm/numa.c| 14 +++--- > arch/powerpc/platforms/powernv/memtrace.c | 5 +++-- These powerpc changes all look fine. Acked-by: Michael Ellerman cheers
Re: [Intel-wired-lan] [PATCH V2] mm: Replace all open encodings for NUMA_NO_NODE
On Mon, 2018-11-26 at 17:56 +0530, Anshuman Khandual wrote: > At present there are multiple places where invalid node number is > encoded > as -1. Even though implicitly understood it is always better to have > macros > in there. Replace these open encodings for an invalid node number > with the > global macro NUMA_NO_NODE. This helps remove NUMA related assumptions > like > 'invalid node' from various places redirecting them to a common > definition. > > Signed-off-by: Anshuman Khandual For the 'ixgbe' driver changes. Acked-by: Jeff Kirsher > --- > Changes in V2: > > - Added inclusion of 'numa.h' header at various places per Andrew > - Updated 'dev_to_node' to use NUMA_NO_NODE instead per Vinod > > Changes in V1: (https://lkml.org/lkml/2018/11/23/485) > > - Dropped OCFS2 changes per Joseph > - Dropped media/video drivers changes per Hans > > RFC - https://patchwork.kernel.org/patch/10678035/ > > Build tested this with multiple cross compiler options like alpha, > sparc, > arm64, x86, powerpc, powerpc64le etc with their default config which > might > not have compiled tested all driver related changes. I will > appreciate > folks giving this a test in their respective build environment. > > All these places for replacement were found by running the following > grep > patterns on the entire kernel code. Please let me know if this might > have > missed some instances. This might also have replaced some false > positives. > I will appreciate suggestions, inputs and review. > > 1. git grep "nid == -1" > 2. git grep "node == -1" > 3. git grep "nid = -1" > 4. git grep "node = -1" > > arch/alpha/include/asm/topology.h | 3 ++- > arch/ia64/kernel/numa.c | 2 +- > arch/ia64/mm/discontig.c | 6 +++--- > arch/ia64/sn/kernel/io_common.c | 3 ++- > arch/powerpc/include/asm/pci-bridge.h | 3 ++- > arch/powerpc/kernel/paca.c| 3 ++- > arch/powerpc/kernel/pci-common.c | 3 ++- > arch/powerpc/mm/numa.c| 14 +++--- > arch/powerpc/platforms/powernv/memtrace.c | 5 +++-- > arch/sparc/kernel/auxio_32.c | 3 ++- > arch/sparc/kernel/pci_fire.c | 3 ++- > arch/sparc/kernel/pci_schizo.c| 3 ++- > arch/sparc/kernel/pcic.c | 7 --- > arch/sparc/kernel/psycho_common.c | 3 ++- > arch/sparc/kernel/sbus.c | 3 ++- > arch/sparc/mm/init_64.c | 6 +++--- > arch/sparc/prom/init_32.c | 3 ++- > arch/sparc/prom/init_64.c | 5 +++-- > arch/sparc/prom/tree_32.c | 13 +++-- > arch/sparc/prom/tree_64.c | 19 ++--- > -- > arch/x86/include/asm/pci.h| 3 ++- > arch/x86/kernel/apic/x2apic_uv_x.c| 7 --- > arch/x86/kernel/smpboot.c | 3 ++- > arch/x86/platform/olpc/olpc_dt.c | 17 + > drivers/block/mtip32xx/mtip32xx.c | 5 +++-- > drivers/dma/dmaengine.c | 4 +++- > drivers/infiniband/hw/hfi1/affinity.c | 3 ++- > drivers/infiniband/hw/hfi1/init.c | 3 ++- > drivers/iommu/dmar.c | 5 +++-- > drivers/iommu/intel-iommu.c | 3 ++- > drivers/misc/sgi-xp/xpc_uv.c | 3 ++- > drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 5 +++-- > include/linux/device.h| 2 +- > init/init_task.c | 3 ++- > kernel/kthread.c | 3 ++- > kernel/sched/fair.c | 15 --- > lib/cpumask.c | 3 ++- > mm/huge_memory.c | 13 +++-- > mm/hugetlb.c | 3 ++- > mm/ksm.c | 2 +- > mm/memory.c | 7 --- > mm/memory_hotplug.c | 12 ++-- > mm/mempolicy.c| 2 +- > mm/page_alloc.c | 4 ++-- > mm/page_ext.c | 2 +- > net/core/pktgen.c | 3 ++- > net/qrtr/qrtr.c | 3 ++- > tools/perf/bench/numa.c | 6 +++--- > 48 files changed, 146 insertions(+), 108 deletions(-) signature.asc Description: This is a digitally signed message part
Re: [Intel-wired-lan] [PATCH V2] mm: Replace all open encodings for NUMA_NO_NODE
On 11/26/18 10:56 AM, Jeff Kirsher wrote: > On Mon, 2018-11-26 at 17:56 +0530, Anshuman Khandual wrote: >> At present there are multiple places where invalid node number is >> encoded >> as -1. Even though implicitly understood it is always better to have >> macros >> in there. Replace these open encodings for an invalid node number >> with the >> global macro NUMA_NO_NODE. This helps remove NUMA related assumptions >> like >> 'invalid node' from various places redirecting them to a common >> definition. >> >> Signed-off-by: Anshuman Khandual > > For the 'ixgbe' driver changes. > > Acked-by: Jeff Kirsher Lost the original, but for mtip32xx: Acked-by: Jens Axboe -- Jens Axboe
Re: [PATCH V2] mm: Replace all open encodings for NUMA_NO_NODE
On 11/26/2018 06:18 PM, David Hildenbrand wrote: > On 26.11.18 13:26, Anshuman Khandual wrote: >> At present there are multiple places where invalid node number is encoded >> as -1. Even though implicitly understood it is always better to have macros >> in there. Replace these open encodings for an invalid node number with the >> global macro NUMA_NO_NODE. This helps remove NUMA related assumptions like >> 'invalid node' from various places redirecting them to a common definition. >> >> Signed-off-by: Anshuman Khandual >> --- >> Changes in V2: >> >> - Added inclusion of 'numa.h' header at various places per Andrew >> - Updated 'dev_to_node' to use NUMA_NO_NODE instead per Vinod > > Reviewed-by: David Hildenbrand Thanks David. My bad, forgot to add your review tag from the earlier version.
Re: [PATCH V2] mm: Replace all open encodings for NUMA_NO_NODE
On 26.11.18 13:26, Anshuman Khandual wrote: > At present there are multiple places where invalid node number is encoded > as -1. Even though implicitly understood it is always better to have macros > in there. Replace these open encodings for an invalid node number with the > global macro NUMA_NO_NODE. This helps remove NUMA related assumptions like > 'invalid node' from various places redirecting them to a common definition. > > Signed-off-by: Anshuman Khandual > --- > Changes in V2: > > - Added inclusion of 'numa.h' header at various places per Andrew > - Updated 'dev_to_node' to use NUMA_NO_NODE instead per Vinod Reviewed-by: David Hildenbrand -- Thanks, David / dhildenb
[PATCH V2] mm: Replace all open encodings for NUMA_NO_NODE
At present there are multiple places where invalid node number is encoded as -1. Even though implicitly understood it is always better to have macros in there. Replace these open encodings for an invalid node number with the global macro NUMA_NO_NODE. This helps remove NUMA related assumptions like 'invalid node' from various places redirecting them to a common definition. Signed-off-by: Anshuman Khandual --- Changes in V2: - Added inclusion of 'numa.h' header at various places per Andrew - Updated 'dev_to_node' to use NUMA_NO_NODE instead per Vinod Changes in V1: (https://lkml.org/lkml/2018/11/23/485) - Dropped OCFS2 changes per Joseph - Dropped media/video drivers changes per Hans RFC - https://patchwork.kernel.org/patch/10678035/ Build tested this with multiple cross compiler options like alpha, sparc, arm64, x86, powerpc, powerpc64le etc with their default config which might not have compiled tested all driver related changes. I will appreciate folks giving this a test in their respective build environment. All these places for replacement were found by running the following grep patterns on the entire kernel code. Please let me know if this might have missed some instances. This might also have replaced some false positives. I will appreciate suggestions, inputs and review. 1. git grep "nid == -1" 2. git grep "node == -1" 3. git grep "nid = -1" 4. git grep "node = -1" arch/alpha/include/asm/topology.h | 3 ++- arch/ia64/kernel/numa.c | 2 +- arch/ia64/mm/discontig.c | 6 +++--- arch/ia64/sn/kernel/io_common.c | 3 ++- arch/powerpc/include/asm/pci-bridge.h | 3 ++- arch/powerpc/kernel/paca.c| 3 ++- arch/powerpc/kernel/pci-common.c | 3 ++- arch/powerpc/mm/numa.c| 14 +++--- arch/powerpc/platforms/powernv/memtrace.c | 5 +++-- arch/sparc/kernel/auxio_32.c | 3 ++- arch/sparc/kernel/pci_fire.c | 3 ++- arch/sparc/kernel/pci_schizo.c| 3 ++- arch/sparc/kernel/pcic.c | 7 --- arch/sparc/kernel/psycho_common.c | 3 ++- arch/sparc/kernel/sbus.c | 3 ++- arch/sparc/mm/init_64.c | 6 +++--- arch/sparc/prom/init_32.c | 3 ++- arch/sparc/prom/init_64.c | 5 +++-- arch/sparc/prom/tree_32.c | 13 +++-- arch/sparc/prom/tree_64.c | 19 ++- arch/x86/include/asm/pci.h| 3 ++- arch/x86/kernel/apic/x2apic_uv_x.c| 7 --- arch/x86/kernel/smpboot.c | 3 ++- arch/x86/platform/olpc/olpc_dt.c | 17 + drivers/block/mtip32xx/mtip32xx.c | 5 +++-- drivers/dma/dmaengine.c | 4 +++- drivers/infiniband/hw/hfi1/affinity.c | 3 ++- drivers/infiniband/hw/hfi1/init.c | 3 ++- drivers/iommu/dmar.c | 5 +++-- drivers/iommu/intel-iommu.c | 3 ++- drivers/misc/sgi-xp/xpc_uv.c | 3 ++- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 5 +++-- include/linux/device.h| 2 +- init/init_task.c | 3 ++- kernel/kthread.c | 3 ++- kernel/sched/fair.c | 15 --- lib/cpumask.c | 3 ++- mm/huge_memory.c | 13 +++-- mm/hugetlb.c | 3 ++- mm/ksm.c | 2 +- mm/memory.c | 7 --- mm/memory_hotplug.c | 12 ++-- mm/mempolicy.c| 2 +- mm/page_alloc.c | 4 ++-- mm/page_ext.c | 2 +- net/core/pktgen.c | 3 ++- net/qrtr/qrtr.c | 3 ++- tools/perf/bench/numa.c | 6 +++--- 48 files changed, 146 insertions(+), 108 deletions(-) diff --git a/arch/alpha/include/asm/topology.h b/arch/alpha/include/asm/topology.h index e6e13a8..5a77a40 100644 --- a/arch/alpha/include/asm/topology.h +++ b/arch/alpha/include/asm/topology.h @@ -4,6 +4,7 @@ #include #include +#include #include #ifdef CONFIG_NUMA @@ -29,7 +30,7 @@ static const struct cpumask *cpumask_of_node(int node) { int cpu; - if (node == -1) + if (node == NUMA_NO_NODE) return cpu_all_mask; cpumask_clear(&node_to_cpumask_map[node]); diff --git a/arch/ia64/kernel/numa.c b/arch/ia64/kernel/numa.c index 92c3762..1315da6 100644 --- a/arch/ia64/kernel/numa.c +++ b/arch/ia64/kernel/numa.c @@ -74,7 +74,7 @@ void __init build_cpu_to_node_map(void)