On Mon, Aug 03, 2020 at 07:58:54PM -0400, Joshua Kinard wrote:
> On 8/3/2020 15:49, Mike Rapoport wrote:
> > Hi,
> > 
> > On Tue, Aug 04, 2020 at 01:39:14AM +0800, kernel test robot wrote:
> >> Hi Mike,
> >>
> >> FYI, the error/warning still remains.
> >>
> >> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
> >> master
> >> head:   bcf876870b95592b52519ed4aafcf9d95999bc9c
> >> commit: 397dc00e249ec64e106374565575dd0eb7e25998 mips: sgi-ip27: switch 
> >> from DISCONTIGMEM to SPARSEMEM
> >> date:   10 months ago
> >> config: mips-randconfig-r032-20200803 (attached as .config)
> >> compiler: mips64-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
> >>         git checkout 397dc00e249ec64e106374565575dd0eb7e25998
> >>         # save the attached .config to linux build tree
> >>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross 
> >> ARCH=mips 
> >>
> >> If you fix the issue, kindly add following tag as appropriate
> >> Reported-by: kernel test robot <l...@intel.com>
> >>
> >> All errors (new ones prefixed by >>):
> >>
> >>    In file included from arch/mips/include/asm/topology.h:11,
> >>                     from include/linux/topology.h:36,
> >>                     from include/linux/gfp.h:9,
> >>                     from include/linux/slab.h:15,
> >>                     from include/linux/crypto.h:19,
> >>                     from include/crypto/hash.h:11,
> >>                     from include/linux/uio.h:10,
> >>                     from include/linux/socket.h:8,
> >>                     from include/linux/compat.h:15,
> >>                     from arch/mips/kernel/asm-offsets.c:12:
> >>    arch/mips/include/asm/mach-ip27/topology.h:25:39: error: 
> >> 'MAX_COMPACT_NODES' undeclared here (not in a function)
> >>       25 | extern unsigned char 
> >> __node_distances[MAX_COMPACT_NODES][MAX_COMPACT_NODES];
> >>          |                                       ^~~~~~~~~~~~~~~~~
> >>    include/linux/topology.h: In function 'numa_node_id':
> >>>> arch/mips/include/asm/mach-ip27/topology.h:16:27: error: implicit 
> >>>> declaration of function 'cputonasid' 
> >>>> [-Werror=implicit-function-declaration]
> >>       16 | #define cpu_to_node(cpu) (cputonasid(cpu))
> >>          |                           ^~~~~~~~~~
> > 
> > This happens when randconfig disables NUMA and has SGI_IP27 enabled.
> > Before switch from discontigmem to sparsemem, there always was
> > CONFIG_NEED_MULTIPLE_NODES=y because it was selected by DISCONTIGMEM.
> > Without DISCONTIGMEM it is possible to have SPARSEMEM without NUMA for
> > SGI_IP27 and as many things there rely on custom node definition, the
> > build breaks.
> > 
> > I don't remember small Origin or Onyx systems so I think it would be
> > reasonable to make SGI_IP27 to select NUMA. If the below patch makes
> > sense I'll resend it formally.
> > 
> > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> > index 6fee1a133e9d..a7e40bb1e5bc 100644
> > --- a/arch/mips/Kconfig
> > +++ b/arch/mips/Kconfig
> > @@ -678,6 +678,7 @@ config SGI_IP27
> >     select SYS_SUPPORTS_NUMA
> >     select SYS_SUPPORTS_SMP
> >     select MIPS_L1_CACHE_SHIFT_7
> > +   select NUMA
> >     help
> >       This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
> >       workstations.  To compile a Linux kernel that runs on these, say Y
> 
> NUMA is really only needed if you have more than one nodeboard for the Onyx2
> or Origin2000 systems.  If you just have a single Origin 200 system, you
> want to turn NUMA off.  I happen to have both a single Origin 200 system and
> an Onyx2 w/ two nodeboards.  Haven't fired them up recently on modern
> kernels, though.
> 
> I can't think of a good workaround off the top of my head for this case.
> NUMA shouldn't hurt an Origin 200, but I recall Ralf once telling me it does
> introduce slowdown at some points due to checks for other nodes being done
> when we know there can't physically be any more (exception: dual Origin
> 200's hooked together via CrossTown cables).
 
Before the removal of DISCONTIGMEM, Origin 200 would still have multiple
nodes and AFAIU it was not configurable, so I'm not sure there would be
a measurable difference between DISCONTIGMEM + !NUMA vs SPARSEMEM + NUMA 

> -- 
> Joshua Kinard
> Gentoo/MIPS
> ku...@gentoo.org
> rsa6144/5C63F4E3F5C6C943 2015-04-27
> 177C 1972 1FB8 F254 BAD0 3E72 5C63 F4E3 F5C6 C943
> 
> "The past tempts us, the present confuses us, the future frightens us.  And
> our lives slip away, moment by moment, lost in that vast, terrible 
> in-between."
> 
> --Emperor Turhan, Centauri Republic

-- 
Sincerely yours,
Mike.

Reply via email to