On 6/1/2021 5:44 PM, Vlastimil Babka wrote: > 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. > Yes, doing the same. >> 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 >> >