[PATCH 00/19] drm: debugfs: Remove all files automatically on cleanup

Noralf Trønnes noralf at tronnes.org
Fri Jan 27 14:23:43 UTC 2017


Den 27.01.2017 08.49, skrev Daniel Vetter:
> On Thu, Jan 26, 2017 at 11:56:02PM +0100, Noralf Trønnes wrote:
>> This patchset removes the need for drivers to clean up their debugfs
>> files on exit. It is done automatically in drm_debugfs_cleanup().
>> This funtion is also called should the driver error out in it's
>> drm_driver.debugfs_init callback.
>>
>> Two drivers still use drm_debugfs_remove_files():
>> - tegra in it's connectors, not sure if I can remove it.
> I read through them, and they're removed on the component device nodes
> stuff. That looks somewhat fishy from a lifetime point of view, and I
> think removing all that code would be better, too.
>
>> - qxl because it's debugfs files list is part of struct qxl_device which
>>    is freed on unload before drm_minor_unregister() is called cleaning debugfs.
> In -next qxl is already demidlayered and there's no longer an unload hook.
> This should be all safe ... why is it not?

My bad, I fetched linux-next a few days ago and figured it was
up-to-date-enough. Duh, I should have known better after following drm for
a year now, it is constantly changing, no pauses.

Can you please ping me when you have pulled driver patches and I'll respin
msm, tegra and qxl (and others if necessary), and remove the hook.
It's much easier for me to do a small patchset, it's really a strain to get
everything lined up correctly with big changes. I didn't have that patch
juggling class when in school, so I'm late to the game :-)


Noralf.

>> Daniel,
>> I was unable to remove the drm_driver.debugfs_cleanup hook completely,
>> since drm/msm uses it to free memory. Maybe it can be freed elsewhere.
> Well this is definitely a massive step into a good direction, great work.
> For msm I think we can just move the two calls left in msm_debugfs_cleanup
> in msm_drm_uninit, right after the call to drm_dev_unregister.
> -Daniel
>
>>
>> Note:
>> The driver patches are only compile tested.
>>
>>
>> Noralf.
>>
>>
>> Noralf Trønnes (19):
>>    drm: debugfs: Remove all files automatically on cleanup
>>    drm: drm_minor_register(): Clean up debugfs on failure
>>    drm/atomic: Remove drm_atomic_debugfs_cleanup()
>>    drm/amd/amdgpu: Remove drm_debugfs_remove_files() call
>>    drm/armada: Remove armada_drm_debugfs_cleanup()
>>    drm/etnaviv: allow build with COMPILE_TEST
>>    drm/etnaviv: Remove etnaviv_debugfs_cleanup()
>>    drm/hdlcd: Remove hdlcd_debugfs_cleanup()
>>    drm/msm: Remove drm_debugfs_remove_files() calls
>>    drm/nouveau: Remove nouveau_drm_debugfs_cleanup()
>>    drm/omap: Remove omap_debugfs_cleanup()
>>    drm/radeon: Remove drm_debugfs_remove_files() call
>>    drm/sti: Remove drm_debugfs_remove_files() calls
>>    drm/tegra: Remove tegra_debugfs_cleanup()
>>    drm/tilcdc: Remove tilcdc_debugfs_cleanup()
>>    drm/vc4: Remove vc4_debugfs_cleanup()
>>    drm/virtio: Remove virtio_gpu_debugfs_takedown()
>>    drm/qxl: Remove qxl_debugfs_takedown()
>>    drm/i915: Remove i915_debugfs_unregister()
>>
>>   drivers/gpu/drm/amd/amdgpu/amdgpu.h        |  1 -
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 20 ------
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c    |  1 -
>>   drivers/gpu/drm/arm/hdlcd_drv.c            |  7 ---
>>   drivers/gpu/drm/armada/armada_debugfs.c    | 65 +++-----------------
>>   drivers/gpu/drm/armada/armada_drm.h        |  1 -
>>   drivers/gpu/drm/armada/armada_drv.c        |  3 -
>>   drivers/gpu/drm/drm_atomic.c               |  7 ---
>>   drivers/gpu/drm/drm_crtc_internal.h        |  1 -
>>   drivers/gpu/drm/drm_debugfs.c              | 29 +++++----
>>   drivers/gpu/drm/drm_drv.c                  |  2 +-
>>   drivers/gpu/drm/etnaviv/Kconfig            |  2 +-
>>   drivers/gpu/drm/etnaviv/etnaviv_drv.c      |  7 ---
>>   drivers/gpu/drm/i915/i915_debugfs.c        | 97 ++++--------------------------
>>   drivers/gpu/drm/i915/i915_drv.c            |  1 -
>>   drivers/gpu/drm/i915/i915_drv.h            |  2 -
>>   drivers/gpu/drm/i915/intel_drv.h           |  1 -
>>   drivers/gpu/drm/i915/intel_pipe_crc.c      | 68 ++++-----------------
>>   drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c    |  7 ---
>>   drivers/gpu/drm/msm/msm_debugfs.c          |  2 -
>>   drivers/gpu/drm/msm/msm_perf.c             | 29 +--------
>>   drivers/gpu/drm/msm/msm_rd.c               | 31 +---------
>>   drivers/gpu/drm/nouveau/nouveau_debugfs.c  | 62 ++++---------------
>>   drivers/gpu/drm/nouveau/nouveau_debugfs.h  |  6 --
>>   drivers/gpu/drm/nouveau/nouveau_drm.c      |  1 -
>>   drivers/gpu/drm/omapdrm/omap_debugfs.c     |  9 ---
>>   drivers/gpu/drm/omapdrm/omap_drv.c         |  1 -
>>   drivers/gpu/drm/omapdrm/omap_drv.h         |  1 -
>>   drivers/gpu/drm/qxl/qxl_debugfs.c          |  9 ---
>>   drivers/gpu/drm/qxl/qxl_drv.c              |  1 -
>>   drivers/gpu/drm/qxl/qxl_drv.h              |  1 -
>>   drivers/gpu/drm/radeon/radeon_device.c     | 16 -----
>>   drivers/gpu/drm/sti/sti_drv.c              | 48 ++-------------
>>   drivers/gpu/drm/sti/sti_dvo.c              | 10 ---
>>   drivers/gpu/drm/sti/sti_hda.c              | 11 ----
>>   drivers/gpu/drm/sti/sti_hdmi.c             | 11 ----
>>   drivers/gpu/drm/sti/sti_tvout.c            |  8 ---
>>   drivers/gpu/drm/tegra/drm.c                |  7 ---
>>   drivers/gpu/drm/tilcdc/tilcdc_drv.c        | 12 ----
>>   drivers/gpu/drm/tilcdc/tilcdc_drv.h        |  2 -
>>   drivers/gpu/drm/vc4/vc4_debugfs.c          |  6 --
>>   drivers/gpu/drm/vc4/vc4_drv.c              |  1 -
>>   drivers/gpu/drm/vc4/vc4_drv.h              |  1 -
>>   drivers/gpu/drm/virtio/virtgpu_debugfs.c   |  8 ---
>>   drivers/gpu/drm/virtio/virtgpu_drv.c       |  1 -
>>   drivers/gpu/drm/virtio/virtgpu_drv.h       |  1 -
>>   46 files changed, 76 insertions(+), 542 deletions(-)
>>
>> --
>> 2.10.2
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel



More information about the dri-devel mailing list