[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <a5ad7291-c369-fadb-a085-b5a6465024be@suse.de>
Date: Mon, 13 Jan 2020 09:05:11 +0100
From: Thomas Zimmermann <tzimmermann@...e.de>
To: John Garry <john.garry@...wei.com>,
"kongxinwei (A)" <kong.kongxinwei@...ilicon.com>,
"Chenfeng (puck)" <puck.chen@...ilicon.com>,
"airlied@...ux.ie" <airlied@...ux.ie>, daniel@...ll.ch
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>
Subject: Re: Warnings in DRM code when removing/unbinding a driver
Hi John
Am 10.01.20 um 13:54 schrieb John Garry:
>
>
> Hi Thomas,
>
>> drm-tip now contains
>
> I have tested today's linux-next, which includes this:
>
>>
>> commit a88248506a2bcfeaef6837a53cde19fe11970e6c
>> Author: Thomas Zimmermann <tzimmermann@...e.de>
>> Date: Tue Dec 3 09:38:15 2019 +0100
>>
>> drm/hisilicon/hibmc: Switch to generic fbdev emulation
>>
>> which removes this entire code and switches hibmc to generic fbdev
>> emulation. Does that fix the problem?
>>
>
> And I see no warn, here's a dmesg snippet:
Great. So I'll consider this fixed. Thanks for reporting ad testing.
Best regards
Thomas
>
> [ 20.672787] pci 0007:90:00.0: can't derive routing for PCI INT A
> [ 20.678831] hibmc-drm 0007:91:00.0: PCI INT A: no GSI
> [ 20.686536] pci_bus 0007:90: 2-byte config write to 0007:90:00.0
> offset 0x4 may corrupt adjacent RW1C bits
> [ 20.696888] [TTM] Zone kernel: Available graphics memory: 57359458 KiB
> [ 20.703545] [TTM] Zone dma32: Available graphics memory: 2097152 KiB
> [ 20.710108] [TTM] Initializing pool allocator
> [ 20.714561] [TTM] Initializing DMA pool allocator
> [ 20.720212] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
> [ 20.726863] [drm] No driver support for vblank timestamp query.
> [ 20.754777] Console: switching to colour frame buffer device 100x37
> [ 20.778180] hibmc-drm 0007:91:00.0: fb0: hibmcdrmfb frame buffer device
> [ 20.786447] [drm] Initialized hibmc 1.0.0 20160828 for 0007:91:00.0
> on minor 0
> [ 20.794346] Console: switching to colour dummy device 80x25
> [ 20.801884] pci 0007:90:00.0: can't derive routing for PCI INT A
> [ 20.807963] hibmc-drm 0007:91:00.0: PCI INT A: no GSI
> [ 20.813656] [TTM] Finalizing pool allocator
> [ 20.817905] [TTM] Finalizing DMA pool allocator
> [ 20.822576] [TTM] Zone kernel: Used memory at exit: 0 KiB
> [ 20.828760] [TTM] Zone dma32: Used memory at exit: 0 KiB
> [ 20.834978] pci 0007:90:00.0: can't derive routing for PCI INT A
> [ 20.841021] hibmc-drm 0007:91:00.0: PCI INT A: no GSI
> [ 20.848858] [TTM] Zone kernel: Available graphics memory: 57359458 KiB
> [ 20.855516] [TTM] Zone dma32: Available graphics memory: 2097152 KiB
> [ 20.862079] [TTM] Initializing pool allocator
> [ 20.866525] [TTM] Initializing DMA pool allocator
> [ 20.872064] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
> [ 20.878716] [drm] No driver support for vblank timestamp query.
> [ 20.905996] Console: switching to colour frame buffer device 100x37
> [ 20.929385] hibmc-drm 0007:91:00.0: fb0: hibmcdrmfb frame buffer device
> [ 20.937241] [drm] Initialized hibmc 1.0.0 20160828 for 0007:91:00.0
> on minor 0
> [ 21.171906] loop: module loaded
>
> Thanks,
> John
>
>> Best regards
>> Thomas
>>
>>> [ 27.965802] hibmc_unload+0x2c/0xd0
>>> [ 27.969281] hibmc_pci_remove+0x2c/0x40
>>> [ 27.973109] pci_device_remove+0x6c/0x140
>>> [ 27.977110] really_probe+0x174/0x548
>>> [ 27.980763] driver_probe_device+0x7c/0x148
>>> [ 27.984936] device_driver_attach+0x94/0xa0
>>> [ 27.989109] __driver_attach+0xa8/0x110
>>> [ 27.992935] bus_for_each_dev+0xe8/0x158
>>> [ 27.996849] driver_attach+0x30/0x40
>>> [ 28.000415] bus_add_driver+0x234/0x2f0
>>> [ 28.004241] driver_register+0xbc/0x1d0
>>> [ 28.008067] __pci_register_driver+0xbc/0xd0
>>> [ 28.012329] hibmc_pci_driver_init+0x20/0x28
>>> [ 28.016590] do_one_initcall+0xb4/0x254
>>> [ 28.020417] kernel_init_freeable+0x27c/0x328
>>> [ 28.024765] kernel_init+0x10/0x118
>>> [ 28.028245] ret_from_fork+0x10/0x18
>>> [ 28.031813] ---[ end trace 35a83b71b657878d ]---
>>> [ 28.036503] ------------[ cut here ]------------
>>> [ 28.041115] WARNING: CPU: 24 PID: 1 at
>>> drivers/gpu/drm/drm_gem_vram_helper.c:40
>>> ttm_buffer_object_destroy+0x4c/0x80
>>> [ 28.051537] Modules linked in:
>>> [ 28.054585] CPU: 24 PID: 1 Comm: swapper/0 Tainted: G B W
>>> 5.5.0-rc1-dirty #565
>>> [ 28.062924] Hardware name: Huawei D06 /D06, BIOS Hisilicon D06 UEFI
>>> RC0 - V1.16.01 03/15/2019
>>>
>>> [snip]
>>>
>>> Indeed, simply unbinding the device from the driver causes the same sort
>>> of issue:
>>>
>>> root@(none)$ cd ./bus/pci/drivers/hibmc-drm/
>>> root@(none)$ ls
>>> 0000:05:00.0 bind new_id remove_id uevent
>>> unbind
>>> root@(none)$ echo 0000\:05\:00.0 > unbind
>>> [ 116.074352] ------------[ cut here ]------------
>>> [ 116.078978] WARNING: CPU: 17 PID: 1178 at
>>> drivers/gpu/drm/drm_gem_vram_helper.c:40
>>> ttm_buffer_object_destroy+0x4c/0x80
>>> [ 116.089661] Modules linked in:
>>> [ 116.092711] CPU: 17 PID: 1178 Comm: sh Tainted: G B W
>>> 5.5.0-rc1-dirty #565
>>> [ 116.100704] Hardware name: Huawei D06 /D06, BIOS Hisilicon D06 UEFI
>>> RC0 - V1.16.01 03/15/2019
>>> [ 116.109218] pstate: 20400009 (nzCv daif +PAN -UAO)
>>> [ 116.114001] pc : ttm_buffer_object_destroy+0x4c/0x80
>>> [ 116.118956] lr : ttm_buffer_object_destroy+0x18/0x80
>>> [ 116.123910] sp : ffff0022e6cef8e0
>>> [ 116.127215] x29: ffff0022e6cef8e0 x28: ffff00231b1fb000
>>> [ 116.132519] x27: 0000000000000000 x26: ffff00231b1fb000
>>> [ 116.137821] x25: ffff0022e6cefdc0 x24: 0000000000002480
>>> [ 116.143124] x23: ffff0023682b6ab0 x22: ffff0023682b6800
>>> [ 116.148427] x21: ffff0023682b6800 x20: 0000000000000000
>>> [ 116.153730] x19: ffff0023682b6800 x18: 0000000000000000
>>> [ 116.159032] x17: 000000000000000000000000001
>>> [ 116.185545] x7 : ffff0023682b6b07 x6 : ffff80046d056d61
>>> [ 116.190848] x5 : ffff80046d056d61 x4 : ffff0023682b6ba0
>>> [ 116.196151] x3 : ffffa00010197338 x2 : dfffa00000000000
>>> [ 116.201453] x1 : 0000000000000003 x0 : 0000000000000001
>>> [ 116.206756] Call trace:
>>> [ 116.209195] ttm_buffer_object_destroy+0x4c/0x80
>>> [ 116.213803] ttm_bo_release_list+0x184/0x220
>>> [ 116.218064] ttm_bo_put+0x410/0x5d0
>>> [ 116.221544] drm_gem_vram_object_free+0xc/0x18
>>> [ 116.225979] drm_gem_object_free+0x34/0xd0
>>> [ 116.230066] drm_gem_object_put_unlocked+0xc8/0xf0
>>> [ 116.234848] hibmc_user_framebuffer_destroy+0x20/0x40
>>> [ 116.239890] drm_framebuffer_free+0x48/0x58
>>> [ 116.244064] drm_mode_object_put.part.1+0x90/0xe8
>>> [ 116.248759] drm_mode_object_put+0x28/0x38
>>> [ 116.252846] hibmc_fbdev_fini+0x54/0x78
>>> [ 116.256672] hibmc_unload+0x2c/0xd0
>>> [ 116.260151] hibmc_pci_remove+0x2c/0x40
>>> [ 116.263979] pci_device_remove+0x6c/0x140
>>> [ 116.267980] device_release_driver_internal+0x134/0x250
>>> [ 116.273196] device_driver_detach+0x28/0x38
>>> [ 116.277369] unbind_store+0xfc/0x150
>>> [ 116.280934] drv_attr_store+0x48/0x60
>>> [ 116.284589] sysfs_kf_write+0x80/0xb0
>>> [ 116.288241] kernfs_fop_write+0x1d4/0x320
>>> [ 116.292243] __vfs_write+0x54/0x98
>>> [ 116.295635] vfs_write+0xe8/0x270
>>> [ 116.298940] ksys_write+0xc8/0x180
>>> [ 116.302333] __arm64_sys_write+0x40/0x50
>>> [ 116.306248] el0_svc_common.constprop.0+0xa4/0x1f8
>>> [ 116.311029] el0_svc_handler+0x34/0xb0
>>> [ 116.314770] el0_sync_handler+0x10c/0x1c8
>>> [ 116.318769] el0_sync+0x140/0x180
>>> [ 116.322074] ---[ end trace e60e43d0e316b5c8 ]---
>>> [ 116.326868] ------------[ cut here ]------------
>>>
>>>
>>> dmesg and .config is here:
>>> https://pastebin.com/4P5yaZBS
>>>
>>> I'm not sure if this is a HIBMC driver issue or issue with the
>>> framework.
>>>
>>> john
>>>
>>>
>>> _______________________________________________
>>> dri-devel mailing list
>>> dri-devel@...ts.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>>
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@...ts.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer
Download attachment "signature.asc" of type "application/pgp-signature" (489 bytes)
Powered by blists - more mailing lists