All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: zhongjinji@honor.com, akpm@linux-foundation.org
Cc: oe-kbuild-all@lists.linux.dev, yuzhao@google.com,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	rientjes@google.com, vbabka@suse.cz, zhongjinji@honor.com,
	yipengxiang@honor.com, liulu.liu@honor.com, feng.han@honor.com
Subject: Re: [PATCH] mm/page_alloc: make the maximum number of highatomic pageblocks resizable
Date: Thu, 27 Feb 2025 13:35:41 +0800	[thread overview]
Message-ID: <202502271338.7VyyFcoF-lkp@intel.com> (raw)
In-Reply-To: <20250226024126.3718-1-zhongjinji@honor.com>

Hi,

kernel test robot noticed the following build errors:

[auto build test ERROR on akpm-mm/mm-everything]

url:    https://github.com/intel-lab-lkp/linux/commits/zhongjinji-honor-com/mm-page_alloc-make-the-maximum-number-of-highatomic-pageblocks-resizable/20250226-121712
base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link:    https://lore.kernel.org/r/20250226024126.3718-1-zhongjinji%40honor.com
patch subject: [PATCH] mm/page_alloc: make the maximum number of highatomic pageblocks resizable
config: x86_64-buildonly-randconfig-003-20250227 (https://download.01.org/0day-ci/archive/20250227/202502271338.7VyyFcoF-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250227/202502271338.7VyyFcoF-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502271338.7VyyFcoF-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

>> mm/page_alloc.c:6262:17: error: field name not in record or union initializer
    6262 |                 .procname       = "highatomic_reserve_ratio",
         |                 ^
   mm/page_alloc.c:6262:17: note: (near initialization for 'page_alloc_sysctl_table')
>> mm/page_alloc.c:6262:35: error: invalid initializer
    6262 |                 .procname       = "highatomic_reserve_ratio",
         |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   mm/page_alloc.c:6262:35: note: (near initialization for 'page_alloc_sysctl_table[4].<anonymous>')
   mm/page_alloc.c:6263:17: error: field name not in record or union initializer
    6263 |                 .data           = &highatomic_reserve_ratio,
         |                 ^
   mm/page_alloc.c:6263:17: note: (near initialization for 'page_alloc_sysctl_table')
   mm/page_alloc.c:6263:35: error: invalid initializer
    6263 |                 .data           = &highatomic_reserve_ratio,
         |                                   ^
   mm/page_alloc.c:6263:35: note: (near initialization for 'page_alloc_sysctl_table[5].<anonymous>')
   mm/page_alloc.c:6264:17: error: field name not in record or union initializer
    6264 |                 .maxlen         = sizeof(highatomic_reserve_ratio),
         |                 ^
   mm/page_alloc.c:6264:17: note: (near initialization for 'page_alloc_sysctl_table')
   mm/page_alloc.c:6264:35: error: invalid initializer
    6264 |                 .maxlen         = sizeof(highatomic_reserve_ratio),
         |                                   ^~~~~~
   mm/page_alloc.c:6264:35: note: (near initialization for 'page_alloc_sysctl_table[6].<anonymous>')
   mm/page_alloc.c:6265:17: error: field name not in record or union initializer
    6265 |                 .mode           = 0644,
         |                 ^
   mm/page_alloc.c:6265:17: note: (near initialization for 'page_alloc_sysctl_table')
   mm/page_alloc.c:6265:35: error: invalid initializer
    6265 |                 .mode           = 0644,
         |                                   ^~~~
   mm/page_alloc.c:6265:35: note: (near initialization for 'page_alloc_sysctl_table[7].<anonymous>')
   mm/page_alloc.c:6266:17: error: field name not in record or union initializer
    6266 |                 .proc_handler   = proc_dointvec_minmax,
         |                 ^
   mm/page_alloc.c:6266:17: note: (near initialization for 'page_alloc_sysctl_table')
   mm/page_alloc.c:6266:35: error: invalid initializer
    6266 |                 .proc_handler   = proc_dointvec_minmax,
         |                                   ^~~~~~~~~~~~~~~~~~~~
   mm/page_alloc.c:6266:35: note: (near initialization for 'page_alloc_sysctl_table[8].<anonymous>')
   mm/page_alloc.c:6267:17: error: field name not in record or union initializer
    6267 |                 .extra1         = SYSCTL_ZERO,
         |                 ^
   mm/page_alloc.c:6267:17: note: (near initialization for 'page_alloc_sysctl_table')
   In file included from include/linux/key.h:17,
                    from include/linux/cred.h:13,
                    from include/linux/sched/signal.h:10,
                    from include/linux/rcuwait.h:6,
                    from include/linux/mm.h:35,
                    from mm/page_alloc.c:19:
>> include/linux/sysctl.h:41:41: error: invalid initializer
      41 | #define SYSCTL_ZERO                     ((void *)&sysctl_vals[0])
         |                                         ^
   mm/page_alloc.c:6267:35: note: in expansion of macro 'SYSCTL_ZERO'
    6267 |                 .extra1         = SYSCTL_ZERO,
         |                                   ^~~~~~~~~~~
   include/linux/sysctl.h:41:41: note: (near initialization for 'page_alloc_sysctl_table[9].<anonymous>')
      41 | #define SYSCTL_ZERO                     ((void *)&sysctl_vals[0])
         |                                         ^
   mm/page_alloc.c:6267:35: note: in expansion of macro 'SYSCTL_ZERO'
    6267 |                 .extra1         = SYSCTL_ZERO,
         |                                   ^~~~~~~~~~~
>> mm/page_alloc.c:6228:59: warning: missing braces around initializer [-Wmissing-braces]
    6228 | static const struct ctl_table page_alloc_sysctl_table[] = {
         |                                                           ^
>> mm/page_alloc.c:6269:9: error: expected identifier or '(' before '{' token
    6269 |         {
         |         ^
   mm/page_alloc.c:6275:10: error: expected identifier or '(' before ',' token
    6275 |         },
         |          ^
>> mm/page_alloc.c:6174:12: warning: 'lowmem_reserve_ratio_sysctl_handler' defined but not used [-Wunused-function]
    6174 | static int lowmem_reserve_ratio_sysctl_handler(const struct ctl_table *table,
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/suspend.h:5,
                    from mm/page_alloc.c:28:
   include/linux/swap.h:590:12: warning: 'folio_alloc_swap' defined but not used [-Wunused-function]
     590 | static int folio_alloc_swap(struct folio *folio, gfp_t gfp_mask)
         |            ^~~~~~~~~~~~~~~~


vim +6262 mm/page_alloc.c

  6164	
  6165	/*
  6166	 * lowmem_reserve_ratio_sysctl_handler - just a wrapper around
  6167	 *	proc_dointvec() so that we can call setup_per_zone_lowmem_reserve()
  6168	 *	whenever sysctl_lowmem_reserve_ratio changes.
  6169	 *
  6170	 * The reserve ratio obviously has absolutely no relation with the
  6171	 * minimum watermarks. The lowmem reserve ratio can only make sense
  6172	 * if in function of the boot time zone sizes.
  6173	 */
> 6174	static int lowmem_reserve_ratio_sysctl_handler(const struct ctl_table *table,
  6175			int write, void *buffer, size_t *length, loff_t *ppos)
  6176	{
  6177		int i;
  6178	
  6179		proc_dointvec_minmax(table, write, buffer, length, ppos);
  6180	
  6181		for (i = 0; i < MAX_NR_ZONES; i++) {
  6182			if (sysctl_lowmem_reserve_ratio[i] < 1)
  6183				sysctl_lowmem_reserve_ratio[i] = 0;
  6184		}
  6185	
  6186		setup_per_zone_lowmem_reserve();
  6187		return 0;
  6188	}
  6189	
  6190	/*
  6191	 * percpu_pagelist_high_fraction - changes the pcp->high for each zone on each
  6192	 * cpu. It is the fraction of total pages in each zone that a hot per cpu
  6193	 * pagelist can have before it gets flushed back to buddy allocator.
  6194	 */
  6195	static int percpu_pagelist_high_fraction_sysctl_handler(const struct ctl_table *table,
  6196			int write, void *buffer, size_t *length, loff_t *ppos)
  6197	{
  6198		struct zone *zone;
  6199		int old_percpu_pagelist_high_fraction;
  6200		int ret;
  6201	
  6202		mutex_lock(&pcp_batch_high_lock);
  6203		old_percpu_pagelist_high_fraction = percpu_pagelist_high_fraction;
  6204	
  6205		ret = proc_dointvec_minmax(table, write, buffer, length, ppos);
  6206		if (!write || ret < 0)
  6207			goto out;
  6208	
  6209		/* Sanity checking to avoid pcp imbalance */
  6210		if (percpu_pagelist_high_fraction &&
  6211		    percpu_pagelist_high_fraction < MIN_PERCPU_PAGELIST_HIGH_FRACTION) {
  6212			percpu_pagelist_high_fraction = old_percpu_pagelist_high_fraction;
  6213			ret = -EINVAL;
  6214			goto out;
  6215		}
  6216	
  6217		/* No change? */
  6218		if (percpu_pagelist_high_fraction == old_percpu_pagelist_high_fraction)
  6219			goto out;
  6220	
  6221		for_each_populated_zone(zone)
  6222			zone_set_pageset_high_and_batch(zone, 0);
  6223	out:
  6224		mutex_unlock(&pcp_batch_high_lock);
  6225		return ret;
  6226	}
  6227	
> 6228	static const struct ctl_table page_alloc_sysctl_table[] = {
  6229		{
  6230			.procname	= "min_free_kbytes",
  6231			.data		= &min_free_kbytes,
  6232			.maxlen		= sizeof(min_free_kbytes),
  6233			.mode		= 0644,
  6234			.proc_handler	= min_free_kbytes_sysctl_handler,
  6235			.extra1		= SYSCTL_ZERO,
  6236		},
  6237		{
  6238			.procname	= "watermark_boost_factor",
  6239			.data		= &watermark_boost_factor,
  6240			.maxlen		= sizeof(watermark_boost_factor),
  6241			.mode		= 0644,
  6242			.proc_handler	= proc_dointvec_minmax,
  6243			.extra1		= SYSCTL_ZERO,
  6244		},
  6245		{
  6246			.procname	= "watermark_scale_factor",
  6247			.data		= &watermark_scale_factor,
  6248			.maxlen		= sizeof(watermark_scale_factor),
  6249			.mode		= 0644,
  6250			.proc_handler	= watermark_scale_factor_sysctl_handler,
  6251			.extra1		= SYSCTL_ONE,
  6252			.extra2		= SYSCTL_THREE_THOUSAND,
  6253		},
  6254		{
  6255			.procname	= "percpu_pagelist_high_fraction",
  6256			.data		= &percpu_pagelist_high_fraction,
  6257			.maxlen		= sizeof(percpu_pagelist_high_fraction),
  6258			.mode		= 0644,
  6259			.proc_handler	= percpu_pagelist_high_fraction_sysctl_handler,
  6260			.extra1		= SYSCTL_ZERO,
  6261		},
> 6262			.procname	= "highatomic_reserve_ratio",
  6263			.data		= &highatomic_reserve_ratio,
  6264			.maxlen		= sizeof(highatomic_reserve_ratio),
  6265			.mode		= 0644,
  6266			.proc_handler	= proc_dointvec_minmax,
  6267			.extra1		= SYSCTL_ZERO,
  6268		},
> 6269		{
  6270			.procname	= "lowmem_reserve_ratio",
  6271			.data		= &sysctl_lowmem_reserve_ratio,
  6272			.maxlen		= sizeof(sysctl_lowmem_reserve_ratio),
  6273			.mode		= 0644,
  6274			.proc_handler	= lowmem_reserve_ratio_sysctl_handler,
  6275		},
  6276	#ifdef CONFIG_NUMA
  6277		{
  6278			.procname	= "numa_zonelist_order",
  6279			.data		= &numa_zonelist_order,
  6280			.maxlen		= NUMA_ZONELIST_ORDER_LEN,
  6281			.mode		= 0644,
  6282			.proc_handler	= numa_zonelist_order_handler,
  6283		},
  6284		{
  6285			.procname	= "min_unmapped_ratio",
  6286			.data		= &sysctl_min_unmapped_ratio,
  6287			.maxlen		= sizeof(sysctl_min_unmapped_ratio),
  6288			.mode		= 0644,
  6289			.proc_handler	= sysctl_min_unmapped_ratio_sysctl_handler,
  6290			.extra1		= SYSCTL_ZERO,
  6291			.extra2		= SYSCTL_ONE_HUNDRED,
  6292		},
  6293		{
  6294			.procname	= "min_slab_ratio",
  6295			.data		= &sysctl_min_slab_ratio,
  6296			.maxlen		= sizeof(sysctl_min_slab_ratio),
  6297			.mode		= 0644,
  6298			.proc_handler	= sysctl_min_slab_ratio_sysctl_handler,
  6299			.extra1		= SYSCTL_ZERO,
  6300			.extra2		= SYSCTL_ONE_HUNDRED,
  6301		},
  6302	#endif
  6303	};
  6304	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  parent reply	other threads:[~2025-02-27  5:36 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-26  2:41 [PATCH] mm/page_alloc: make the maximum number of highatomic pageblocks resizable zhongjinji
2025-02-26 23:17 ` Andrew Morton
2025-02-27  4:53 ` kernel test robot
2025-02-27  5:25 ` kernel test robot
2025-02-27  5:35 ` kernel test robot [this message]
2025-02-28 11:01 ` Vlastimil Babka

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=202502271338.7VyyFcoF-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=feng.han@honor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=liulu.liu@honor.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=rientjes@google.com \
    --cc=vbabka@suse.cz \
    --cc=yipengxiang@honor.com \
    --cc=yuzhao@google.com \
    --cc=zhongjinji@honor.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.