linux-watchdog.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [report of possible bug] watchdog memory leak
@ 2021-07-07 12:38 John Garry
  2021-07-07 16:11 ` Guenter Roeck
  0 siblings, 1 reply; 2+ messages in thread
From: John Garry @ 2021-07-07 12:38 UTC (permalink / raw)
  To: wim, Guenter Roeck, linux-watchdog

Hi guys,

Just a heads up in case it's a real issue - I was developing based on 
Linus' tree at 79160a603bdb, and with KMEMLEAK and 
DEBUG_TEST_DRIVER_REMOVE configs enabled, I get these warns:

root@(none)$ [  859.608780] kmemleak: 3 new suspected memory leaks (see 
/sys/kernel/debug/kmemleak)
[  859.608780] kmemleak: 3 new suspected memory leaks (see 
/sys/kernel/debug/kmemleak)

root@(none)$ more /sys/kernel/debug/kmemleak
unreferenced object 0xffff0020f9810800 (size 1024):
   comm "swapper/0", pid 1, jiffies 4294929730 (age 1071.904s)
   hex dump (first 32 bytes):
  80 89 48 f8 20 00 ff ff 08 08 81 f9 20 00 ff ff  ..H. ....... ...
  08 08 81 f9 20 00 ff ff 00 00 00 00 00 00 00 00  .... ...........
   backtrace:
  [<(____ptrval____)>] slab_post_alloc_hook+0x9c/0x270
  [<(____ptrval____)>] kmem_cache_alloc+0x198/0x2e0
  [<(____ptrval____)>] watchdog_dev_register+0x38/0x428
  [<(____ptrval____)>] __watchdog_register_device+0x13c/0x400
  [<(____ptrval____)>] watchdog_register_device+0x9c/0x108
  [<(____ptrval____)>] devm_watchdog_register_device+0x50/0xe0
  [<(____ptrval____)>] sbsa_gwdt_probe+0x278/0x488
  [<(____ptrval____)>] platform_probe+0x8c/0x108
  [<(____ptrval____)>] really_probe+0x130/0x558
  [<(____ptrval____)>] __driver_probe_device+0xb8/0x130
  [<(____ptrval____)>] driver_probe_device+0x60/0x150
  [<(____ptrval____)>] __driver_attach+0xa0/0x160
  [<(____ptrval____)>] bus_for_each_dev+0xec/0x160
  [<(____ptrval____)>] driver_attach+0x34/0x48
  [<(____ptrval____)>] bus_add_driver+0x1b8/0x2c0
  [<(____ptrval____)>] driver_register+0xc0/0x1e0
unreferenced object 0xffff0020f8488980 (size 64):
   comm "swapper/0", pid 1, jiffies 4294929730 (age 1071.904s)
   hex dump (first 32 bytes):
  77 61 74 63 68 64 6f 67 30 00 00 00 00 00 00 00  watchdog0.......
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
   backtrace:
  [<(____ptrval____)>] slab_post_alloc_hook+0x9c/0x270
  [<(____ptrval____)>] __kmalloc_track_caller+0x190/0x2d0
  [<(____ptrval____)>] kvasprintf+0xe4/0x1a0
  [<(____ptrval____)>] kvasprintf_const+0xcc/0x178
  [<(____ptrval____)>] kobject_set_name_vargs+0x54/0xf0
  [<(____ptrval____)>] dev_set_name+0xa8/0xd8
  [<(____ptrval____)>] watchdog_dev_register+0x154/0x428
  [<(____ptrval____)>] __watchdog_register_device+0x13c/0x400
  [<(____ptrval____)>] watchdog_register_device+0x9c/0x108
  [<(____ptrval____)>] devm_watchdog_register_device+0x50/0xe0
  [<(____ptrval____)>] sbsa_gwdt_probe+0x278/0x488
  [<(____ptrval____)>] platform_probe+0x8c/0x108
  [<(____ptrval____)>] really_probe+0x130/0x558
  [<(____ptrval____)>] __driver_probe_device+0xb8/0x130
  [<(____ptrval____)>] driver_probe_device+0x60/0x150
  [<(____ptrval____)>] __driver_attach+0xa0/0x160
unreferenced object 0xffff00208f9b6000 (size 256):
   comm "swapper/0", pid 1, jiffies 4294929730 (age 1071.904s)
   hex dump (first 32 bytes):
  00 00 00 00 00 00 00 00 08 60 9b 8f 20 00 ff ff  .........`.. ...
  08 60 9b 8f 20 00 ff ff f8 47 b2 10 00 80 ff ff  .`.. ....G......
   backtrace:
  [<(____ptrval____)>] slab_post_alloc_hook+0x9c/0x270
  [<(____ptrval____)>] kmem_cache_alloc+0x198/0x2e0
  [<(____ptrval____)>] device_add+0x354/0xcf0
  [<(____ptrval____)>] cdev_device_add+0x74/0xc0
  [<(____ptrval____)>] watchdog_dev_register+0x1e0/0x428
  [<(____ptrval____)>] __watchdog_register_device+0x13c/0x400
  [<(____ptrval____)>] watchdog_register_device+0x9c/0x108
  [<(____ptrval____)>] devm_watchdog_register_device+0x50/0xe0
  [<(____ptrval____)>] sbsa_gwdt_probe+0x278/0x488
  [<(____ptrval____)>] platform_probe+0x8c/0x108
  [<(____ptrval____)>] really_probe+0x130/0x558
  [<(____ptrval____)>] __driver_probe_device+0xb8/0x130
  [<(____ptrval____)>] driver_probe_device+0x60/0x150
  [<(____ptrval____)>] __driver_attach+0xa0/0x160
  [<(____ptrval____)>] bus_for_each_dev+0xec/0x160
  [<(____ptrval____)>] driver_attach+0x34/0x48
root@(none)$
root@(none)$
root@(none)$

I didn't see a report elsewhere. Maybe just a transient issue on Linus' 
tree.

Thanks,
John

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [report of possible bug] watchdog memory leak
  2021-07-07 12:38 [report of possible bug] watchdog memory leak John Garry
@ 2021-07-07 16:11 ` Guenter Roeck
  0 siblings, 0 replies; 2+ messages in thread
From: Guenter Roeck @ 2021-07-07 16:11 UTC (permalink / raw)
  To: John Garry; +Cc: wim, linux-watchdog

On Wed, Jul 07, 2021 at 01:38:32PM +0100, John Garry wrote:
> Hi guys,
> 
> Just a heads up in case it's a real issue - I was developing based on Linus'
> tree at 79160a603bdb, and with KMEMLEAK and DEBUG_TEST_DRIVER_REMOVE configs
> enabled, I get these warns:
> 

DEBUG_TEST_DRIVER_REMOVE does odd things, which may well interfer
with reference counting. I don't think this is a spurious issue
(and I have no idea if it is a real issue), but at least for my
part I don't plan to spend any time trying to track this down.
Others, please feel free to jump in.

Thanks,
Guenter

> root@(none)$ [  859.608780] kmemleak: 3 new suspected memory leaks (see
> /sys/kernel/debug/kmemleak)
> [  859.608780] kmemleak: 3 new suspected memory leaks (see
> /sys/kernel/debug/kmemleak)
> 
> root@(none)$ more /sys/kernel/debug/kmemleak
> unreferenced object 0xffff0020f9810800 (size 1024):
>   comm "swapper/0", pid 1, jiffies 4294929730 (age 1071.904s)
>   hex dump (first 32 bytes):
>  80 89 48 f8 20 00 ff ff 08 08 81 f9 20 00 ff ff  ..H. ....... ...
>  08 08 81 f9 20 00 ff ff 00 00 00 00 00 00 00 00  .... ...........
>   backtrace:
>  [<(____ptrval____)>] slab_post_alloc_hook+0x9c/0x270
>  [<(____ptrval____)>] kmem_cache_alloc+0x198/0x2e0
>  [<(____ptrval____)>] watchdog_dev_register+0x38/0x428
>  [<(____ptrval____)>] __watchdog_register_device+0x13c/0x400
>  [<(____ptrval____)>] watchdog_register_device+0x9c/0x108
>  [<(____ptrval____)>] devm_watchdog_register_device+0x50/0xe0
>  [<(____ptrval____)>] sbsa_gwdt_probe+0x278/0x488
>  [<(____ptrval____)>] platform_probe+0x8c/0x108
>  [<(____ptrval____)>] really_probe+0x130/0x558
>  [<(____ptrval____)>] __driver_probe_device+0xb8/0x130
>  [<(____ptrval____)>] driver_probe_device+0x60/0x150
>  [<(____ptrval____)>] __driver_attach+0xa0/0x160
>  [<(____ptrval____)>] bus_for_each_dev+0xec/0x160
>  [<(____ptrval____)>] driver_attach+0x34/0x48
>  [<(____ptrval____)>] bus_add_driver+0x1b8/0x2c0
>  [<(____ptrval____)>] driver_register+0xc0/0x1e0
> unreferenced object 0xffff0020f8488980 (size 64):
>   comm "swapper/0", pid 1, jiffies 4294929730 (age 1071.904s)
>   hex dump (first 32 bytes):
>  77 61 74 63 68 64 6f 67 30 00 00 00 00 00 00 00  watchdog0.......
>  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>   backtrace:
>  [<(____ptrval____)>] slab_post_alloc_hook+0x9c/0x270
>  [<(____ptrval____)>] __kmalloc_track_caller+0x190/0x2d0
>  [<(____ptrval____)>] kvasprintf+0xe4/0x1a0
>  [<(____ptrval____)>] kvasprintf_const+0xcc/0x178
>  [<(____ptrval____)>] kobject_set_name_vargs+0x54/0xf0
>  [<(____ptrval____)>] dev_set_name+0xa8/0xd8
>  [<(____ptrval____)>] watchdog_dev_register+0x154/0x428
>  [<(____ptrval____)>] __watchdog_register_device+0x13c/0x400
>  [<(____ptrval____)>] watchdog_register_device+0x9c/0x108
>  [<(____ptrval____)>] devm_watchdog_register_device+0x50/0xe0
>  [<(____ptrval____)>] sbsa_gwdt_probe+0x278/0x488
>  [<(____ptrval____)>] platform_probe+0x8c/0x108
>  [<(____ptrval____)>] really_probe+0x130/0x558
>  [<(____ptrval____)>] __driver_probe_device+0xb8/0x130
>  [<(____ptrval____)>] driver_probe_device+0x60/0x150
>  [<(____ptrval____)>] __driver_attach+0xa0/0x160
> unreferenced object 0xffff00208f9b6000 (size 256):
>   comm "swapper/0", pid 1, jiffies 4294929730 (age 1071.904s)
>   hex dump (first 32 bytes):
>  00 00 00 00 00 00 00 00 08 60 9b 8f 20 00 ff ff  .........`.. ...
>  08 60 9b 8f 20 00 ff ff f8 47 b2 10 00 80 ff ff  .`.. ....G......
>   backtrace:
>  [<(____ptrval____)>] slab_post_alloc_hook+0x9c/0x270
>  [<(____ptrval____)>] kmem_cache_alloc+0x198/0x2e0
>  [<(____ptrval____)>] device_add+0x354/0xcf0
>  [<(____ptrval____)>] cdev_device_add+0x74/0xc0
>  [<(____ptrval____)>] watchdog_dev_register+0x1e0/0x428
>  [<(____ptrval____)>] __watchdog_register_device+0x13c/0x400
>  [<(____ptrval____)>] watchdog_register_device+0x9c/0x108
>  [<(____ptrval____)>] devm_watchdog_register_device+0x50/0xe0
>  [<(____ptrval____)>] sbsa_gwdt_probe+0x278/0x488
>  [<(____ptrval____)>] platform_probe+0x8c/0x108
>  [<(____ptrval____)>] really_probe+0x130/0x558
>  [<(____ptrval____)>] __driver_probe_device+0xb8/0x130
>  [<(____ptrval____)>] driver_probe_device+0x60/0x150
>  [<(____ptrval____)>] __driver_attach+0xa0/0x160
>  [<(____ptrval____)>] bus_for_each_dev+0xec/0x160
>  [<(____ptrval____)>] driver_attach+0x34/0x48
> root@(none)$
> root@(none)$
> root@(none)$
> 
> I didn't see a report elsewhere. Maybe just a transient issue on Linus'
> tree.
> 
> Thanks,
> John

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-07-07 16:12 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-07 12:38 [report of possible bug] watchdog memory leak John Garry
2021-07-07 16:11 ` Guenter Roeck

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).