[PATCH v3 3/7] mm: Add PG_arch_3 page flag

Catalin Marinas catalin.marinas at arm.com
Mon Sep 5 10:01:55 PDT 2022


On Thu, Sep 01, 2022 at 06:59:23PM +0100, Catalin Marinas wrote:
> On Thu, Aug 11, 2022 at 03:16:08PM +0800, kernel test robot wrote:
> > Thank you for the patch! Perhaps something to improve:
> > 
> > [auto build test WARNING on arm64/for-next/core]
> > [also build test WARNING on linus/master next-20220811]
> > [cannot apply to kvmarm/next arm/for-next soc/for-next xilinx-xlnx/master v5.19]
> > [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#_base_tree_information]
> > 
> > url:    https://github.com/intel-lab-lkp/linux/commits/Peter-Collingbourne/KVM-arm64-permit-MAP_SHARED-mappings-with-MTE-enabled/20220811-033310
> > base:   https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
> > config: loongarch-defconfig (https://download.01.org/0day-ci/archive/20220811/202208111500.62e0Bl2l-lkp@intel.com/config)
> > compiler: loongarch64-linux-gcc (GCC) 12.1.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/intel-lab-lkp/linux/commit/1a400517d8428df0ec9f86f8d303b2227ee9702f
> >         git remote add linux-review https://github.com/intel-lab-lkp/linux
> >         git fetch --no-tags linux-review Peter-Collingbourne/KVM-arm64-permit-MAP_SHARED-mappings-with-MTE-enabled/20220811-033310
> >         git checkout 1a400517d8428df0ec9f86f8d303b2227ee9702f
> >         # save the config file
> >         mkdir build_dir && cp config build_dir/.config
> >         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=loongarch SHELL=/bin/bash
> > 
> > If you fix the issue, kindly add following tag where applicable
> > Reported-by: kernel test robot <lkp at intel.com>
> > 
> > All warnings (new ones prefixed by >>):
> > 
> > >> mm/memory.c:92:2: warning: #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid. [-Wcpp]
> >       92 | #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid.
> >          |  ^~~~~~~
> > 
> > 
> > vim +92 mm/memory.c
> > 
> > 42b7772812d15b Jan Beulich    2008-07-23  90  
> > af27d9403f5b80 Arnd Bergmann  2018-02-16  91  #if defined(LAST_CPUPID_NOT_IN_PAGE_FLAGS) && !defined(CONFIG_COMPILE_TEST)
> > 90572890d20252 Peter Zijlstra 2013-10-07 @92  #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid.
> > 75980e97daccfc Peter Zijlstra 2013-02-22  93  #endif
> > 75980e97daccfc Peter Zijlstra 2013-02-22  94  
> 
> It looks like ith CONFIG_NUMA_BALANCING=y on loongarch we run out of
> spare bits in page->flags to fit last_cpupid. The reason we don't see it
> on arm64 is that we select SPARSEMEM_VMEMMAP and SECTIONS_WIDTH becomes
> 0. On loongarch SECTIONS_WIDTH takes 19 bits (48 - 29) in page->flags.
> 
> I think instead of always defining PG_arch_{2,3} if CONFIG_64BIT, we
> could add a CONFIG_ARCH_WANTS_PG_ARCH_23 option and only select it on
> arm64 for the time being.

I pushed a patch as the first one on the arm64 devel/mte-pg-flags
branch. Also updated the last patch on this branch following Steven's
comments.

Peter, please let me know if you want to pick this series up together
with your other KVM patches. Otherwise I can post it separately, it's
worth merging it on its own as it clarifies the page flag vs tag setting
ordering.

-- 
Catalin



More information about the linux-arm-kernel mailing list