[igt-dev] [PATCH i-g-t v27 00/36] Introduce IGT allocator

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Thu Mar 18 11:23:31 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)
   
     We still keep igt_map intact - we're going to stress test and prove 
     implementation is correct (instead of starting rewriting process).

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 (31):
  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/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_batchbuffer: Don't collect relocations for newer gens

 .../igt-gpu-tools/igt-gpu-tools-docs.xml      |    2 +
 lib/Makefile.sources                          |    8 +
 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                         | 1360 +++++++++++++++++
 lib/intel_allocator.h                         |  222 +++
 lib/intel_allocator_msgchannel.c              |  195 +++
 lib/intel_allocator_msgchannel.h              |  156 ++
 lib/intel_allocator_random.c                  |  188 +++
 lib/intel_allocator_reloc.c                   |  190 +++
 lib/intel_allocator_simple.c                  |  772 ++++++++++
 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                               |    6 +
 tests/i915/api_intel_allocator.c              |  700 +++++++++
 tests/i915/api_intel_bb.c                     |  729 +++++++--
 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 +
 36 files changed, 5772 insertions(+), 481 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