Hi Matthew, kernel test robot noticed the following build errors: [auto build test ERROR on akpm-mm/mm-everything] [also build test ERROR on linus/master v6.13-rc2 next-20241211] [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/Matthew-Wilcox-Oracle/vmalloc-Account-memcg-per-vmalloc/20241211-123433 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything patch link: https://lore.kernel.org/r/20241211043252.3295947-2-willy%40infradead.org patch subject: [PATCH 2/2] vmalloc: Account memcg per vmalloc config: sparc64-randconfig-001-20241212 (https://download.01.org/0day-ci/archive/20241212/202412120722.YWlWwpqk-lkp@xxxxxxxxx/config) compiler: sparc64-linux-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241212/202412120722.YWlWwpqk-lkp@xxxxxxxxx/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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202412120722.YWlWwpqk-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): sparc64-linux-ld: mm/vmalloc.o: in function `vfree': >> mm/vmalloc.c:3386:(.text+0x6bbc): undefined reference to `obj_cgroup_uncharge_vmalloc' sparc64-linux-ld: mm/vmalloc.o: in function `__vmalloc_area_node': >> mm/vmalloc.c:3676:(.text+0x6f94): undefined reference to `obj_cgroup_charge_vmalloc' vim +3386 mm/vmalloc.c 3329 3330 /** 3331 * vfree - Release memory allocated by vmalloc() 3332 * @addr: Memory base address 3333 * 3334 * Free the virtually continuous memory area starting at @addr, as obtained 3335 * from one of the vmalloc() family of APIs. This will usually also free the 3336 * physical memory underlying the virtual allocation, but that memory is 3337 * reference counted, so it will not be freed until the last user goes away. 3338 * 3339 * If @addr is NULL, no operation is performed. 3340 * 3341 * Context: 3342 * May sleep if called *not* from interrupt context. 3343 * Must not be called in NMI context (strictly speaking, it could be 3344 * if we have CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG, but making the calling 3345 * conventions for vfree() arch-dependent would be a really bad idea). 3346 */ 3347 void vfree(const void *addr) 3348 { 3349 struct vm_struct *vm; 3350 int i; 3351 3352 if (unlikely(in_interrupt())) { 3353 vfree_atomic(addr); 3354 return; 3355 } 3356 3357 BUG_ON(in_nmi()); 3358 kmemleak_free(addr); 3359 might_sleep(); 3360 3361 if (!addr) 3362 return; 3363 3364 vm = remove_vm_area(addr); 3365 if (unlikely(!vm)) { 3366 WARN(1, KERN_ERR "Trying to vfree() nonexistent vm area (%p)\n", 3367 addr); 3368 return; 3369 } 3370 3371 if (unlikely(vm->flags & VM_FLUSH_RESET_PERMS)) 3372 vm_reset_perms(vm); 3373 for (i = 0; i < vm->nr_pages; i++) { 3374 struct page *page = vm->pages[i]; 3375 3376 BUG_ON(!page); 3377 /* 3378 * High-order allocs for huge vmallocs are split, so 3379 * can be freed as an array of order-0 allocations 3380 */ 3381 __free_page(page); 3382 cond_resched(); 3383 } 3384 if (!(vm->flags & VM_MAP_PUT_PAGES)) 3385 atomic_long_sub(vm->nr_pages, &nr_vmalloc_pages); > 3386 obj_cgroup_uncharge_vmalloc(vm->objcg, vm->nr_pages); 3387 kvfree(vm->pages); 3388 kfree(vm); 3389 } 3390 EXPORT_SYMBOL(vfree); 3391 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki