On Fri, 2025-03-21 at 09:56 +0100, Philipp Stanner wrote: > I see two small memory leaks on a Fedora 41 desktop with a custom > built > kernel @ commit: > > 27d4815149ba drm/sched: Group exported prototypes by object type > > GPU is an RTX 5000 Ada > > The leaks are there immediately after booting the machine. They don't > seem to reoccur, although I have not verified this very strictly. > > > cat /sys/kernel/debug/kmemleak > unreferenced object 0xff11000102304380 (size 8): > comm "kworker/0:2", pid 222, jiffies 4294714878 > hex dump (first 8 bytes): > 00 00 00 00 00 00 00 00 ........ > backtrace (crc 0): > __kmalloc_cache_noprof+0x355/0x450 > r535_gsp_oneinit+0x48e2/0x8bc0 [nouveau] > nvkm_subdev_oneinit_+0x10c/0x230 [nouveau] > nvkm_subdev_init_+0x86/0x1f0 [nouveau] > nvkm_subdev_init+0xa4/0xc0 [nouveau] > nvkm_device_init+0x347/0x530 [nouveau] > nvkm_udevice_init+0x8e/0xe0 [nouveau] > nvkm_object_init+0xc6/0x3f0 [nouveau] > nvkm_ioctl_new+0x383/0x6f0 [nouveau] > nvkm_ioctl+0x239/0x4f0 [nouveau] > nvif_object_ctor+0x3db/0x740 [nouveau] > nvif_device_ctor+0x32/0x100 [nouveau] > nouveau_drm_device_new+0x3c9/0xa50 [nouveau] > nouveau_drm_probe+0x119/0x440 [nouveau] > local_pci_probe+0xdc/0x180 > work_for_cpu_fn+0x52/0xa0 > unreferenced object 0xff11000102304aa0 (size 8): > comm "kworker/0:2", pid 222, jiffies 4294714878 > hex dump (first 8 bytes): > 00 00 00 00 00 00 00 00 ........ > backtrace (crc 0): > __kmalloc_cache_noprof+0x355/0x450 > r535_gsp_oneinit+0x4bdf/0x8bc0 [nouveau] > nvkm_subdev_oneinit_+0x10c/0x230 [nouveau] > nvkm_subdev_init_+0x86/0x1f0 [nouveau] > nvkm_subdev_init+0xa4/0xc0 [nouveau] > nvkm_device_init+0x347/0x530 [nouveau] > nvkm_udevice_init+0x8e/0xe0 [nouveau] > nvkm_object_init+0xc6/0x3f0 [nouveau] > nvkm_ioctl_new+0x383/0x6f0 [nouveau] > nvkm_ioctl+0x239/0x4f0 [nouveau] > nvif_object_ctor+0x3db/0x740 [nouveau] > nvif_device_ctor+0x32/0x100 [nouveau] > nouveau_drm_device_new+0x3c9/0xa50 [nouveau] > nouveau_drm_probe+0x119/0x440 [nouveau] > local_pci_probe+0xdc/0x180 > work_for_cpu_fn+0x52/0xa0 >
I probably should have provided the decoded stacktrace, shouldn't I. Here we go: backtrace (crc 0): __kmalloc_cache_noprof (/home/imperator/linux/./include/linux/kmemleak.h:43 /home/imperator/linux/mm/slub.c:4119 /home/imperator/linux/mm/slub.c:4164 /home/imperator/linux/mm/slub.c:4320) r535_gsp_oneinit (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c:1743 /home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c:1868 /home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c:1894 /home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c:3316) nouveau nvkm_subdev_oneinit_ (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/core/subdev.c:112) nouveau nvkm_subdev_init_ (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/core/subdev.c:139) nouveau nvkm_subdev_init (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/core/subdev.c:169) nouveau nvkm_device_init (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c:2960) nouveau nvkm_udevice_init (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/engine/device/user.c:247) nouveau nvkm_object_init (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/core/object.c:197) nouveau nvkm_ioctl_new (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c:135) nouveau nvkm_ioctl (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c:278 (discriminator 1) /home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c:300 (discriminator 1)) nouveau nvif_object_ctor (/home/imperator/linux/drivers/gpu/drm/nouveau/nvif/object.c:46 /home/imperator/linux/drivers/gpu/drm/nouveau/nvif/object.c:269) nouveau nvif_device_ctor (/home/imperator/linux/drivers/gpu/drm/nouveau/nvif/device.c:61) nouveau nouveau_drm_device_new (/home/imperator/linux/drivers/gpu/drm/nouveau/nouveau_drm.c:761) nouveau nouveau_drm_probe (/home/imperator/linux/drivers/gpu/drm/nouveau/nouveau_drm.c:879) nouveau local_pci_probe (/home/imperator/linux/drivers/pci/pci-driver.c:324) work_for_cpu_fn (/home/imperator/linux/kernel/workqueue.c:6731) unreferenced object 0xff11000102304aa0 (size 8): comm "kworker/0:2", pid 222, jiffies 4294714878 hex dump (first 8 bytes): 00 00 00 00 00 00 00 00 ........ backtrace (crc 0): __kmalloc_cache_noprof (/home/imperator/linux/./include/linux/kmemleak.h:43 /home/imperator/linux/mm/slub.c:4119 /home/imperator/linux/mm/slub.c:4164 /home/imperator/linux/mm/slub.c:4320) r535_gsp_oneinit (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c:1708 /home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c:1869 /home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c:1894 /home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c:3316) nouveau nvkm_subdev_oneinit_ (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/core/subdev.c:112) nouveau nvkm_subdev_init_ (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/core/subdev.c:139) nouveau nvkm_subdev_init (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/core/subdev.c:169) nouveau nvkm_device_init (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c:2960) nouveau nvkm_udevice_init (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/engine/device/user.c:247) nouveau nvkm_object_init (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/core/object.c:197) nouveau nvkm_ioctl_new (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c:135) nouveau nvkm_ioctl (/home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c:278 (discriminator 1) /home/imperator/linux/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c:300 (discriminator 1)) nouveau nvif_object_ctor (/home/imperator/linux/drivers/gpu/drm/nouveau/nvif/object.c:46 /home/imperator/linux/drivers/gpu/drm/nouveau/nvif/object.c:269) nouveau nvif_device_ctor (/home/imperator/linux/drivers/gpu/drm/nouveau/nvif/device.c:61) nouveau nouveau_drm_device_new (/home/imperator/linux/drivers/gpu/drm/nouveau/nouveau_drm.c:761) nouveau nouveau_drm_probe (/home/imperator/linux/drivers/gpu/drm/nouveau/nouveau_drm.c:879) nouveau local_pci_probe (/home/imperator/linux/drivers/pci/pci-driver.c:324) work_for_cpu_fn (/home/imperator/linux/kernel/workqueue.c:6731) r535.c:3316 seems to be: ret = r535_gsp_rpc_set_system_info(gsp); if (WARN_ON(ret)) return ret;