On 6/1/21 1:08 PM, kernel test robot wrote: > Hi Faiyaz, > > Thank you for the patch! Yet something to improve: > > [auto build test ERROR on linus/master] > [also build test ERROR on v5.13-rc4] > [cannot apply to hnaz-linux-mm/master next-20210601] > [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] > > url: https://github.com/0day-ci/linux/commits/Faiyaz-Mohammed/mm-slub-move-sysfs-slab-alloc-free-interfaces-to-debugfs/20210601-180903 > base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git c2131f7e73c9e9365613e323d65c7b9e5b910f56 > config: i386-tinyconfig (attached as .config) > compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 > reproduce (this is a W=1 build): > # https://github.com/0day-ci/linux/commit/9540acc4691d680b7124d8daa1a2eb98a97ee19a > git remote add linux-review https://github.com/0day-ci/linux > git fetch --no-tags linux-review Faiyaz-Mohammed/mm-slub-move-sysfs-slab-alloc-free-interfaces-to-debugfs/20210601-180903 > git checkout 9540acc4691d680b7124d8daa1a2eb98a97ee19a > # save the attached .config to linux build tree > make W=1 ARCH=i386 > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <lkp@xxxxxxxxx> > > All errors (new ones prefixed by >>): > > mm/slab_common.c: In function 'slab_caches_to_rcu_destroy_workfn': >>> mm/slab_common.c:452:3: error: implicit declaration of function 'debugfs_slab_release' [-Werror=implicit-function-declaration] > 452 | debugfs_slab_release(s); > | ^~~~~~~~~~~~~~~~~~~~ > cc1: some warnings being treated as errors Oh, right, CONFIG_SLOB. How about moving the ifdef-ed declaration from slub-def.h to mm/slab.h and discarding the slab-def.h empty one. That will take care of SLOB too. > vim +/debugfs_slab_release +452 mm/slab_common.c > > 427 > 428 static void slab_caches_to_rcu_destroy_workfn(struct work_struct *work) > 429 { > 430 LIST_HEAD(to_destroy); > 431 struct kmem_cache *s, *s2; > 432 > 433 /* > 434 * On destruction, SLAB_TYPESAFE_BY_RCU kmem_caches are put on the > 435 * @slab_caches_to_rcu_destroy list. The slab pages are freed > 436 * through RCU and the associated kmem_cache are dereferenced > 437 * while freeing the pages, so the kmem_caches should be freed only > 438 * after the pending RCU operations are finished. As rcu_barrier() > 439 * is a pretty slow operation, we batch all pending destructions > 440 * asynchronously. > 441 */ > 442 mutex_lock(&slab_mutex); > 443 list_splice_init(&slab_caches_to_rcu_destroy, &to_destroy); > 444 mutex_unlock(&slab_mutex); > 445 > 446 if (list_empty(&to_destroy)) > 447 return; > 448 > 449 rcu_barrier(); > 450 > 451 list_for_each_entry_safe(s, s2, &to_destroy, list) { > > 452 debugfs_slab_release(s); > 453 kfence_shutdown_cache(s); > 454 #ifdef SLAB_SUPPORTS_SYSFS > 455 sysfs_slab_release(s); > 456 #else > 457 slab_kmem_cache_release(s); > 458 #endif > 459 } > 460 } > 461 > > --- > 0-DAY CI Kernel Test Service, Intel Corporation > https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx >