[igt-dev] [PATCH i-g-t v21 00/35] Introduce IGT allocator
Zbigniew Kempczyński
zbigniew.kempczynski at intel.com
Mon Mar 1 16:13:28 UTC 2021
This series introduce intel-allocator inside IGT.
v2: add comment/commit msg for allocator core
v3: enforce relocs in gem_linear_blits for ppgtt sizes <= 32b
v4: use addresses only from ppgtt range in check-canonical
v5: use relocations as default up to gen12 to avoid loosing
coverage.
v6: migrate memory check in gem_ppgtt to avoid exec serialization
v7: keep decanonical address within intel-bb, remove check-canonical
test
v8: adopt delta-check to use intel-bb with allocator to fully control
addresses
v9: fix intel_allocator_is_reserved() prototype (Andrzej)
v10: separate allocator initialization for multiprocess execution
to compile and run against address sanitizer
v11: rebase on top intel-bb and aux pgtable changes
v12: rebase, fixing api-intel-bb
v13: rebase
v14: gem_softpin: fix handle leak, add allocator tests
v15: gem_softpin: add allocator-basic and allocator-basic-reserve to BAT
add reserve/unreserve to work with full ppgtt without bias/reservation
from the end of vm
v16: addressing review comments - simplify code, add comments (Chris)
v17: adding SPDX license for all new files introduced in the series
v18: fix intel_bb_add/remove intel_buf list handling from O(n)->O(1) (Chris)
v19: - add igt_list_del_init()
- migrate gem_has_relocations() check to gem_submission
- add simple tests (intel-bb and pure execbuf) with allocator usage
as copy-paste examples
v20: - add possibility to define vm range in simple allocator (default
just excludes last-page)
- add test which could reveal render issue on last-page
- addressing reviews
- reorder patches to avoid compilation break
Series doesn't cover fd/vm_id (it still assumes we use allocator
with context).
v21: - refactor of allocator code related to keeping allocator handles
(main reason of that was VM context getparam would return different
vm_id for same vm).
- intel-bb can switch to different vm (allocator handle) now.
- extend documentation and comments.
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: igt_hlist implementation.
lib/igt_map: Introduce igt_map
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 (30):
lib/gem_submission: Add gem_has_relocations() check
lib/igt_list: Add igt_list_del_init()
lib/igt_core: Track child process pid and tid
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/igt_fb: Initialize intel_buf with same size as fb
tests/api_intel_bb: Modify test to verify intel_bb with allocator
tests/api_intel_bb: Add subtest to check render batch on the last page
tests/api_intel_bb: Add compressed->compressed copy
tests/api_intel_bb: Add purge-bb test
tests/api_intel_bb: Remove check-canonical 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/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
.../igt-gpu-tools/igt-gpu-tools-docs.xml | 2 +
lib/Makefile.sources | 8 +
lib/i915/gem_submission.c | 30 +
lib/i915/gem_submission.h | 1 +
lib/igt_core.c | 20 +
lib/igt_fb.c | 10 +-
lib/igt_list.c | 78 +
lib/igt_list.h | 51 +-
lib/igt_map.c | 131 ++
lib/igt_map.h | 104 ++
lib/intel_allocator.c | 1351 +++++++++++++++++
lib/intel_allocator.h | 219 +++
lib/intel_allocator_msgchannel.c | 195 +++
lib/intel_allocator_msgchannel.h | 156 ++
lib/intel_allocator_random.c | 203 +++
lib/intel_allocator_simple.c | 744 +++++++++
lib/intel_aux_pgtable.c | 26 +-
lib/intel_batchbuffer.c | 718 ++++++---
lib/intel_batchbuffer.h | 54 +-
lib/intel_bufops.c | 63 +-
lib/intel_bufops.h | 20 +-
lib/media_spin.c | 2 -
lib/meson.build | 5 +
tests/i915/api_intel_allocator.c | 660 ++++++++
tests/i915/api_intel_bb.c | 789 +++++++---
tests/i915/gem_caching.c | 14 +-
tests/i915/gem_linear_blits.c | 117 +-
tests/i915/gem_mmap_offset.c | 4 +-
tests/i915/gem_partial_pwrite_pread.c | 40 +-
tests/i915/gem_ppgtt.c | 6 +
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 +
37 files changed, 5605 insertions(+), 489 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_simple.c
create mode 100644 tests/i915/api_intel_allocator.c
--
2.26.0
More information about the igt-dev
mailing list