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 <anshuman.khandual@xxxxxxx> >> --- >> 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 think at least the > sparc/prom part also deals with device tree nodes and not NUMA nodes. Will take a closer look at all the instances you have pointed out and then re-spin the patch. Just wondering how should I take care of Stephen's patch which is a fix for this one and available in Andrew's staging tree. Should I just go ahead and fold both them with Stephen's signed-off-by while re-spinning this patch ? Please suggest.