[igt-dev] [PATCH i-g-t v33 00/39] Introduce IGT allocator
Zbigniew Kempczyński
zbigniew.kempczynski at intel.com
Tue Apr 13 08:41:47 UTC 2021
This series introduce intel-allocator inside IGT.
...
v24: address review comment:
- change gem_linear_blits to show the way we can use during
rewriting other tests to use/not use relocations
v25: changes:
- fix bug introduced during last review refactor in gem_linear_blits
- remove api_intel_bb at last-page test to not to hang gpu, we can decide
to get this test later
v26: resend for review (Jason)
v27: addressing review comments:
- fix calculation of size in simple allocator (Jason)
- check buffer size is enough to handle WxHxBPP in intel_buf (Jason)
- skip collecting relocations in intel-bb for non-reloc mode (Zbigniew)
v28: addressing review comments:
- replace igt_map with hash table taken from Eric Anholt and used
in Mesa (Dominik)
- adopt new igt_map, requires some rework in intel_allocator (Zbigniew)
v29: - remove igt_hlist (current hashmap doesn't use it, Dominik)
- add non-asserting __intel_allocator_alloc() for future use (Zbigniew)
v30: - remove kill_children() which unfortunatelly also kills helpers what
is not we want
- add alloc_with_strategy() to support rewriting spinners
v31: - fix race which is encountered when multiprocess allocator start()/stop()
are called in different igt_fixtures in igt_subtest_groups. This bug
was exposed during rewriting gem_exec_fence test (not included in this
series due to not completing it yet)
v32: - rebase (missing in v31 what leads to compile error)
v33: - fix linking issue with libatomic on mips
Cc: Dominik Grzegorzek <dominik.grzegorzek at intel.com>
Cc: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Petri Latvala <petri.latvala at intel.com>
Cc: Andrzej Turko <andrzej.turko at linux.intel.com>
Dominik Grzegorzek (5):
lib/igt_list: Add igt_list_for_each_entry_safe_reverse
lib/igt_map: Adopt Mesa hash table
lib/intel_allocator_simple: Add simple allocator
tests/api_intel_allocator: Simple allocator test suite
tests/gem_linear_blits: Use intel allocator
Zbigniew Kempczyński (34):
lib/igt_list: Add igt_list_del_init()
lib/igt_core: Track child process pid and tid
lib/intel_allocator_reloc: Add reloc allocator
lib/intel_allocator_random: Add random allocator
lib/intel_allocator: Add intel_allocator core
lib/intel_allocator: Try to stop smoothly instead of deinit
lib/intel_allocator_msgchannel: Scale to 4k of parallel clients
lib/intel_allocator: Separate allocator multiprocess start
lib/intel_bufops: Change size from 32->64 bit
lib/intel_bufops: Add init with handle and size function
lib/intel_batchbuffer: Integrate intel_bb with allocator
lib/intel_batchbuffer: Use relocations in intel-bb up to gen12
lib/intel_batchbuffer: Create bb with strategy / vm ranges
lib/intel_batchbuffer: Add tracking intel_buf to intel_bb
lib/intel_batchbuffer: Don't collect relocations for newer gens
lib/igt_fb: Initialize intel_buf with same size as fb
tests/api_intel_bb: Remove check-canonical test
tests/api_intel_bb: Modify test to verify intel_bb with allocator
tests/api_intel_bb: Add compressed->compressed copy
tests/api_intel_bb: Add purge-bb test
tests/api_intel_bb: Add simple intel-bb which uses allocator
tests/api_intel_bb: Use allocator in delta-check test
tests/api_intel_bb: Check switching vm in intel-bb
tests/api_intel_allocator: Add execbuf with allocator example
tests/api_intel_allocator: Verify child can use its standalone
allocator
tests/gem_softpin: Verify allocator and execbuf pair work together
tests/gem|kms: Remove intel_bb from fixture
tests/gem_mmap_offset: Use intel_buf wrapper code instead direct
tests/gem_ppgtt: Adopt test to use intel_bb with allocator
tests/gem_render_copy_redux: Adopt to use with intel_bb and allocator
tests/perf.c: Remove buffer from batch
lib/intel_allocator: drop kill_children()
lib/intel_allocator: Add alloc function which allows passing strategy
argument
lib/intel_allocator: Wait for allocator thread to be ready
.../igt-gpu-tools/igt-gpu-tools-docs.xml | 2 +
lib/igt_core.c | 20 +
lib/igt_fb.c | 10 +-
lib/igt_list.c | 6 +
lib/igt_list.h | 7 +
lib/igt_map.c | 502 ++++++
lib/igt_map.h | 174 ++
lib/intel_allocator.c | 1422 +++++++++++++++++
lib/intel_allocator.h | 231 +++
lib/intel_allocator_msgchannel.c | 195 +++
lib/intel_allocator_msgchannel.h | 157 ++
lib/intel_allocator_random.c | 190 +++
lib/intel_allocator_reloc.c | 192 +++
lib/intel_allocator_simple.c | 807 ++++++++++
lib/intel_aux_pgtable.c | 26 +-
lib/intel_batchbuffer.c | 737 ++++++---
lib/intel_batchbuffer.h | 54 +-
lib/intel_bufops.c | 64 +-
lib/intel_bufops.h | 20 +-
lib/media_spin.c | 2 -
lib/meson.build | 7 +
tests/i915/api_intel_allocator.c | 715 +++++++++
tests/i915/api_intel_bb.c | 741 +++++++--
tests/i915/gem_caching.c | 14 +-
tests/i915/gem_linear_blits.c | 90 +-
tests/i915/gem_mmap_offset.c | 4 +-
tests/i915/gem_partial_pwrite_pread.c | 40 +-
tests/i915/gem_ppgtt.c | 7 +-
tests/i915/gem_render_copy.c | 31 +-
tests/i915/gem_render_copy_redux.c | 24 +-
tests/i915/gem_softpin.c | 194 +++
tests/i915/perf.c | 9 +
tests/intel-ci/fast-feedback.testlist | 2 +
tests/kms_big_fb.c | 12 +-
tests/meson.build | 1 +
35 files changed, 6224 insertions(+), 485 deletions(-)
create mode 100644 lib/igt_map.c
create mode 100644 lib/igt_map.h
create mode 100644 lib/intel_allocator.c
create mode 100644 lib/intel_allocator.h
create mode 100644 lib/intel_allocator_msgchannel.c
create mode 100644 lib/intel_allocator_msgchannel.h
create mode 100644 lib/intel_allocator_random.c
create mode 100644 lib/intel_allocator_reloc.c
create mode 100644 lib/intel_allocator_simple.c
create mode 100644 tests/i915/api_intel_allocator.c
--
2.26.0
More information about the igt-dev
mailing list