* Re: [RFC 1/1] writeback: add sysfs to config the number of writeback contexts
[not found] <20250825122931.13037-2-wangyufei@vivo.com>
@ 2026-08-14 22:57 ` kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-08-14 22:57 UTC (permalink / raw)
To: wangyufei; +Cc: llvm, oe-kbuild-all
Hi wangyufei,
[This is a private test report for your RFC patch.]
kernel test robot noticed the following build warnings:
[auto build test WARNING on akpm-mm/mm-everything]
[also build test WARNING on linus/master v7.2-rc7 next-20260813]
[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/wangyufei/writeback-add-sysfs-to-config-the-number-of-writeback-contexts/20260813-143259
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/20250825122931.13037-2-wangyufei%40vivo.com
patch subject: [RFC 1/1] writeback: add sysfs to config the number of writeback contexts
config: loongarch-defconfig (https://download.01.org/0day-ci/archive/20260815/202608150637.VqHmBYp4-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 844a18e753e822736c9805ab779144b647a2c186)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260815/202608150637.VqHmBYp4-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/202608150637.VqHmBYp4-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from init/do_mounts.c:23:
In file included from include/linux/nfs_fs.h:43:
In file included from include/linux/nfs_fs_sb.h:6:
>> include/linux/backing-dev.h:118:58: warning: declaration of 'struct bdi_writeback_ctx' will not be visible outside of this function [-Wvisibility]
118 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx);
| ^
include/linux/backing-dev.h:119:59: warning: declaration of 'struct bdi_writeback_ctx' will not be visible outside of this function [-Wvisibility]
119 | void bdi_wb_ctx_exit(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx);
| ^
2 warnings generated.
--
In file included from mm/page-writeback.c:26:
>> include/linux/backing-dev.h:118:58: warning: declaration of 'struct bdi_writeback_ctx' will not be visible outside of this function [-Wvisibility]
118 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx);
| ^
include/linux/backing-dev.h:119:59: warning: declaration of 'struct bdi_writeback_ctx' will not be visible outside of this function [-Wvisibility]
119 | void bdi_wb_ctx_exit(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx);
| ^
mm/page-writeback.c:734:27: error: no member named 'nr_wb_ctx' in 'struct backing_dev_info'
734 | for (i = 0; i < min(bdi->nr_wb_ctx, nwritebacks); i++)
| ~~~ ^
mm/page-writeback.c:735:25: error: no member named 'wb_ctx_arr' in 'struct backing_dev_info'
735 | new_ctx_arr[i] = bdi->wb_ctx_arr[i];
| ~~~ ^
mm/page-writeback.c:737:16: error: no member named 'nr_wb_ctx' in 'struct backing_dev_info'
737 | for (i = bdi->nr_wb_ctx; i < nwritebacks; i++) {
| ~~~ ^
mm/page-writeback.c:739:12: error: invalid application of 'sizeof' to an incomplete type 'struct bdi_writeback_ctx'
739 | kzalloc(sizeof(struct bdi_writeback_ctx), GFP_KERNEL);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:1320:59: note: expanded from macro 'kzalloc'
1320 | #define kzalloc(size, flags) alloc_hooks(kzalloc_noprof(size, flags))
| ^~~~
include/linux/slab.h:1311:47: note: expanded from macro 'kzalloc_noprof'
1311 | #define kzalloc_noprof(...) _kzalloc_noprof(__VA_ARGS__, __kmalloc_token(__VA_ARGS__))
| ^~~~~~~~~~~
include/linux/alloc_tag.h:270:31: note: expanded from macro 'alloc_hooks'
270 | alloc_hooks_tag(&_alloc_tag, _do_alloc); \
| ^~~~~~~~~
include/linux/alloc_tag.h:256:9: note: expanded from macro 'alloc_hooks_tag'
256 | typeof(_do_alloc) _res; \
| ^~~~~~~~~
mm/page-writeback.c:727:9: note: forward declaration of 'struct bdi_writeback_ctx'
727 | struct bdi_writeback_ctx **new_ctx_arr, **old_ctx_arr;
| ^
mm/page-writeback.c:739:12: error: invalid application of 'sizeof' to an incomplete type 'struct bdi_writeback_ctx'
739 | kzalloc(sizeof(struct bdi_writeback_ctx), GFP_KERNEL);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:1320:59: note: expanded from macro 'kzalloc'
1320 | #define kzalloc(size, flags) alloc_hooks(kzalloc_noprof(size, flags))
| ^~~~
include/linux/slab.h:1311:47: note: expanded from macro 'kzalloc_noprof'
1311 | #define kzalloc_noprof(...) _kzalloc_noprof(__VA_ARGS__, __kmalloc_token(__VA_ARGS__))
| ^~~~~~~~~~~
include/linux/alloc_tag.h:270:31: note: expanded from macro 'alloc_hooks'
270 | alloc_hooks_tag(&_alloc_tag, _do_alloc); \
| ^~~~~~~~~
include/linux/alloc_tag.h:260:10: note: expanded from macro 'alloc_hooks_tag'
260 | _res = _do_alloc; \
| ^~~~~~~~~
mm/page-writeback.c:727:9: note: forward declaration of 'struct bdi_writeback_ctx'
727 | struct bdi_writeback_ctx **new_ctx_arr, **old_ctx_arr;
| ^
mm/page-writeback.c:739:12: error: invalid application of 'sizeof' to an incomplete type 'struct bdi_writeback_ctx'
739 | kzalloc(sizeof(struct bdi_writeback_ctx), GFP_KERNEL);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:1320:59: note: expanded from macro 'kzalloc'
1320 | #define kzalloc(size, flags) alloc_hooks(kzalloc_noprof(size, flags))
| ^~~~
include/linux/slab.h:1311:47: note: expanded from macro 'kzalloc_noprof'
1311 | #define kzalloc_noprof(...) _kzalloc_noprof(__VA_ARGS__, __kmalloc_token(__VA_ARGS__))
| ^~~~~~~~~~~
include/linux/alloc_tag.h:270:31: note: expanded from macro 'alloc_hooks'
270 | alloc_hooks_tag(&_alloc_tag, _do_alloc); \
| ^~~~~~~~~
include/linux/alloc_tag.h:263:10: note: expanded from macro 'alloc_hooks_tag'
263 | _res = _do_alloc; \
| ^~~~~~~~~
mm/page-writeback.c:727:9: note: forward declaration of 'struct bdi_writeback_ctx'
727 | struct bdi_writeback_ctx **new_ctx_arr, **old_ctx_arr;
| ^
mm/page-writeback.c:742:23: error: no member named 'nr_wb_ctx' in 'struct backing_dev_info'
742 | while (--i >= bdi->nr_wb_ctx)
| ~~~ ^
mm/page-writeback.c:747:33: error: incomplete definition of type 'struct bdi_writeback_ctx'
747 | INIT_LIST_HEAD(&new_ctx_arr[i]->wb_list);
| ~~~~~~~~~~~~~~^
mm/page-writeback.c:727:9: note: forward declaration of 'struct bdi_writeback_ctx'
727 | struct bdi_writeback_ctx **new_ctx_arr, **old_ctx_arr;
| ^
mm/page-writeback.c:748:38: error: incomplete definition of type 'struct bdi_writeback_ctx'
748 | init_waitqueue_head(&new_ctx_arr[i]->wb_waitq);
| ~~~~~~~~~~~~~~^
include/linux/wait.h:68:26: note: expanded from macro 'init_waitqueue_head'
68 | __init_waitqueue_head((wq_head), #wq_head, &__key); \
| ^~~~~~~
mm/page-writeback.c:727:9: note: forward declaration of 'struct bdi_writeback_ctx'
727 | struct bdi_writeback_ctx **new_ctx_arr, **old_ctx_arr;
| ^
mm/page-writeback.c:751:16: error: no member named 'nr_wb_ctx' in 'struct backing_dev_info'
751 | for (i = bdi->nr_wb_ctx; i < nwritebacks; i++) {
| ~~~ ^
mm/page-writeback.c:752:30: error: incompatible pointer types passing 'struct bdi_writeback_ctx *' to parameter of type 'struct bdi_writeback_ctx *' [-Wincompatible-pointer-types]
752 | ret = bdi_wb_ctx_init(bdi, new_ctx_arr[i]);
| ^~~~~~~~~~~~~~
include/linux/backing-dev.h:118:77: note: passing argument to parameter 'bdi_wb_ctx' here
118 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx);
| ^
mm/page-writeback.c:754:23: error: no member named 'nr_wb_ctx' in 'struct backing_dev_info'
754 | while (--i >= bdi->nr_wb_ctx) {
| ~~~ ^
mm/page-writeback.c:755:26: error: incompatible pointer types passing 'struct bdi_writeback_ctx *' to parameter of type 'struct bdi_writeback_ctx *' [-Wincompatible-pointer-types]
755 | bdi_wb_ctx_exit(bdi, new_ctx_arr[i]);
--
In file included from mm/backing-dev.c:7:
>> include/linux/backing-dev.h:118:58: warning: declaration of 'struct bdi_writeback_ctx' will not be visible outside of this function [-Wvisibility]
118 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx);
| ^
include/linux/backing-dev.h:119:59: warning: declaration of 'struct bdi_writeback_ctx' will not be visible outside of this function [-Wvisibility]
119 | void bdi_wb_ctx_exit(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx);
| ^
mm/backing-dev.c:465:38: error: no member named 'nr_wb_ctx' in 'struct backing_dev_info'
465 | return sysfs_emit(buf, "%d\n", bdi->nr_wb_ctx);
| ~~~ ^
>> mm/backing-dev.c:1015:58: warning: declaration of 'struct bdi_writeback_ctx' will not be visible outside of this function [-Wvisibility]
1015 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
mm/backing-dev.c:1015:5: error: conflicting types for 'bdi_wb_ctx_init'
1015 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
include/linux/backing-dev.h:118:5: note: previous declaration is here
118 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx);
| ^
mm/backing-dev.c:1019:29: error: incomplete definition of type 'struct bdi_writeback_ctx'
1019 | INIT_RADIX_TREE(&bdi_wb_ctx->cgwb_tree, GFP_ATOMIC);
| ~~~~~~~~~~^
mm/backing-dev.c:1015:58: note: forward declaration of 'struct bdi_writeback_ctx'
1015 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
mm/backing-dev.c:1021:24: error: incomplete definition of type 'struct bdi_writeback_ctx'
1021 | init_rwsem(&bdi_wb_ctx->wb_switch_rwsem);
| ~~~~~~~~~~^
mm/backing-dev.c:1015:58: note: forward declaration of 'struct bdi_writeback_ctx'
1015 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
mm/backing-dev.c:1023:27: error: incomplete definition of type 'struct bdi_writeback_ctx'
1023 | ret = wb_init(&bdi_wb_ctx->wb, bdi_wb_ctx, bdi, GFP_KERNEL);
| ~~~~~~~~~~^
mm/backing-dev.c:1015:58: note: forward declaration of 'struct bdi_writeback_ctx'
1015 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
mm/backing-dev.c:1025:13: error: incomplete definition of type 'struct bdi_writeback_ctx'
1025 | bdi_wb_ctx->wb.memcg_css = &root_mem_cgroup->css;
| ~~~~~~~~~~^
mm/backing-dev.c:1015:58: note: forward declaration of 'struct bdi_writeback_ctx'
1015 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
mm/backing-dev.c:1026:13: error: incomplete definition of type 'struct bdi_writeback_ctx'
1026 | bdi_wb_ctx->wb.blkcg_css = blkcg_root_css;
| ~~~~~~~~~~^
mm/backing-dev.c:1015:58: note: forward declaration of 'struct bdi_writeback_ctx'
1015 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
mm/backing-dev.c:1270:58: warning: declaration of 'struct bdi_writeback_ctx' will not be visible outside of this function [-Wvisibility]
1270 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
mm/backing-dev.c:1270:5: error: conflicting types for 'bdi_wb_ctx_init'
1270 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
include/linux/backing-dev.h:118:5: note: previous declaration is here
118 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx);
| ^
mm/backing-dev.c:1272:28: error: incomplete definition of type 'struct bdi_writeback_ctx'
1272 | return wb_init(&bdi_wb_ctx->wb, bdi_wb_ctx, bdi, GFP_KERNEL);
| ~~~~~~~~~~^
mm/backing-dev.c:1270:58: note: forward declaration of 'struct bdi_writeback_ctx'
1270 | int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
mm/backing-dev.c:1275:59: warning: declaration of 'struct bdi_writeback_ctx' will not be visible outside of this function [-Wvisibility]
1275 | void bdi_wb_ctx_exit(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
mm/backing-dev.c:1275:6: error: conflicting types for 'bdi_wb_ctx_exit'
1275 | void bdi_wb_ctx_exit(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
include/linux/backing-dev.h:119:6: note: previous declaration is here
119 | void bdi_wb_ctx_exit(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx);
| ^
mm/backing-dev.c:1277:25: error: incomplete definition of type 'struct bdi_writeback_ctx'
1277 | wb_shutdown(&bdi_wb_ctx->wb);
| ~~~~~~~~~~^
mm/backing-dev.c:1275:59: note: forward declaration of 'struct bdi_writeback_ctx'
1275 | void bdi_wb_ctx_exit(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
mm/backing-dev.c:1278:27: error: too many arguments to function call, expected single argument 'bdi', have 2 arguments
1278 | cgwb_bdi_unregister(bdi, bdi_wb_ctx);
| ~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~
mm/backing-dev.c:881:13: note: 'cgwb_bdi_unregister' declared here
881 | static void cgwb_bdi_unregister(struct backing_dev_info *bdi)
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/backing-dev.c:1280:50: error: incomplete definition of type 'struct bdi_writeback_ctx'
1280 | WARN_ON_ONCE(test_bit(WB_registered, &bdi_wb_ctx->wb.state));
| ~~~~~~~~~~^
mm/backing-dev.c:1275:59: note: forward declaration of 'struct bdi_writeback_ctx'
1275 | void bdi_wb_ctx_exit(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
mm/backing-dev.c:1280:50: error: incomplete definition of type 'struct bdi_writeback_ctx'
1280 | WARN_ON_ONCE(test_bit(WB_registered, &bdi_wb_ctx->wb.state));
| ~~~~~~~~~~^
mm/backing-dev.c:1275:59: note: forward declaration of 'struct bdi_writeback_ctx'
1275 | void bdi_wb_ctx_exit(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
mm/backing-dev.c:1280:50: error: incomplete definition of type 'struct bdi_writeback_ctx'
1280 | WARN_ON_ONCE(test_bit(WB_registered, &bdi_wb_ctx->wb.state));
| ~~~~~~~~~~^
mm/backing-dev.c:1275:59: note: forward declaration of 'struct bdi_writeback_ctx'
1275 | void bdi_wb_ctx_exit(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
mm/backing-dev.c:1280:50: error: incomplete definition of type 'struct bdi_writeback_ctx'
1280 | WARN_ON_ONCE(test_bit(WB_registered, &bdi_wb_ctx->wb.state));
| ~~~~~~~~~~^
mm/backing-dev.c:1275:59: note: forward declaration of 'struct bdi_writeback_ctx'
1275 | void bdi_wb_ctx_exit(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx)
| ^
mm/backing-dev.c:1280:50: error: incomplete definition of type 'struct bdi_writeback_ctx'
1280 | WARN_ON_ONCE(test_bit(WB_registered, &bdi_wb_ctx->wb.state));
vim +118 include/linux/backing-dev.h
116
117 int bdi_init(struct backing_dev_info *bdi);
> 118 int bdi_wb_ctx_init(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx);
119 void bdi_wb_ctx_exit(struct backing_dev_info *bdi, struct bdi_writeback_ctx *bdi_wb_ctx);
120
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-14 22:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20250825122931.13037-2-wangyufei@vivo.com>
2026-08-14 22:57 ` [RFC 1/1] writeback: add sysfs to config the number of writeback contexts kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox