From: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
To: igt-dev@lists.freedesktop.org
Cc: siqueira@igalia.com,
"Thadeu Lima de Souza Cascardo" <cascardo@igalia.com>,
dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org,
intel-xe@lists.freedesktop.org,
"Christian Koenig" <christian.koenig@amd.com>,
maarten.lankhorst@linux.intel.com,
"Thomas Hellström" <thomas.hellstrom@linux.intel.com>,
"Kamil Konieczny" <kamil.konieczny@linux.intel.com>,
"Janusz Krzysztofik" <janusz.krzysztofik@linux.intel.com>,
"Vitaly Prosyak" <vitaly.prosyak@amd.com>,
"Natalie Vock" <natalie.vock@gmx.de>,
"Tvrtko Ursulin" <tvrtko.ursulin@igalia.com>,
kernel-dev@igalia.com
Subject: [PATCH i-g-t v5 0/7] add cgroup_dmem test
Date: Thu, 23 Jul 2026 16:43:06 -0300 [thread overview]
Message-ID: <20260723194313.2748143-1-cascardo@igalia.com> (raw)
v5 TLDR:
Removing creation of VM on Xe and removing USAGE_SLACK.
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.
Latest tests for amdgpu used patchset at [9] on top of v7.2-rc3.
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.
Compared to v3 of this one [7]:
- Merge dmem_cgroups tests into cgroup_dmem and making cgroup_dmem original
test a subtest.
- Remove assertion when trying to verify allocations have failed as amdgpu
will fallback to GTT.
Compared to v4 of this one [8]:
- Removed the creation of vm in Xe, that was leading to extra bytes being
used and was no longer necessary.
- Removed the USAGE_SLACK that was necessary due to the extra bytes
allocated due to the use of vm in Xe.
[1] https://patchwork.freedesktop.org/series/163935/#rev3
[2] https://patchwork.freedesktop.org/series/166496/
[3] https://lore.kernel.org/dri-devel/20260611173301.17473-1-thomas.hellstrom@linux.intel.com/
[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/20260623174319.4138648-1-cascardo@igalia.com/
[7] https://lore.kernel.org/dri-devel/20260702130108.1397444-1-cascardo@igalia.com/
[8] https://lore.kernel.org/dri-devel/20260717120447.1837818-1-cascardo@igalia.com/
[9] https://lore.kernel.org/dri-devel/20260703130541.2686-1-thomas.hellstrom@linux.intel.com/
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 | 139 +++++++++
lib/xe/xe_query.c | 32 ++
lib/xe/xe_query.h | 2 +
tests/cgroup_dmem.c | 332 +++++++++++++++++++++
tests/meson.build | 1 +
13 files changed, 1355 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
--
2.47.3
next reply other threads:[~2026-07-23 19:44 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-23 19:43 Thadeu Lima de Souza Cascardo [this message]
2026-07-23 19:43 ` [PATCH i-g-t v5 1/7] lib/igt_cgroup: add cgroup v2 and dmem controller helpers Thadeu Lima de Souza Cascardo
2026-07-23 19:43 ` [PATCH i-g-t v5 2/7] tests/cgroup_dmem: add dmem cgroup controller test Thadeu Lima de Souza Cascardo
2026-07-23 19:43 ` [PATCH i-g-t v5 3/7] lib/xe: add xe_cgroup_region_name() helper Thadeu Lima de Souza Cascardo
2026-07-23 19:43 ` [PATCH i-g-t v5 4/7] lib/xe: Introduce dmem driver and implement Xe support Thadeu Lima de Souza Cascardo
2026-07-23 19:43 ` [PATCH i-g-t v5 5/7] lib/amdgpu: add amdgpu_cgroup_region_name Thadeu Lima de Souza Cascardo
2026-07-23 19:43 ` [PATCH i-g-t v5 6/7] lib/amdgpu: add amdgpu support to igt_dmem_driver Thadeu Lima de Souza Cascardo
2026-07-23 19:43 ` [PATCH i-g-t v5 7/7] tests/dmem_cgroups: add test for dmem.current Thadeu Lima de Souza Cascardo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260723194313.2748143-1-cascardo@igalia.com \
--to=cascardo@igalia.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=christian.koenig@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=igt-dev@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=janusz.krzysztofik@linux.intel.com \
--cc=kamil.konieczny@linux.intel.com \
--cc=kernel-dev@igalia.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=natalie.vock@gmx.de \
--cc=siqueira@igalia.com \
--cc=thomas.hellstrom@linux.intel.com \
--cc=tvrtko.ursulin@igalia.com \
--cc=vitaly.prosyak@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox