[igt-dev] [PATCH i-g-t v19 00/34] Introduce IGT allocator
Zbigniew Kempczyński
zbigniew.kempczynski at intel.com
Tue Feb 2 09:24:09 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
Still to address:
- review comments in igt_map/igt_hlist
- map allocator to fd/vm_id instead of fd/ctx
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 (29):
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_bufops: Removes handle from allocator, change size
lib/intel_bufops: Add init with handle and size function
lib/intel_batchbuffer: Integrate intel_bb with allocator
lib/intel_batchbuffer: Add tracking intel_buf to intel_bb
lib/intel_aux_pgtable: Get addresses for aux table from an allocator
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 compressed->compressed copy
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/gem_submission: Add gem_has_relocations() check
lib/intel_batchbuffer: Use relocations in intel-bb up to gen12
tests/api_intel_*: Adopt to use relocations as default up to gen12
tests/api_intel_bb: Remove check-canonical test
tests/api_intel_bb: Use allocator in delta-check test
lib/intel_allocator: Separate allocator multiprocess start
tests/api_intel_allocator: Prepare to run with sanitizer
tests/api_intel_bb: Add simple intel-bb which uses allocator
tests/api_intel_allocator: Add execbuf with allocator example
.../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 | 77 ++
lib/igt_list.h | 51 +-
lib/igt_map.c | 132 +++
lib/igt_map.h | 102 ++
lib/intel_allocator.c | 971 ++++++++++++++++++
lib/intel_allocator.h | 152 +++
lib/intel_allocator_msgchannel.c | 195 ++++
lib/intel_allocator_msgchannel.h | 145 +++
lib/intel_allocator_random.c | 204 ++++
lib/intel_allocator_simple.c | 704 +++++++++++++
lib/intel_aux_pgtable.c | 26 +-
lib/intel_batchbuffer.c | 561 +++++++---
lib/intel_batchbuffer.h | 28 +-
lib/intel_bufops.c | 63 +-
lib/intel_bufops.h | 20 +-
lib/meson.build | 5 +
tests/i915/api_intel_allocator.c | 632 ++++++++++++
tests/i915/api_intel_bb.c | 615 ++++++++---
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 +
36 files changed, 4773 insertions(+), 435 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