* [vbabka-slab:for-6.1/common_kmalloc 12/17] mm/slab_common.c:1023:7: warning: no previous prototype for '__kmalloc_large_node'
@ 2022-08-24 2:46 kernel test robot
2022-08-24 3:49 ` Hyeonggon Yoo
0 siblings, 1 reply; 6+ messages in thread
From: kernel test robot @ 2022-08-24 2:46 UTC (permalink / raw)
To: Hyeonggon Yoo; +Cc: kbuild-all, linux-mm, Vlastimil Babka
tree: git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git for-6.1/common_kmalloc
head: b261334803b44092acd06be3c9f32c46af818359
commit: 79c7527b9805edf14c952deca45de60a8a06a414 [12/17] mm/sl[au]b: generalize kmalloc subsystem
config: x86_64-randconfig-a015 (https://download.01.org/0day-ci/archive/20220824/202208241004.jZykmQOH-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-5) 11.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git/commit/?id=79c7527b9805edf14c952deca45de60a8a06a414
git remote add vbabka-slab git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git
git fetch --no-tags vbabka-slab for-6.1/common_kmalloc
git checkout 79c7527b9805edf14c952deca45de60a8a06a414
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> mm/slab_common.c:1023:7: warning: no previous prototype for '__kmalloc_large_node' [-Wmissing-prototypes]
1023 | void *__kmalloc_large_node(size_t size, gfp_t flags, int node)
| ^~~~~~~~~~~~~~~~~~~~
vim +/__kmalloc_large_node +1023 mm/slab_common.c
1016
1017 /*
1018 * To avoid unnecessary overhead, we pass through large allocation requests
1019 * directly to the page allocator. We use __GFP_COMP, because we will need to
1020 * know the allocation order to free the pages properly in kfree.
1021 */
1022
> 1023 void *__kmalloc_large_node(size_t size, gfp_t flags, int node)
1024 {
1025 struct page *page;
1026 void *ptr = NULL;
1027 unsigned int order = get_order(size);
1028
1029 if (unlikely(flags & GFP_SLAB_BUG_MASK))
1030 flags = kmalloc_fix_flags(flags);
1031
1032 flags |= __GFP_COMP;
1033 page = alloc_pages_node(node, flags, order);
1034 if (page) {
1035 ptr = page_address(page);
1036 mod_lruvec_page_state(page, NR_SLAB_UNRECLAIMABLE_B,
1037 PAGE_SIZE << order);
1038 }
1039
1040 ptr = kasan_kmalloc_large(ptr, size, flags);
1041 /* As ptr might get tagged, call kmemleak hook after KASAN. */
1042 kmemleak_alloc(ptr, size, 1, flags);
1043
1044 return ptr;
1045 }
1046
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [vbabka-slab:for-6.1/common_kmalloc 12/17] mm/slab_common.c:1023:7: warning: no previous prototype for '__kmalloc_large_node' 2022-08-24 2:46 [vbabka-slab:for-6.1/common_kmalloc 12/17] mm/slab_common.c:1023:7: warning: no previous prototype for '__kmalloc_large_node' kernel test robot @ 2022-08-24 3:49 ` Hyeonggon Yoo 2022-08-24 12:57 ` Vlastimil Babka 0 siblings, 1 reply; 6+ messages in thread From: Hyeonggon Yoo @ 2022-08-24 3:49 UTC (permalink / raw) To: kernel test robot; +Cc: kbuild-all, linux-mm, Vlastimil Babka On Wed, Aug 24, 2022 at 10:46:55AM +0800, kernel test robot wrote: > tree: git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git for-6.1/common_kmalloc > head: b261334803b44092acd06be3c9f32c46af818359 > commit: 79c7527b9805edf14c952deca45de60a8a06a414 [12/17] mm/sl[au]b: generalize kmalloc subsystem > config: x86_64-randconfig-a015 (https://download.01.org/0day-ci/archive/20220824/202208241004.jZykmQOH-lkp@intel.com/config) > compiler: gcc-11 (Debian 11.3.0-5) 11.3.0 > reproduce (this is a W=1 build): > # https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git/commit/?id=79c7527b9805edf14c952deca45de60a8a06a414 > git remote add vbabka-slab git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git > git fetch --no-tags vbabka-slab for-6.1/common_kmalloc > git checkout 79c7527b9805edf14c952deca45de60a8a06a414 > # save the config file > mkdir build_dir && cp config build_dir/.config > make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash > > If you fix the issue, kindly add following tag where applicable > Reported-by: kernel test robot <lkp@intel.com> > > All warnings (new ones prefixed by >>): > > >> mm/slab_common.c:1023:7: warning: no previous prototype for '__kmalloc_large_node' [-Wmissing-prototypes] > 1023 | void *__kmalloc_large_node(size_t size, gfp_t flags, int node) > | ^~~~~~~~~~~~~~~~~~~~ Oh, I did not add static here. Please pull: https://github.com/hygoni/linux.git slab-common-v4r1 Fixed warning above and also fixed wrong comment (@objp in comment but its name is actually 'object') git range-diff for-6.1/common_kmalloc~17...for-6.1/common_kmalloc \ slab-common-v4r1~17...slab-common-v4r1: 1: 0276f0da97e3 = 1: 0276f0da97e3 mm/slab: move NUMA-related code to __do_cache_alloc() 2: d5ea00e8d8c9 = 2: d5ea00e8d8c9 mm/slab: cleanup slab_alloc() and slab_alloc_node() 3: 48c55c42e6b8 = 3: 48c55c42e6b8 mm/slab_common: remove CONFIG_NUMA ifdefs for common kmalloc functions 4: cd8523b488ec = 4: cd8523b488ec mm/slab_common: cleanup kmalloc_track_caller() 5: 0b92d497e03a = 5: 0b92d497e03a mm/sl[au]b: factor out __do_kmalloc_node() 6: d43649c0f472 = 6: d43649c0f472 mm/slab_common: fold kmalloc_order_trace() into kmalloc_large() 7: cd6d756d6118 = 7: cd6d756d6118 mm/slub: move kmalloc_large_node() to slab_common.c 8: fe8f3819416e ! 8: ec277200c5dd mm/slab_common: kmalloc_node: pass large requests to page allocator @@ mm/slab_common.c: void *kmalloc_large(size_t size, gfp_t flags) EXPORT_SYMBOL(kmalloc_large); -void *kmalloc_large_node(size_t size, gfp_t flags, int node) -+void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) ++static void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) { struct page *page; void *ptr = NULL; 9: cc40615623ed ! 9: 3d1d49576f4a mm/slab_common: cleanup kmalloc_large() @@ mm/slab_common.c: gfp_t kmalloc_fix_flags(gfp_t flags) -} -EXPORT_SYMBOL(kmalloc_large); - void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) + static void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) { -@@ mm/slab_common.c: void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) +@@ mm/slab_common.c: static void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) void *ptr = NULL; unsigned int order = get_order(size); @@ mm/slab_common.c: void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int flags |= __GFP_COMP; page = alloc_pages_node(node, flags, order); if (page) { -@@ mm/slab_common.c: void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) +@@ mm/slab_common.c: static void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) return ptr; } 10: e14d748cf9ad = 10: d6d55b2e745a mm/slab: kmalloc: pass requests larger than order-1 page to page allocator 11: 84000279b448 = 11: 28c1aabc9f73 mm/sl[au]b: introduce common alloc/free functions without tracepoint 12: 79c7527b9805 ! 12: 7fefa4235ba9 mm/sl[au]b: generalize kmalloc subsystem @@ mm/slab_common.c: void free_large_kmalloc(struct folio *folio, void *object) + +/** + * kfree - free previously allocated memory -+ * @objp: pointer returned by kmalloc. ++ * @object: pointer returned by kmalloc. + * -+ * If @objp is NULL, no operation is performed. ++ * If @object is NULL, no operation is performed. + * + * Don't free memory not originally allocated by kmalloc() + * or you will run into trouble. @@ mm/slab_common.c: void free_large_kmalloc(struct folio *folio, void *object) + +/** + * __ksize -- Uninstrumented ksize. -+ * @objp: pointer to the object ++ * @object: pointer to the object + * + * Unlike ksize(), __ksize() is uninstrumented, and does not provide the same + * safety checks as ksize() with KASAN instrumentation enabled. + * -+ * Return: size of the actual memory used by @objp in bytes ++ * Return: size of the actual memory used by @object in bytes + */ +size_t __ksize(const void *object) +{ @@ mm/slab_common.c: gfp_t kmalloc_fix_flags(gfp_t flags) * know the allocation order to free the pages properly in kfree. */ --void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) -+void *__kmalloc_large_node(size_t size, gfp_t flags, int node) +-static void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) ++static void *__kmalloc_large_node(size_t size, gfp_t flags, int node) { struct page *page; void *ptr = NULL; -@@ mm/slab_common.c: void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) +@@ mm/slab_common.c: static void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) void *kmalloc_large(size_t size, gfp_t flags) { 13: 31be83f97c43 = 13: 446064fdf403 mm/sl[au]b: cleanup kmem_cache_alloc[_node]_trace() 14: 583b9ef311da = 14: c923544d6d61 mm/slab_common: unify NUMA and UMA version of tracepoints 15: d0b3552d07e0 = 15: 72633319472e mm/slab_common: drop kmem_alloc & avoid dereferencing fields when not using 16: 0db36c104255 ! 16: c9b5ded32cc6 mm/slab_common: move declaration of __ksize() to mm/slab.h @@ mm/slab_common.c: void kfree(const void *object) -/** - * __ksize -- Uninstrumented ksize. -- * @objp: pointer to the object +- * @object: pointer to the object - * - * Unlike ksize(), __ksize() is uninstrumented, and does not provide the same - * safety checks as ksize() with KASAN instrumentation enabled. - * -- * Return: size of the actual memory used by @objp in bytes +- * Return: size of the actual memory used by @object in bytes - */ +/* Uninstrumented ksize. Only called by KASAN. */ size_t __ksize(const void *object) 17: b261334803b4 = 17: 0248c8a1af52 mm/sl[au]b: check if large object is valid in __ksize() > vim +/__kmalloc_large_node +1023 mm/slab_common.c > > 1016 > 1017 /* > 1018 * To avoid unnecessary overhead, we pass through large allocation requests > 1019 * directly to the page allocator. We use __GFP_COMP, because we will need to > 1020 * know the allocation order to free the pages properly in kfree. > 1021 */ > 1022 > > 1023 void *__kmalloc_large_node(size_t size, gfp_t flags, int node) > 1024 { > 1025 struct page *page; > 1026 void *ptr = NULL; > 1027 unsigned int order = get_order(size); > 1028 > 1029 if (unlikely(flags & GFP_SLAB_BUG_MASK)) > 1030 flags = kmalloc_fix_flags(flags); > 1031 > 1032 flags |= __GFP_COMP; > 1033 page = alloc_pages_node(node, flags, order); > 1034 if (page) { > 1035 ptr = page_address(page); > 1036 mod_lruvec_page_state(page, NR_SLAB_UNRECLAIMABLE_B, > 1037 PAGE_SIZE << order); > 1038 } > 1039 > 1040 ptr = kasan_kmalloc_large(ptr, size, flags); > 1041 /* As ptr might get tagged, call kmemleak hook after KASAN. */ > 1042 kmemleak_alloc(ptr, size, 1, flags); > 1043 > 1044 return ptr; > 1045 } > 1046 > > -- > 0-DAY CI Kernel Test Service > https://01.org/lkp -- Thanks, Hyeonggon ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [vbabka-slab:for-6.1/common_kmalloc 12/17] mm/slab_common.c:1023:7: warning: no previous prototype for '__kmalloc_large_node' 2022-08-24 3:49 ` Hyeonggon Yoo @ 2022-08-24 12:57 ` Vlastimil Babka 2022-08-24 13:35 ` Hyeonggon Yoo 0 siblings, 1 reply; 6+ messages in thread From: Vlastimil Babka @ 2022-08-24 12:57 UTC (permalink / raw) To: Hyeonggon Yoo, kernel test robot; +Cc: kbuild-all, linux-mm On 8/24/22 05:49, Hyeonggon Yoo wrote: > On Wed, Aug 24, 2022 at 10:46:55AM +0800, kernel test robot wrote: >> tree: git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git for-6.1/common_kmalloc >> head: b261334803b44092acd06be3c9f32c46af818359 >> commit: 79c7527b9805edf14c952deca45de60a8a06a414 [12/17] mm/sl[au]b: generalize kmalloc subsystem >> config: x86_64-randconfig-a015 (https://download.01.org/0day-ci/archive/20220824/202208241004.jZykmQOH-lkp@intel.com/config) >> compiler: gcc-11 (Debian 11.3.0-5) 11.3.0 >> reproduce (this is a W=1 build): >> # https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git/commit/?id=79c7527b9805edf14c952deca45de60a8a06a414 >> git remote add vbabka-slab git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git >> git fetch --no-tags vbabka-slab for-6.1/common_kmalloc >> git checkout 79c7527b9805edf14c952deca45de60a8a06a414 >> # save the config file >> mkdir build_dir && cp config build_dir/.config >> make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash >> >> If you fix the issue, kindly add following tag where applicable >> Reported-by: kernel test robot <lkp@intel.com> >> >> All warnings (new ones prefixed by >>): >> >>>> mm/slab_common.c:1023:7: warning: no previous prototype for '__kmalloc_large_node' [-Wmissing-prototypes] >> 1023 | void *__kmalloc_large_node(size_t size, gfp_t flags, int node) >> | ^~~~~~~~~~~~~~~~~~~~ > > Oh, I did not add static here. Weird, I didn't get this warning even with W=1. Only the kerneldoc issues. > Please pull: > https://github.com/hygoni/linux.git slab-common-v4r1 > > Fixed warning above and also fixed wrong comment (@objp in comment but > its name is actually 'object') > > git range-diff for-6.1/common_kmalloc~17...for-6.1/common_kmalloc \ > slab-common-v4r1~17...slab-common-v4r1: > > 1: 0276f0da97e3 = 1: 0276f0da97e3 mm/slab: move NUMA-related code to __do_cache_alloc() > 2: d5ea00e8d8c9 = 2: d5ea00e8d8c9 mm/slab: cleanup slab_alloc() and slab_alloc_node() > 3: 48c55c42e6b8 = 3: 48c55c42e6b8 mm/slab_common: remove CONFIG_NUMA ifdefs for common kmalloc functions > 4: cd8523b488ec = 4: cd8523b488ec mm/slab_common: cleanup kmalloc_track_caller() > 5: 0b92d497e03a = 5: 0b92d497e03a mm/sl[au]b: factor out __do_kmalloc_node() > 6: d43649c0f472 = 6: d43649c0f472 mm/slab_common: fold kmalloc_order_trace() into kmalloc_large() > 7: cd6d756d6118 = 7: cd6d756d6118 mm/slub: move kmalloc_large_node() to slab_common.c > 8: fe8f3819416e ! 8: ec277200c5dd mm/slab_common: kmalloc_node: pass large requests to page allocator > @@ mm/slab_common.c: void *kmalloc_large(size_t size, gfp_t flags) > EXPORT_SYMBOL(kmalloc_large); > > -void *kmalloc_large_node(size_t size, gfp_t flags, int node) > -+void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) > ++static void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) Hmm this (and following changes to kmalloc_large_node_notrace) seems to be wrong, it's still called from slub.c and declared in slab.h at this point. So I've fixed the warnings up locally and force-pushed updated for-6.1/common_kmalloc (head is now ba5801e322), please double-check. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [vbabka-slab:for-6.1/common_kmalloc 12/17] mm/slab_common.c:1023:7: warning: no previous prototype for '__kmalloc_large_node' 2022-08-24 12:57 ` Vlastimil Babka @ 2022-08-24 13:35 ` Hyeonggon Yoo 2022-08-24 14:27 ` Vlastimil Babka 0 siblings, 1 reply; 6+ messages in thread From: Hyeonggon Yoo @ 2022-08-24 13:35 UTC (permalink / raw) To: Vlastimil Babka; +Cc: kernel test robot, kbuild-all, linux-mm On Wed, Aug 24, 2022 at 02:57:40PM +0200, Vlastimil Babka wrote: > On 8/24/22 05:49, Hyeonggon Yoo wrote: > > On Wed, Aug 24, 2022 at 10:46:55AM +0800, kernel test robot wrote: > > > tree: git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git for-6.1/common_kmalloc > > > head: b261334803b44092acd06be3c9f32c46af818359 > > > commit: 79c7527b9805edf14c952deca45de60a8a06a414 [12/17] mm/sl[au]b: generalize kmalloc subsystem > > > config: x86_64-randconfig-a015 (https://download.01.org/0day-ci/archive/20220824/202208241004.jZykmQOH-lkp@intel.com/config) > > > compiler: gcc-11 (Debian 11.3.0-5) 11.3.0 > > > reproduce (this is a W=1 build): > > > # https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git/commit/?id=79c7527b9805edf14c952deca45de60a8a06a414 > > > git remote add vbabka-slab git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git > > > git fetch --no-tags vbabka-slab for-6.1/common_kmalloc > > > git checkout 79c7527b9805edf14c952deca45de60a8a06a414 > > > # save the config file > > > mkdir build_dir && cp config build_dir/.config > > > make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash > > > > > > If you fix the issue, kindly add following tag where applicable > > > Reported-by: kernel test robot <lkp@intel.com> > > > > > > All warnings (new ones prefixed by >>): > > > > > > > > mm/slab_common.c:1023:7: warning: no previous prototype for '__kmalloc_large_node' [-Wmissing-prototypes] > > > 1023 | void *__kmalloc_large_node(size_t size, gfp_t flags, int node) > > > | ^~~~~~~~~~~~~~~~~~~~ > > > > Oh, I did not add static here. > > Weird, I didn't get this warning even with W=1. Only the kerneldoc issues. You can get with CONFIG_SLOB. > > Please pull: > > https://github.com/hygoni/linux.git slab-common-v4r1 > > > > Fixed warning above and also fixed wrong comment (@objp in comment but > > its name is actually 'object') > > > > git range-diff for-6.1/common_kmalloc~17...for-6.1/common_kmalloc \ > > slab-common-v4r1~17...slab-common-v4r1: > > > > 1: 0276f0da97e3 = 1: 0276f0da97e3 mm/slab: move NUMA-related code to __do_cache_alloc() > > 2: d5ea00e8d8c9 = 2: d5ea00e8d8c9 mm/slab: cleanup slab_alloc() and slab_alloc_node() > > 3: 48c55c42e6b8 = 3: 48c55c42e6b8 mm/slab_common: remove CONFIG_NUMA ifdefs for common kmalloc functions > > 4: cd8523b488ec = 4: cd8523b488ec mm/slab_common: cleanup kmalloc_track_caller() > > 5: 0b92d497e03a = 5: 0b92d497e03a mm/sl[au]b: factor out __do_kmalloc_node() > > 6: d43649c0f472 = 6: d43649c0f472 mm/slab_common: fold kmalloc_order_trace() into kmalloc_large() > > 7: cd6d756d6118 = 7: cd6d756d6118 mm/slub: move kmalloc_large_node() to slab_common.c > > 8: fe8f3819416e ! 8: ec277200c5dd mm/slab_common: kmalloc_node: pass large requests to page allocator > > @@ mm/slab_common.c: void *kmalloc_large(size_t size, gfp_t flags) > > EXPORT_SYMBOL(kmalloc_large); > > > > -void *kmalloc_large_node(size_t size, gfp_t flags, int node) > > -+void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) > > ++static void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) > > Hmm this (and following changes to kmalloc_large_node_notrace) seems to be > wrong, it's still called from slub.c and declared in slab.h at this point. Ah, I'm very sorry for wrong fix. > So I've fixed the warnings up locally and force-pushed updated > for-6.1/common_kmalloc (head is now ba5801e322), please double-check. kmalloc_large_node_notrace() need to be moved outside #ifdef CONFIG_SLOB when the declaration is in slab.h as it's used for SLOB too. (in patch 8) -- Thanks, Hyeonggon ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [vbabka-slab:for-6.1/common_kmalloc 12/17] mm/slab_common.c:1023:7: warning: no previous prototype for '__kmalloc_large_node' 2022-08-24 13:35 ` Hyeonggon Yoo @ 2022-08-24 14:27 ` Vlastimil Babka 2022-08-25 5:06 ` Hyeonggon Yoo 0 siblings, 1 reply; 6+ messages in thread From: Vlastimil Babka @ 2022-08-24 14:27 UTC (permalink / raw) To: Hyeonggon Yoo; +Cc: kernel test robot, kbuild-all, linux-mm On 8/24/22 15:35, Hyeonggon Yoo wrote: > On Wed, Aug 24, 2022 at 02:57:40PM +0200, Vlastimil Babka wrote: >> On 8/24/22 05:49, Hyeonggon Yoo wrote: >>> On Wed, Aug 24, 2022 at 10:46:55AM +0800, kernel test robot wrote: >>>> tree: git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git for-6.1/common_kmalloc >>>> head: b261334803b44092acd06be3c9f32c46af818359 >>>> commit: 79c7527b9805edf14c952deca45de60a8a06a414 [12/17] mm/sl[au]b: generalize kmalloc subsystem >>>> config: x86_64-randconfig-a015 (https://download.01.org/0day-ci/archive/20220824/202208241004.jZykmQOH-lkp@intel.com/config) >>>> compiler: gcc-11 (Debian 11.3.0-5) 11.3.0 >>>> reproduce (this is a W=1 build): >>>> # https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git/commit/?id=79c7527b9805edf14c952deca45de60a8a06a414 >>>> git remote add vbabka-slab git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git >>>> git fetch --no-tags vbabka-slab for-6.1/common_kmalloc >>>> git checkout 79c7527b9805edf14c952deca45de60a8a06a414 >>>> # save the config file >>>> mkdir build_dir && cp config build_dir/.config >>>> make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash >>>> >>>> If you fix the issue, kindly add following tag where applicable >>>> Reported-by: kernel test robot <lkp@intel.com> >>>> >>>> All warnings (new ones prefixed by >>): >>>> >>>>>> mm/slab_common.c:1023:7: warning: no previous prototype for '__kmalloc_large_node' [-Wmissing-prototypes] >>>> 1023 | void *__kmalloc_large_node(size_t size, gfp_t flags, int node) >>>> | ^~~~~~~~~~~~~~~~~~~~ >>> >>> Oh, I did not add static here. >> >> Weird, I didn't get this warning even with W=1. Only the kerneldoc issues. > > You can get with CONFIG_SLOB. > >>> Please pull: >>> https://github.com/hygoni/linux.git slab-common-v4r1 >>> >>> Fixed warning above and also fixed wrong comment (@objp in comment but >>> its name is actually 'object') >>> >>> git range-diff for-6.1/common_kmalloc~17...for-6.1/common_kmalloc \ >>> slab-common-v4r1~17...slab-common-v4r1: >>> >>> 1: 0276f0da97e3 = 1: 0276f0da97e3 mm/slab: move NUMA-related code to __do_cache_alloc() >>> 2: d5ea00e8d8c9 = 2: d5ea00e8d8c9 mm/slab: cleanup slab_alloc() and slab_alloc_node() >>> 3: 48c55c42e6b8 = 3: 48c55c42e6b8 mm/slab_common: remove CONFIG_NUMA ifdefs for common kmalloc functions >>> 4: cd8523b488ec = 4: cd8523b488ec mm/slab_common: cleanup kmalloc_track_caller() >>> 5: 0b92d497e03a = 5: 0b92d497e03a mm/sl[au]b: factor out __do_kmalloc_node() >>> 6: d43649c0f472 = 6: d43649c0f472 mm/slab_common: fold kmalloc_order_trace() into kmalloc_large() >>> 7: cd6d756d6118 = 7: cd6d756d6118 mm/slub: move kmalloc_large_node() to slab_common.c >>> 8: fe8f3819416e ! 8: ec277200c5dd mm/slab_common: kmalloc_node: pass large requests to page allocator >>> @@ mm/slab_common.c: void *kmalloc_large(size_t size, gfp_t flags) >>> EXPORT_SYMBOL(kmalloc_large); >>> >>> -void *kmalloc_large_node(size_t size, gfp_t flags, int node) >>> -+void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) >>> ++static void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) >> >> Hmm this (and following changes to kmalloc_large_node_notrace) seems to be >> wrong, it's still called from slub.c and declared in slab.h at this point. > > Ah, I'm very sorry for wrong fix. > >> So I've fixed the warnings up locally and force-pushed updated >> for-6.1/common_kmalloc (head is now ba5801e322), please double-check. > > kmalloc_large_node_notrace() need to be moved outside #ifdef CONFIG_SLOB > when the declaration is in slab.h as it's used for SLOB too. > (in patch 8) Thanks, done now. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [vbabka-slab:for-6.1/common_kmalloc 12/17] mm/slab_common.c:1023:7: warning: no previous prototype for '__kmalloc_large_node' 2022-08-24 14:27 ` Vlastimil Babka @ 2022-08-25 5:06 ` Hyeonggon Yoo 0 siblings, 0 replies; 6+ messages in thread From: Hyeonggon Yoo @ 2022-08-25 5:06 UTC (permalink / raw) To: Vlastimil Babka; +Cc: kernel test robot, kbuild-all, linux-mm On Wed, Aug 24, 2022 at 04:27:10PM +0200, Vlastimil Babka wrote: > On 8/24/22 15:35, Hyeonggon Yoo wrote: > > On Wed, Aug 24, 2022 at 02:57:40PM +0200, Vlastimil Babka wrote: > > > On 8/24/22 05:49, Hyeonggon Yoo wrote: > > > > On Wed, Aug 24, 2022 at 10:46:55AM +0800, kernel test robot wrote: > > > > > tree: git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git for-6.1/common_kmalloc > > > > > head: b261334803b44092acd06be3c9f32c46af818359 > > > > > commit: 79c7527b9805edf14c952deca45de60a8a06a414 [12/17] mm/sl[au]b: generalize kmalloc subsystem > > > > > config: x86_64-randconfig-a015 (https://download.01.org/0day-ci/archive/20220824/202208241004.jZykmQOH-lkp@intel.com/config) > > > > > compiler: gcc-11 (Debian 11.3.0-5) 11.3.0 > > > > > reproduce (this is a W=1 build): > > > > > # https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git/commit/?id=79c7527b9805edf14c952deca45de60a8a06a414 > > > > > git remote add vbabka-slab git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git > > > > > git fetch --no-tags vbabka-slab for-6.1/common_kmalloc > > > > > git checkout 79c7527b9805edf14c952deca45de60a8a06a414 > > > > > # save the config file > > > > > mkdir build_dir && cp config build_dir/.config > > > > > make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash > > > > > > > > > > If you fix the issue, kindly add following tag where applicable > > > > > Reported-by: kernel test robot <lkp@intel.com> > > > > > > > > > > All warnings (new ones prefixed by >>): > > > > > > > > > > > > mm/slab_common.c:1023:7: warning: no previous prototype for '__kmalloc_large_node' [-Wmissing-prototypes] > > > > > 1023 | void *__kmalloc_large_node(size_t size, gfp_t flags, int node) > > > > > | ^~~~~~~~~~~~~~~~~~~~ > > > > > > > > Oh, I did not add static here. > > > > > > Weird, I didn't get this warning even with W=1. Only the kerneldoc issues. > > > > You can get with CONFIG_SLOB. > > > > > > Please pull: > > > > https://github.com/hygoni/linux.git slab-common-v4r1 > > > > > > > > Fixed warning above and also fixed wrong comment (@objp in comment but > > > > its name is actually 'object') > > > > > > > > git range-diff for-6.1/common_kmalloc~17...for-6.1/common_kmalloc \ > > > > slab-common-v4r1~17...slab-common-v4r1: > > > > > > > > 1: 0276f0da97e3 = 1: 0276f0da97e3 mm/slab: move NUMA-related code to __do_cache_alloc() > > > > 2: d5ea00e8d8c9 = 2: d5ea00e8d8c9 mm/slab: cleanup slab_alloc() and slab_alloc_node() > > > > 3: 48c55c42e6b8 = 3: 48c55c42e6b8 mm/slab_common: remove CONFIG_NUMA ifdefs for common kmalloc functions > > > > 4: cd8523b488ec = 4: cd8523b488ec mm/slab_common: cleanup kmalloc_track_caller() > > > > 5: 0b92d497e03a = 5: 0b92d497e03a mm/sl[au]b: factor out __do_kmalloc_node() > > > > 6: d43649c0f472 = 6: d43649c0f472 mm/slab_common: fold kmalloc_order_trace() into kmalloc_large() > > > > 7: cd6d756d6118 = 7: cd6d756d6118 mm/slub: move kmalloc_large_node() to slab_common.c > > > > 8: fe8f3819416e ! 8: ec277200c5dd mm/slab_common: kmalloc_node: pass large requests to page allocator > > > > @@ mm/slab_common.c: void *kmalloc_large(size_t size, gfp_t flags) > > > > EXPORT_SYMBOL(kmalloc_large); > > > > > > > > -void *kmalloc_large_node(size_t size, gfp_t flags, int node) > > > > -+void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) > > > > ++static void *kmalloc_large_node_notrace(size_t size, gfp_t flags, int node) > > > > > > Hmm this (and following changes to kmalloc_large_node_notrace) seems to be > > > wrong, it's still called from slub.c and declared in slab.h at this point. > > > > Ah, I'm very sorry for wrong fix. > > > > > So I've fixed the warnings up locally and force-pushed updated > > > for-6.1/common_kmalloc (head is now ba5801e322), please double-check. > > > > kmalloc_large_node_notrace() need to be moved outside #ifdef CONFIG_SLOB > > when the declaration is in slab.h as it's used for SLOB too. > > (in patch 8) > > Thanks, done now. > Thanks! Looks good to me. -- Thanks, Hyeonggon ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-08-25 5:06 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-08-24 2:46 [vbabka-slab:for-6.1/common_kmalloc 12/17] mm/slab_common.c:1023:7: warning: no previous prototype for '__kmalloc_large_node' kernel test robot 2022-08-24 3:49 ` Hyeonggon Yoo 2022-08-24 12:57 ` Vlastimil Babka 2022-08-24 13:35 ` Hyeonggon Yoo 2022-08-24 14:27 ` Vlastimil Babka 2022-08-25 5:06 ` Hyeonggon Yoo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox