[PATCH v6 0/5] drm/amdgpu: add UMA carveout tuning interfaces

Yo-Jung Leo Lin (AMD) posted 5 patches 1 day, 17 hours ago
Documentation/gpu/amdgpu/driver-misc.rst         |  26 ++++
drivers/gpu/drm/amd/amdgpu/amdgpu.h              |  41 ++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c         |  47 +++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c |  77 ++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h |   2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c       | 172 +++++++++++++++++++++++
drivers/gpu/drm/amd/include/amd_acpi.h           |  34 ++++-
7 files changed, 398 insertions(+), 1 deletion(-)
[PATCH v6 0/5] drm/amdgpu: add UMA carveout tuning interfaces
Posted by Yo-Jung Leo Lin (AMD) 1 day, 17 hours ago
The integrated info v2.3 table in the Atom ROM exposes available
options for the VRAM carveout sizes. The carveout size can be changed
using the ATCS function code 0xA for BIOS that supports this.

Make these features available as sysfs files, so that users can set
the carveout size in a way similar to what a Windows user can do in
the "Tuning" tab in the AMD Adrenalin. The newly added sysfs files
are:

- uma/carveout_options: this a read-only file listing all available
  carveout options. They are fetched from the Atom ROM on driver
  initialization.

- uma/carveout: this shows the index of the currently selected option,
  as shown in the uma_carveout_options. Writing a valid option index
  to this file will change the carveout option on next boot.

Note that above files are created only if BIOS indicates support for
it, i.e. where the table shows non-zero UMACarveoutIndexMax.

Signed-off-by: Yo-Jung Leo Lin (AMD) <Leo.Lin@amd.com>
---
Changes in v6:
- Rename sysfs init/fini function to amdgpu_uma_sysfs_init/fini.
- Initialize sysfs interface in amdgpu_device_sys_interface_init/fini
  in amdgpu_device.c, instead of amdgpu_acpi_init() in amdgpu_acpi.c
- Return early from amdgpu_uma_sysfs_init() if this is not an APU.
  This avoids the failure message show up in the debug log on dGPU.
  (Per talk offline with Lijo these checks combined may be sufficient.)
- Note: code changes are made only to patch 4 compared to last version.
- Rebase to latest asdn
- Link to v5: https://lore.kernel.org/r/20251205-vram-carveout-tuning-for-upstream-v5-0-1e87cf3b57be@amd.com

Changes in v5:
- Move uma_info from struct amdgpu_atcs to struct amdgpu_device.
- Move implementation of sysfs entry initialization functions from amdgpu_acpi.c
  to amdgpu_device.c
- Adjust function prototypes and how they access uma_info and amdgpu_atcs in accordance
  with the changes above
- Do clean up for uma_info in amdgpu_acpi_uma_option_fini() only if allocation size
  setting is supported, for uma_info is initialized only when this is supported
- Link to v4: https://lore.kernel.org/r/20251201-vram-carveout-tuning-for-upstream-v4-0-9e151363b5ab@amd.com

---
Yo-Jung Leo Lin (AMD) (5):
      drm/amdgpu: parse UMA size-getting/setting bits in ATCS mask
      drm/amdgpu: add helper to read UMA carveout info
      drm/amdgpu: add UMA allocation setting helpers
      drm/amdgpu: add UMA allocation interfaces to sysfs
      Documentation/amdgpu: Add UMA carveout details

 Documentation/gpu/amdgpu/driver-misc.rst         |  26 ++++
 drivers/gpu/drm/amd/amdgpu/amdgpu.h              |  41 ++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c         |  47 +++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c |  77 ++++++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h |   2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c       | 172 +++++++++++++++++++++++
 drivers/gpu/drm/amd/include/amd_acpi.h           |  34 ++++-
 7 files changed, 398 insertions(+), 1 deletion(-)
---
base-commit: 3925683515e93844be204381d2d5a1df5de34f31
change-id: 20251103-vram-carveout-tuning-for-upstream-1d5189688d73

Best regards,
-- 
Yo-Jung Leo Lin (AMD) <Leo.Lin@amd.com>