On 9/17/26 14:04, Tvrtko Ursulin wrote: > Re-floating a simple idea (this time with more Cc) born from an user interest > to > be able to correctly size the swap space during OS installation, based on the > size of the VRAM a discrete GPU might have. And to be able to do it in a > vendor > agnostic way. > > Idea is to expose a standardized scheme in sysfs, under the DRM class card, > and > under a new 'memstat' directory. Such as, example from amdgpu: > > /sys/class/drm/card1/memstat/ > ├── gtt > │ ├── total_mb > │ └── used_mb > └── vram > ├── total_mb > └── used_mb > > Or with concrete numbers: > > $ grep -Hr . /sys/class/drm/card1/memstat/ > /sys/class/drm/card1/memstat/vram/total_mb:1024 > /sys/class/drm/card1/memstat/vram/used_mb:445 > /sys/class/drm/card1/memstat/gtt/total_mb:7394 > /sys/class/drm/card1/memstat/gtt/used_mb:71 > > Drivers need to implement a simple DRM driver level callback which needs to > report a stable list of interesting memory regions and their respective stats. > The region names then become sub-directory names under the new 'memstat' > directory, with each region exposing the total size and the current usage. > > Similar data can already be queried if the dmem cgroup controller is enabled, > also only for the participating drivers, by querying the root cgroup. But > perhaps sysfs is easier, or perhaps it is too much code for too little > benefit. > I am curious to hear any opinions.
The implementation can be polished a bit but I seriously like the idea to standardize that. amdgpu already exposes the information as non-standard sysfs files and adds a bit more, e.g. CPU visible VRAM size, VRAM vendor etc... I'm wondering if those shouldn't be added as well and the existing sysfs files then implemented as symlinks. Regards, Christian. > > Cc: Maíra Canal <[email protected]> > Cc: Ludovico de Nittis <[email protected]> > Cc: Alex Deucher <[email protected]> > Cc: Christian König <[email protected]> > Cc: Maarten Lankhorst <[email protected]> > Cc: Maxime Ripard <[email protected]> > Cc: Thomas Zimmermann <[email protected]> > Cc: David Airlie <[email protected]> > Cc: Simona Vetter <[email protected]> > > Tvrtko Ursulin (2): > drm: Allow drivers to report standardized memory stats > drm/amdgpu: Wire up DRM memory stats reporting > > drivers/gpu/drm/amd/amdgpu/amdgpu.h | 6 + > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c | 40 +++++-- > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 37 +++++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 3 + > drivers/gpu/drm/drm_drv.c | 10 ++ > drivers/gpu/drm/drm_sysfs.c | 123 +++++++++++++++++++++ > include/drm/drm_device.h | 19 ++++ > include/drm/drm_drv.h | 8 ++ > include/drm/drm_file.h | 9 ++ > include/drm/drm_sysfs.h | 4 + > 11 files changed, 248 insertions(+), 13 deletions(-) >
