* [rcu:dev.2020.12.08a 96/97] mm/slab_common.c:583: undefined reference to `kmem_struct_debug_provenance'
@ 2020-12-08 23:46 kernel test robot
2020-12-08 23:59 ` Paul E. McKenney
0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2020-12-08 23:46 UTC (permalink / raw)
To: Paul E. McKenney; +Cc: kbuild-all, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 2970 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2020.12.08a
head: c5c1f436c5434ca260106aa0713ec8e4de3cba22
commit: f1bf0344f92961c0691b3baeaa1c2f23bb076bc8 [96/97] mm: Add kmalloc_debug_print_provenance() to print source of memory block
config: i386-randconfig-s002-20201208 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-179-ga00755aa-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git/commit/?id=f1bf0344f92961c0691b3baeaa1c2f23bb076bc8
git remote add rcu https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
git fetch --no-tags rcu dev.2020.12.08a
git checkout f1bf0344f92961c0691b3baeaa1c2f23bb076bc8
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
ld: mm/slab_common.o: in function `kmalloc_debug_print_provenance':
>> mm/slab_common.c:583: undefined reference to `kmem_struct_debug_provenance'
vim +583 mm/slab_common.c
557
558 /**
559 * kmalloc_debug_print_provenance - Print available provenance information
560 * @object: object for which to find provenance information.
561 *
562 * This function uses pr_cont(), so that the caller is expected to have
563 * printed out whatever preamble is appropriate. The provenance information
564 * depends on the type of object and on how much debugging is enabled.
565 * For a slab-cache object, the slab name is printed, and, if available,
566 * the return address and stack trace from the allocation of that object.
567 */
568 void kmalloc_debug_print_provenance(void *object)
569 {
570 int i;
571 struct page *page;
572 struct kmem_provenance kp;
573
574 if (!virt_addr_valid(object)) {
575 pr_cont(" non-paged (local) memory.\n");
576 return;
577 }
578 page = virt_to_head_page(object);
579 kp.kp_ptr = object;
580 kp.kp_page = page;
581 kp.kp_nstack = KS_ADDRS_COUNT;
582 if (PageSlab(page)) {
> 583 kmem_struct_debug_provenance(&kp);
584 if (page->slab_cache)
585 pr_cont(" slab %s", page->slab_cache->name);
586 if (kp.kp_ret)
587 pr_cont(" allocated at %pS\n", kp.kp_ret);
588 if (kp.kp_stack[0]) {
589 for (i = 0; i < ARRAY_SIZE(kp.kp_stack); i++) {
590 if (!kp.kp_stack[i])
591 break;
592 pr_info(" %pS\n", kp.kp_stack[i]);
593 }
594 }
595 return;
596 }
597 pr_cont(" non-slab memory.\n");
598 }
599 EXPORT_SYMBOL_GPL(kmalloc_debug_print_provenance);
600
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 34953 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [rcu:dev.2020.12.08a 96/97] mm/slab_common.c:583: undefined reference to `kmem_struct_debug_provenance'
2020-12-08 23:46 [rcu:dev.2020.12.08a 96/97] mm/slab_common.c:583: undefined reference to `kmem_struct_debug_provenance' kernel test robot
@ 2020-12-08 23:59 ` Paul E. McKenney
0 siblings, 0 replies; 2+ messages in thread
From: Paul E. McKenney @ 2020-12-08 23:59 UTC (permalink / raw)
To: kernel test robot; +Cc: kbuild-all, linux-kernel
On Wed, Dec 09, 2020 at 07:46:24AM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2020.12.08a
> head: c5c1f436c5434ca260106aa0713ec8e4de3cba22
> commit: f1bf0344f92961c0691b3baeaa1c2f23bb076bc8 [96/97] mm: Add kmalloc_debug_print_provenance() to print source of memory block
> config: i386-randconfig-s002-20201208 (attached as .config)
> compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
> reproduce:
> # apt-get install sparse
> # sparse version: v0.6.3-179-ga00755aa-dirty
> # https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git/commit/?id=f1bf0344f92961c0691b3baeaa1c2f23bb076bc8
> git remote add rcu https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
> git fetch --no-tags rcu dev.2020.12.08a
> git checkout f1bf0344f92961c0691b3baeaa1c2f23bb076bc8
> # save the attached .config to linux build tree
> make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
Good catch, but this commit has been obsoleted by fc2cf07ea677 ("mm:
Add mem_dump_obj() to print source of memory block") which in your
defense I just now pushed out.
This and many other bugs have since been fixed, but Murphy insists
that there are plenty more to be found. ;-)
Thanx, Paul
> All errors (new ones prefixed by >>):
>
> ld: mm/slab_common.o: in function `kmalloc_debug_print_provenance':
> >> mm/slab_common.c:583: undefined reference to `kmem_struct_debug_provenance'
>
> vim +583 mm/slab_common.c
>
> 557
> 558 /**
> 559 * kmalloc_debug_print_provenance - Print available provenance information
> 560 * @object: object for which to find provenance information.
> 561 *
> 562 * This function uses pr_cont(), so that the caller is expected to have
> 563 * printed out whatever preamble is appropriate. The provenance information
> 564 * depends on the type of object and on how much debugging is enabled.
> 565 * For a slab-cache object, the slab name is printed, and, if available,
> 566 * the return address and stack trace from the allocation of that object.
> 567 */
> 568 void kmalloc_debug_print_provenance(void *object)
> 569 {
> 570 int i;
> 571 struct page *page;
> 572 struct kmem_provenance kp;
> 573
> 574 if (!virt_addr_valid(object)) {
> 575 pr_cont(" non-paged (local) memory.\n");
> 576 return;
> 577 }
> 578 page = virt_to_head_page(object);
> 579 kp.kp_ptr = object;
> 580 kp.kp_page = page;
> 581 kp.kp_nstack = KS_ADDRS_COUNT;
> 582 if (PageSlab(page)) {
> > 583 kmem_struct_debug_provenance(&kp);
> 584 if (page->slab_cache)
> 585 pr_cont(" slab %s", page->slab_cache->name);
> 586 if (kp.kp_ret)
> 587 pr_cont(" allocated at %pS\n", kp.kp_ret);
> 588 if (kp.kp_stack[0]) {
> 589 for (i = 0; i < ARRAY_SIZE(kp.kp_stack); i++) {
> 590 if (!kp.kp_stack[i])
> 591 break;
> 592 pr_info(" %pS\n", kp.kp_stack[i]);
> 593 }
> 594 }
> 595 return;
> 596 }
> 597 pr_cont(" non-slab memory.\n");
> 598 }
> 599 EXPORT_SYMBOL_GPL(kmalloc_debug_print_provenance);
> 600
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-12-09 0:00 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-08 23:46 [rcu:dev.2020.12.08a 96/97] mm/slab_common.c:583: undefined reference to `kmem_struct_debug_provenance' kernel test robot
2020-12-08 23:59 ` Paul E. McKenney
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).