Re: [PATCH] mm/page_alloc: make the maximum number of highatomic pageblocks resizable

kernel test robot
2025-02-27T04:54:19Z

Hi,

kernel test robot noticed the following build warnings:

[auto build test WARNING 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-006-20250227 (https://download.01.org/0day-ci/archive/20250227/202502271248.bHUExwvw-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/202502271248.bHUExwvw-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/202502271248.bHUExwvw-lkp@intel.com/

All 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: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: initialization of 'const char *' from incompatible pointer type 'int *' [-Werror=incompatible-pointer-types]
6263 | .data = &highatomic_reserve_ratio,
| ^
mm/page_alloc.c:6263:35: note: (near initialization for 'page_alloc_sysctl_table[5].procname')
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: warning: initialization of 'const char *' from 'long unsigned int' makes pointer from integer without a cast [-Wint-conversion]
6264 | .maxlen = sizeof(highatomic_reserve_ratio),
| ^~~~~~
mm/page_alloc.c:6264:35: note: (near initialization for 'page_alloc_sysctl_table[6].procname')
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: warning: initialization of 'const char *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
6265 | .mode = 0644,
| ^~~~
mm/page_alloc.c:6265:35: note: (near initialization for 'page_alloc_sysctl_table[7].procname')
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: initialization of 'const char *' from incompatible pointer type 'int (*)(const struct ctl_table *, int, void *, size_t *, loff_t *)' {aka 'int (*)(const struct ctl_table *, int, void *, long unsigned int *, long long int *)'} [-Werror=incompatible-pointer-types]
6266 | .proc_handler = proc_dointvec_minmax,
| ^~~~~~~~~~~~~~~~~~~~
mm/page_alloc.c:6266:35: note: (near initialization for 'page_alloc_sysctl_table[8].procname')
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')
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)
| ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors

vim +6264 mm/page_alloc.c

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 };