Memory leaks from r535_gsp_oneinit()

Philipp Stanner pstanner at redhat.com
Fri Mar 21 09:15:27 UTC 2025


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;



More information about the Nouveau mailing list