On 07/02, Thadeu Lima de Souza Cascardo wrote: > v3 TLDR: > Sending again for fixes when running on top of Xe. > > This patchset is based on the work of Thomas Hellström at [1] and a > followup I have submitted at [2]. This is now a v3, since I submitted [6]. > > With this version, I reverted the order in which to apply the patchsets, as > this one adds the infrastructure and the drivers mechanisms, and a test for > dmem.current and its behavior around dmem.max that is currently supported > in the kernel. > > As for the new dmem.max eviction behavior, introduced by [3], it has been > pushed to a branch at [4]. If preferred, I can submit the two patches > independently. > > I have run the tests, including the ones that test dmem.max eviction > behavior on a system with a 1GiB VRAM amdgpu card. Rodrigo Siqueira helped > me run it on a Xe system. We have applied the patchset at [3] on top of > current linux origin/master [5], with a fixup for the amdgpu driver. > > Now, for the changes since v1 [2]: > - Changed the test name from drv_dmem_cgroups to dmem_cgroups. > - Have system includes before igt ones. > - Documented the current SUBTEST. > - Changed free_vram driver hook to only release a given BO. This allows for > the eviction trigger by a new allocation added by write_eviction_nonblock > subtest. > - Changed allocate_vram to keep more state necessary for releasing a single > BO. > - Added a global free_vram helper to free all allocated VRAM. > > Compared to v3 of [1]: > - I have kept wait_for_usage_drop as release can be lazy and we test for it > on test_current SUBTEST, but had USAGE_DROP_TIMEOUT_MS be a little > longer. > - Changed BO_SIZE and EVICT_STEP to allow for more than two eviction steps > on a 1GiB VRAM system. > - Reduced USAGE_SLACK to avoid false positives, but still allow for some > page table accounting. > > Compared to v2 of this one [6]: > > - Ignore -ENOMEM and -ENOSPC when trying to fill VRAM. > - When limiting max memory, allow for some slack, as there might be some > overhead. > - On Xe, allocate GEM object with no deferred backing, and skip binding.
Hi, I tested this series with the following hardware: - RX9060XT - RX570 - Intel ARC B580 Based on that, this series was: Tested-by: Rodrigo Siqueira <[email protected]> Thanks > > [1] https://patchwork.freedesktop.org/series/163935/#rev3 > [2] https://patchwork.freedesktop.org/series/166496/ > [3] > https://lore.kernel.org/dri-devel/[email protected]/ > [4] > https://gitlab.freedesktop.org/cascardo/igt-gpu-tools/-/commits/dmem_max?ref_type=heads > [5] 502d801f0ab0 ("Merge tag 'erofs-for-7.2-rc1' of > git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs") > [6] > https://lore.kernel.org/dri-devel/[email protected]/ > > > Thadeu Lima de Souza Cascardo (4): > lib/xe: Introduce dmem driver and implement Xe support > lib/amdgpu: add amdgpu_cgroup_region_name > lib/amdgpu: add amdgpu support to igt_dmem_driver > tests/dmem_cgroups: add test for dmem.current > > Thomas Hellström (3): > lib/igt_cgroup: add cgroup v2 and dmem controller helpers > tests/cgroup_dmem: add dmem cgroup controller test > lib/xe: add xe_cgroup_region_name() helper > > lib/amdgpu/amd_dmem.c | 99 +++++++ > lib/amdgpu/amd_memory.c | 25 ++ > lib/amdgpu/amd_memory.h | 2 + > lib/igt.h | 1 + > lib/igt_cgroup.c | 638 ++++++++++++++++++++++++++++++++++++++++ > lib/igt_cgroup.h | 56 ++++ > lib/igt_dmem_driver.h | 25 ++ > lib/meson.build | 3 + > lib/xe/xe_dmem.c | 143 +++++++++ > lib/xe/xe_query.c | 32 ++ > lib/xe/xe_query.h | 2 + > tests/cgroup_dmem.c | 92 ++++++ > tests/dmem_cgroups.c | 245 +++++++++++++++ > tests/meson.build | 2 + > 14 files changed, 1365 insertions(+) > create mode 100644 lib/amdgpu/amd_dmem.c > create mode 100644 lib/igt_cgroup.c > create mode 100644 lib/igt_cgroup.h > create mode 100644 lib/igt_dmem_driver.h > create mode 100644 lib/xe/xe_dmem.c > create mode 100644 tests/cgroup_dmem.c > create mode 100644 tests/dmem_cgroups.c > > -- > 2.47.3 > -- Rodrigo Siqueira https://siqueira.tech
