Message ID | 20230411225725.2032862-1-robdclark@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | drm: fdinfo memory stats | expand |
Am 12.04.23 um 00:56 schrieb Rob Clark: > From: Rob Clark <robdclark@chromium.org> > > Similar motivation to other similar recent attempt[1]. But with an > attempt to have some shared code for this. As well as documentation. > > It is probably a bit UMA-centric, I guess devices with VRAM might want > some placement stats as well. But this seems like a reasonable start. > > Basic gputop support: https://patchwork.freedesktop.org/series/116236/ > And already nvtop support: https://github.com/Syllo/nvtop/pull/204 > > [1] https://patchwork.freedesktop.org/series/112397/ I think the extra client id looks a bit superfluous since the ino of the file should already be unique and IIRC we have been already using that one. Apart from that looks good to me, Christian. PS: For some reason only the two patches I was CCed on ended up in my inbox, dri-devel swallowed all the rest and hasn't spit it out yet. Had to dig up the rest from patchwork. > > Rob Clark (7): > drm: Add common fdinfo helper > drm/msm: Switch to fdinfo helper > drm/amdgpu: Switch to fdinfo helper > drm/i915: Switch to fdinfo helper > drm/etnaviv: Switch to fdinfo helper > drm: Add fdinfo memory stats > drm/msm: Add memory stats to fdinfo > > Documentation/gpu/drm-usage-stats.rst | 21 ++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 3 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c | 16 ++- > drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.h | 2 +- > drivers/gpu/drm/drm_file.c | 115 +++++++++++++++++++++ > drivers/gpu/drm/etnaviv/etnaviv_drv.c | 10 +- > drivers/gpu/drm/i915/i915_driver.c | 3 +- > drivers/gpu/drm/i915/i915_drm_client.c | 18 +--- > drivers/gpu/drm/i915/i915_drm_client.h | 2 +- > drivers/gpu/drm/msm/msm_drv.c | 11 +- > drivers/gpu/drm/msm/msm_gem.c | 15 +++ > drivers/gpu/drm/msm/msm_gpu.c | 2 - > include/drm/drm_drv.h | 7 ++ > include/drm/drm_file.h | 5 + > include/drm/drm_gem.h | 19 ++++ > 15 files changed, 208 insertions(+), 41 deletions(-) >
On 12/04/2023 10:34, Christian König wrote: > Am 12.04.23 um 00:56 schrieb Rob Clark: >> From: Rob Clark <robdclark@chromium.org> >> >> Similar motivation to other similar recent attempt[1]. But with an >> attempt to have some shared code for this. As well as documentation. >> >> It is probably a bit UMA-centric, I guess devices with VRAM might want >> some placement stats as well. But this seems like a reasonable start. >> >> Basic gputop support: https://patchwork.freedesktop.org/series/116236/ >> And already nvtop support: https://github.com/Syllo/nvtop/pull/204 >> >> [1] https://patchwork.freedesktop.org/series/112397/ > > I think the extra client id looks a bit superfluous since the ino of the > file should already be unique and IIRC we have been already using that one. Do you mean file_inode(struct drm_file->filp)->i_ino ? That one would be the same number for all clients which open the same device node so wouldn't work. I also don't think the atomic_add_return for client id works either, since it can alias on overflow. In i915 I use an xarray and __xa_alloc_cyclic. Regards, Tvrtko
Am 12.04.23 um 14:10 schrieb Tvrtko Ursulin: > > On 12/04/2023 10:34, Christian König wrote: >> Am 12.04.23 um 00:56 schrieb Rob Clark: >>> From: Rob Clark <robdclark@chromium.org> >>> >>> Similar motivation to other similar recent attempt[1]. But with an >>> attempt to have some shared code for this. As well as documentation. >>> >>> It is probably a bit UMA-centric, I guess devices with VRAM might want >>> some placement stats as well. But this seems like a reasonable start. >>> >>> Basic gputop support: https://patchwork.freedesktop.org/series/116236/ >>> And already nvtop support: https://github.com/Syllo/nvtop/pull/204 >>> >>> [1] https://patchwork.freedesktop.org/series/112397/ >> >> I think the extra client id looks a bit superfluous since the ino of >> the file should already be unique and IIRC we have been already using >> that one. > > Do you mean file_inode(struct drm_file->filp)->i_ino ? That one would > be the same number for all clients which open the same device node so > wouldn't work. Ah, right. DMA-buf used a separate ino per buffer, but we don't do that for the drm_file. > > I also don't think the atomic_add_return for client id works either, > since it can alias on overflow. Yeah, we might want to use a 64bit number here if any. Christian. > > In i915 I use an xarray and __xa_alloc_cyclic. > > Regards, > > Tvrtko
From: Rob Clark <robdclark@chromium.org> Similar motivation to other similar recent attempt[1]. But with an attempt to have some shared code for this. As well as documentation. It is probably a bit UMA-centric, I guess devices with VRAM might want some placement stats as well. But this seems like a reasonable start. Basic gputop support: https://patchwork.freedesktop.org/series/116236/ And already nvtop support: https://github.com/Syllo/nvtop/pull/204 [1] https://patchwork.freedesktop.org/series/112397/ Rob Clark (7): drm: Add common fdinfo helper drm/msm: Switch to fdinfo helper drm/amdgpu: Switch to fdinfo helper drm/i915: Switch to fdinfo helper drm/etnaviv: Switch to fdinfo helper drm: Add fdinfo memory stats drm/msm: Add memory stats to fdinfo Documentation/gpu/drm-usage-stats.rst | 21 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c | 16 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.h | 2 +- drivers/gpu/drm/drm_file.c | 115 +++++++++++++++++++++ drivers/gpu/drm/etnaviv/etnaviv_drv.c | 10 +- drivers/gpu/drm/i915/i915_driver.c | 3 +- drivers/gpu/drm/i915/i915_drm_client.c | 18 +--- drivers/gpu/drm/i915/i915_drm_client.h | 2 +- drivers/gpu/drm/msm/msm_drv.c | 11 +- drivers/gpu/drm/msm/msm_gem.c | 15 +++ drivers/gpu/drm/msm/msm_gpu.c | 2 - include/drm/drm_drv.h | 7 ++ include/drm/drm_file.h | 5 + include/drm/drm_gem.h | 19 ++++ 15 files changed, 208 insertions(+), 41 deletions(-)