From: kernel test robot <lkp@intel.com>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
linuxppc-dev@lists.ozlabs.org, mpe@ellerman.id.au
Cc: Nathan Lynch <nathanl@linux.ibm.com>,
"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
Daniel Henrique Barboza <danielhb413@gmail.com>,
kbuild-all@lists.01.org,
David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [PATCH v5 4/6] powerpc/pseries: Consolidate different NUMA distance update code paths
Date: Tue, 29 Jun 2021 04:40:56 +0800 [thread overview]
Message-ID: <202106290413.yYgDdKvn-lkp@intel.com> (raw)
In-Reply-To: <20210628151117.545935-5-aneesh.kumar@linux.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 6287 bytes --]
Hi "Aneesh,
I love your patch! Yet something to improve:
[auto build test ERROR on powerpc/next]
[also build test ERROR on v5.13 next-20210628]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Aneesh-Kumar-K-V/Add-support-for-FORM2-associativity/20210628-231546
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-randconfig-r024-20210628 (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/fcbc8b19e99b1cf44fde904817f19616c6baecdb
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Aneesh-Kumar-K-V/Add-support-for-FORM2-associativity/20210628-231546
git checkout fcbc8b19e99b1cf44fde904817f19616c6baecdb
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
arch/powerpc/mm/numa.c:298:6: warning: no previous prototype for 'update_numa_distance' [-Wmissing-prototypes]
298 | void update_numa_distance(struct device_node *node)
| ^~~~~~~~~~~~~~~~~~~~
arch/powerpc/mm/numa.c: In function 'parse_numa_properties':
>> arch/powerpc/mm/numa.c:809:7: error: implicit declaration of function '__vphn_get_associativity'; did you mean 'of_get_associativity'? [-Werror=implicit-function-declaration]
809 | if (__vphn_get_associativity(i, vphn_assoc) == 0) {
| ^~~~~~~~~~~~~~~~~~~~~~~~
| of_get_associativity
cc1: some warnings being treated as errors
vim +809 arch/powerpc/mm/numa.c
771
772 static int __init parse_numa_properties(void)
773 {
774 struct device_node *memory;
775 int default_nid = 0;
776 unsigned long i;
777 const __be32 *associativity;
778
779 if (numa_enabled == 0) {
780 printk(KERN_WARNING "NUMA disabled by user\n");
781 return -1;
782 }
783
784 primary_domain_index = find_primary_domain_index();
785
786 if (primary_domain_index < 0) {
787 /*
788 * if we fail to parse primary_domain_index from device tree
789 * mark the numa disabled, boot with numa disabled.
790 */
791 numa_enabled = false;
792 return primary_domain_index;
793 }
794
795 dbg("NUMA associativity depth for CPU/Memory: %d\n", primary_domain_index);
796
797 /*
798 * Even though we connect cpus to numa domains later in SMP
799 * init, we need to know the node ids now. This is because
800 * each node to be onlined must have NODE_DATA etc backing it.
801 */
802 for_each_present_cpu(i) {
803 __be32 vphn_assoc[VPHN_ASSOC_BUFSIZE];
804 struct device_node *cpu;
805 int nid = NUMA_NO_NODE;
806
807 memset(vphn_assoc, 0, VPHN_ASSOC_BUFSIZE * sizeof(__be32));
808
> 809 if (__vphn_get_associativity(i, vphn_assoc) == 0) {
810 nid = associativity_to_nid(vphn_assoc);
811 __initialize_form1_numa_distance(vphn_assoc);
812 } else {
813
814 /*
815 * Don't fall back to default_nid yet -- we will plug
816 * cpus into nodes once the memory scan has discovered
817 * the topology.
818 */
819 cpu = of_get_cpu_node(i, NULL);
820 BUG_ON(!cpu);
821
822 associativity = of_get_associativity(cpu);
823 if (associativity) {
824 nid = associativity_to_nid(associativity);
825 __initialize_form1_numa_distance(associativity);
826 }
827 of_node_put(cpu);
828 }
829
830 node_set_online(nid);
831 }
832
833 get_n_mem_cells(&n_mem_addr_cells, &n_mem_size_cells);
834
835 for_each_node_by_type(memory, "memory") {
836 unsigned long start;
837 unsigned long size;
838 int nid;
839 int ranges;
840 const __be32 *memcell_buf;
841 unsigned int len;
842
843 memcell_buf = of_get_property(memory,
844 "linux,usable-memory", &len);
845 if (!memcell_buf || len <= 0)
846 memcell_buf = of_get_property(memory, "reg", &len);
847 if (!memcell_buf || len <= 0)
848 continue;
849
850 /* ranges in cell */
851 ranges = (len >> 2) / (n_mem_addr_cells + n_mem_size_cells);
852 new_range:
853 /* these are order-sensitive, and modify the buffer pointer */
854 start = read_n_cells(n_mem_addr_cells, &memcell_buf);
855 size = read_n_cells(n_mem_size_cells, &memcell_buf);
856
857 /*
858 * Assumption: either all memory nodes or none will
859 * have associativity properties. If none, then
860 * everything goes to default_nid.
861 */
862 associativity = of_get_associativity(memory);
863 if (associativity) {
864 nid = associativity_to_nid(associativity);
865 __initialize_form1_numa_distance(associativity);
866 } else
867 nid = default_nid;
868
869 fake_numa_create_new_node(((start + size) >> PAGE_SHIFT), &nid);
870 node_set_online(nid);
871
872 size = numa_enforce_memory_limit(start, size);
873 if (size)
874 memblock_set_node(start, size, &memblock.memory, nid);
875
876 if (--ranges)
877 goto new_range;
878 }
879
880 /*
881 * Now do the same thing for each MEMBLOCK listed in the
882 * ibm,dynamic-memory property in the
883 * ibm,dynamic-reconfiguration-memory node.
884 */
885 memory = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
886 if (memory) {
887 walk_drmem_lmbs(memory, NULL, numa_setup_drmem_lmb);
888 of_node_put(memory);
889 }
890
891 return 0;
892 }
893
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 43062 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v5 4/6] powerpc/pseries: Consolidate different NUMA distance update code paths
Date: Tue, 29 Jun 2021 04:40:56 +0800 [thread overview]
Message-ID: <202106290413.yYgDdKvn-lkp@intel.com> (raw)
In-Reply-To: <20210628151117.545935-5-aneesh.kumar@linux.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 6458 bytes --]
Hi "Aneesh,
I love your patch! Yet something to improve:
[auto build test ERROR on powerpc/next]
[also build test ERROR on v5.13 next-20210628]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Aneesh-Kumar-K-V/Add-support-for-FORM2-associativity/20210628-231546
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-randconfig-r024-20210628 (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/fcbc8b19e99b1cf44fde904817f19616c6baecdb
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Aneesh-Kumar-K-V/Add-support-for-FORM2-associativity/20210628-231546
git checkout fcbc8b19e99b1cf44fde904817f19616c6baecdb
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
arch/powerpc/mm/numa.c:298:6: warning: no previous prototype for 'update_numa_distance' [-Wmissing-prototypes]
298 | void update_numa_distance(struct device_node *node)
| ^~~~~~~~~~~~~~~~~~~~
arch/powerpc/mm/numa.c: In function 'parse_numa_properties':
>> arch/powerpc/mm/numa.c:809:7: error: implicit declaration of function '__vphn_get_associativity'; did you mean 'of_get_associativity'? [-Werror=implicit-function-declaration]
809 | if (__vphn_get_associativity(i, vphn_assoc) == 0) {
| ^~~~~~~~~~~~~~~~~~~~~~~~
| of_get_associativity
cc1: some warnings being treated as errors
vim +809 arch/powerpc/mm/numa.c
771
772 static int __init parse_numa_properties(void)
773 {
774 struct device_node *memory;
775 int default_nid = 0;
776 unsigned long i;
777 const __be32 *associativity;
778
779 if (numa_enabled == 0) {
780 printk(KERN_WARNING "NUMA disabled by user\n");
781 return -1;
782 }
783
784 primary_domain_index = find_primary_domain_index();
785
786 if (primary_domain_index < 0) {
787 /*
788 * if we fail to parse primary_domain_index from device tree
789 * mark the numa disabled, boot with numa disabled.
790 */
791 numa_enabled = false;
792 return primary_domain_index;
793 }
794
795 dbg("NUMA associativity depth for CPU/Memory: %d\n", primary_domain_index);
796
797 /*
798 * Even though we connect cpus to numa domains later in SMP
799 * init, we need to know the node ids now. This is because
800 * each node to be onlined must have NODE_DATA etc backing it.
801 */
802 for_each_present_cpu(i) {
803 __be32 vphn_assoc[VPHN_ASSOC_BUFSIZE];
804 struct device_node *cpu;
805 int nid = NUMA_NO_NODE;
806
807 memset(vphn_assoc, 0, VPHN_ASSOC_BUFSIZE * sizeof(__be32));
808
> 809 if (__vphn_get_associativity(i, vphn_assoc) == 0) {
810 nid = associativity_to_nid(vphn_assoc);
811 __initialize_form1_numa_distance(vphn_assoc);
812 } else {
813
814 /*
815 * Don't fall back to default_nid yet -- we will plug
816 * cpus into nodes once the memory scan has discovered
817 * the topology.
818 */
819 cpu = of_get_cpu_node(i, NULL);
820 BUG_ON(!cpu);
821
822 associativity = of_get_associativity(cpu);
823 if (associativity) {
824 nid = associativity_to_nid(associativity);
825 __initialize_form1_numa_distance(associativity);
826 }
827 of_node_put(cpu);
828 }
829
830 node_set_online(nid);
831 }
832
833 get_n_mem_cells(&n_mem_addr_cells, &n_mem_size_cells);
834
835 for_each_node_by_type(memory, "memory") {
836 unsigned long start;
837 unsigned long size;
838 int nid;
839 int ranges;
840 const __be32 *memcell_buf;
841 unsigned int len;
842
843 memcell_buf = of_get_property(memory,
844 "linux,usable-memory", &len);
845 if (!memcell_buf || len <= 0)
846 memcell_buf = of_get_property(memory, "reg", &len);
847 if (!memcell_buf || len <= 0)
848 continue;
849
850 /* ranges in cell */
851 ranges = (len >> 2) / (n_mem_addr_cells + n_mem_size_cells);
852 new_range:
853 /* these are order-sensitive, and modify the buffer pointer */
854 start = read_n_cells(n_mem_addr_cells, &memcell_buf);
855 size = read_n_cells(n_mem_size_cells, &memcell_buf);
856
857 /*
858 * Assumption: either all memory nodes or none will
859 * have associativity properties. If none, then
860 * everything goes to default_nid.
861 */
862 associativity = of_get_associativity(memory);
863 if (associativity) {
864 nid = associativity_to_nid(associativity);
865 __initialize_form1_numa_distance(associativity);
866 } else
867 nid = default_nid;
868
869 fake_numa_create_new_node(((start + size) >> PAGE_SHIFT), &nid);
870 node_set_online(nid);
871
872 size = numa_enforce_memory_limit(start, size);
873 if (size)
874 memblock_set_node(start, size, &memblock.memory, nid);
875
876 if (--ranges)
877 goto new_range;
878 }
879
880 /*
881 * Now do the same thing for each MEMBLOCK listed in the
882 * ibm,dynamic-memory property in the
883 * ibm,dynamic-reconfiguration-memory node.
884 */
885 memory = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
886 if (memory) {
887 walk_drmem_lmbs(memory, NULL, numa_setup_drmem_lmb);
888 of_node_put(memory);
889 }
890
891 return 0;
892 }
893
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 43062 bytes --]
next prev parent reply other threads:[~2021-06-28 20:43 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-28 15:11 [PATCH v5 0/6] Add support for FORM2 associativity Aneesh Kumar K.V
2021-06-28 15:11 ` [PATCH v5 1/6] powerpc/pseries: rename min_common_depth to primary_domain_index Aneesh Kumar K.V
2021-07-22 1:59 ` David Gibson
2021-07-22 2:36 ` David Gibson
2021-07-22 5:17 ` Aneesh Kumar K.V
2021-07-26 2:28 ` David Gibson
2021-06-28 15:11 ` [PATCH v5 2/6] powerpc/pseries: rename distance_ref_points_depth to max_associativity_domain_index Aneesh Kumar K.V
2021-07-22 0:59 ` David Gibson
2021-07-22 1:19 ` David Gibson
2021-06-28 15:11 ` [PATCH v5 3/6] powerpc/pseries: Rename TYPE1_AFFINITY to FORM1_AFFINITY Aneesh Kumar K.V
2021-06-28 15:11 ` [PATCH v5 4/6] powerpc/pseries: Consolidate different NUMA distance update code paths Aneesh Kumar K.V
2021-06-28 20:21 ` kernel test robot
2021-06-28 20:21 ` kernel test robot
2021-06-28 20:40 ` kernel test robot [this message]
2021-06-28 20:40 ` kernel test robot
2021-07-22 1:40 ` David Gibson
2021-07-22 7:07 ` Aneesh Kumar K.V
2021-07-26 2:37 ` David Gibson
2021-07-27 3:32 ` Aneesh Kumar K.V
2021-07-27 5:59 ` David Gibson
2021-06-28 15:11 ` [PATCH v5 5/6] powerpc/pseries: Add a helper for form1 cpu distance Aneesh Kumar K.V
2021-07-22 1:42 ` David Gibson
2021-07-22 7:09 ` Aneesh Kumar K.V
2021-07-26 2:38 ` David Gibson
2021-06-28 15:11 ` [PATCH v5 6/6] powerpc/pseries: Add support for FORM2 associativity Aneesh Kumar K.V
2021-07-22 2:28 ` David Gibson
2021-07-22 7:34 ` Aneesh Kumar K.V
2021-07-26 2:41 ` David Gibson
2021-07-13 14:27 ` [PATCH v5 0/6] " Daniel Henrique Barboza
2021-07-13 14:30 ` Aneesh Kumar K.V
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=202106290413.yYgDdKvn-lkp@intel.com \
--to=lkp@intel.com \
--cc=aneesh.kumar@linux.ibm.com \
--cc=danielhb413@gmail.com \
--cc=david@gibson.dropbear.id.au \
--cc=kbuild-all@lists.01.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=nathanl@linux.ibm.com \
/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.