dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Joonas Lahtinen <jlahtine@jlahtine-mobl.ger.corp.intel.com>
To: Dave Airlie <airlied@gmail.com>, Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: dim-tools@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	Sean Paul <sean@poorly.run>,
	intel-gfx@lists.freedesktop.org
Subject: [PULL] drm-intel-gt-next
Date: Mon, 7 Sep 2020 16:00:39 +0300	[thread overview]
Message-ID: <20200907130039.GA27766@jlahtine-mobl.ger.corp.intel.com> (raw)

Hi Dave & Daniel,

Exactly same content as previous PR:

https://lists.freedesktop.org/archives/intel-gfx/2020-September/247626.html

Just rebased adding the missing S-o-b:s and updated "Fixes:" tags accordingly
as requested.

Regards, Joonas

***

drm-intel-gt-next-2020-09-07:

(Same content as drm-intel-gt-next-2020-09-04-3, S-o-b's added)

UAPI Changes:
(- Potential implicit changes from WW locking refactoring)

Cross-subsystem Changes:
(- WW locking changes should align the i915 locking more with others)

Driver Changes:

- MAJOR: Apply WW locking across the driver (Maarten)

- Reverts for 5 commits to make applying WW locking faster (Maarten)
- Disable preparser around invalidations on Tigerlake for non-RCS engines (Chris)
- Add missing dma_fence_put() for error case of syncobj timeline (Chris)
- Parse command buffer earlier in eb_relocate(slow) to facilitate backoff (Maarten)
- Pin engine before pinning all objects (Maarten)
- Rework intel_context pinning to do everything outside of pin_mutex (Maarten)

- Avoid tracking GEM context until registered (Cc: stable, Chris)
- Provide a fastpath for waiting on vma bindings (Chris)
- Fixes to preempt-to-busy mechanism (Chris)
- Distinguish the virtual breadcrumbs from the irq breadcrumbs (Chris)
- Switch to object allocations for page directories (Chris)
- Hold context/request reference while breadcrumbs are active (Chris)
- Make sure execbuffer always passes ww state to i915_vma_pin (Maarten)

- Code refactoring to facilitate use of WW locking (Maarten)
- Locking refactoring to use more granular locking (Maarten, Chris)
- Support for multiple pinned timelines per engine (Chris)
- Move complication of I915_GEM_THROTTLE to the ioctl from general code (Chris)
- Make active tracking/vma page-directory stash work preallocated (Chris)
- Avoid flushing submission tasklet too often (Chris)
- Reduce context termination list iteration guard to RCU (Chris)
- Reductions to locking contention (Chris)
- Fixes for issues found by CI (Chris)
The following changes since commit 3393649977f9a8847c659e282ea290d4b703295c:

  Merge tag 'drm-intel-next-2020-08-24-1' of git://anongit.freedesktop.org/drm/drm-intel into drm-next (2020-08-28 14:09:31 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2020-09-07

for you to fetch changes up to e0ee152fce25dc9269c7ea5280c98aa4b3682759:

  drm/i915: Unlock the shared hwsp_gtt object after pinning (2020-09-07 15:08:11 +0300)

----------------------------------------------------------------
(Same content as drm-intel-gt-next-2020-09-04-3, S-o-b's added)

UAPI Changes:
(- Potential implicit changes from WW locking refactoring)

Cross-subsystem Changes:
(- WW locking changes should align the i915 locking more with others)

Driver Changes:

- MAJOR: Apply WW locking across the driver (Maarten)

- Reverts for 5 commits to make applying WW locking faster (Maarten)
- Disable preparser around invalidations on Tigerlake for non-RCS engines (Chris)
- Add missing dma_fence_put() for error case of syncobj timeline (Chris)
- Parse command buffer earlier in eb_relocate(slow) to facilitate backoff (Maarten)
- Pin engine before pinning all objects (Maarten)
- Rework intel_context pinning to do everything outside of pin_mutex (Maarten)

- Avoid tracking GEM context until registered (Cc: stable, Chris)
- Provide a fastpath for waiting on vma bindings (Chris)
- Fixes to preempt-to-busy mechanism (Chris)
- Distinguish the virtual breadcrumbs from the irq breadcrumbs (Chris)
- Switch to object allocations for page directories (Chris)
- Hold context/request reference while breadcrumbs are active (Chris)
- Make sure execbuffer always passes ww state to i915_vma_pin (Maarten)

- Code refactoring to facilitate use of WW locking (Maarten)
- Locking refactoring to use more granular locking (Maarten, Chris)
- Support for multiple pinned timelines per engine (Chris)
- Move complication of I915_GEM_THROTTLE to the ioctl from general code (Chris)
- Make active tracking/vma page-directory stash work preallocated (Chris)
- Avoid flushing submission tasklet too often (Chris)
- Reduce context termination list iteration guard to RCU (Chris)
- Reductions to locking contention (Chris)
- Fixes for issues found by CI (Chris)

----------------------------------------------------------------
Chris Wilson (33):
      drm/i915: Reduce i915_request.lock contention for i915_request_wait
      drm/i915/selftests: Mock the status_page.vma for the kernel_context
      drm/i915: Soften the tasklet flush frequency before waits
      drm/i915/gem: Remove disordered per-file request list for throttling
      drm/i915/gt: Disable preparser around xcs invalidations on tgl
      drm/i915/gt: Delay taking the spinlock for grabbing from the buffer pool
      drm/i915/selftests: Flush the active barriers before asserting
      drm/i915/gt: Fix termination condition for freeing all buffer objects
      drm/i915/gem: Delay tracking the GEM context until it is registered
      drm/i915/gt: Support multiple pinned timelines
      drm/i915/gt: Pull release of node->age under the spinlock
      drm/i915/selftests: Drop stale timeline constructor assert
      drm/i915: Skip taking acquire mutex for no ref->active callback
      drm/i915: Export a preallocate variant of i915_active_acquire()
      drm/i915: Keep the most recently used active-fence upon discard
      drm/i915: Make the stale cached active node available for any timeline
      drm/i915: Reduce locking around i915_active_acquire_preallocate_barrier()
      drm/i915: Provide a fastpath for waiting on vma bindings
      drm/i915: Remove requirement for holding i915_request.lock for breadcrumbs
      drm/i915/gt: Replace intel_engine_transfer_stale_breadcrumbs
      drm/i915/gt: Only transfer the virtual context to the new engine if active
      drm/i915/gt: Distinguish the virtual breadcrumbs from the irq breadcrumbs
      drm/i915: Preallocate stashes for vma page-directories
      drm/i915/gt: Switch to object allocations for page directories
      drm/i915/gt: Shrink i915_page_directory's slab bucket
      drm/i915/gt: Move intel_breadcrumbs_arm_irq earlier
      drm/i915/gt: Hold context/request reference while breadcrumbs are active
      drm/i915/selftests: Prevent selecting 0 for our random width/align
      drm/i915/gem: Reduce context termination list iteration guard to RCU
      drm/i915/gem: Free the fence after a fence-chain lookup failure
      drm/i915: Be wary of data races when reading the active execlists
      drm/i915: Remove i915_request.lock requirement for execution callbacks
      drm/i915: Filter wake_flags passed to default_wake_function

Maarten Lankhorst (23):
      Revert "drm/i915/gem: Async GPU relocations only"
      drm/i915: Revert relocation chaining commits.
      Revert "drm/i915/gem: Drop relocation slowpath".
      Revert "drm/i915/gem: Split eb_vma into its own allocation"
      drm/i915: Add an implementation for i915_gem_ww_ctx locking, v2.
      drm/i915: Remove locking from i915_gem_object_prepare_read/write
      drm/i915: Parse command buffer earlier in eb_relocate(slow)
      drm/i915: Use per object locking in execbuf, v12.
      drm/i915: Use ww locking in intel_renderstate.
      drm/i915: Add ww context handling to context_barrier_task
      drm/i915: Nuke arguments to eb_pin_engine
      drm/i915: Pin engine before pinning all objects, v5.
      drm/i915: Rework intel_context pinning to do everything outside of pin_mutex
      drm/i915: Make sure execbuffer always passes ww state to i915_vma_pin.
      drm/i915: Convert i915_gem_object/client_blt.c to use ww locking as well, v2.
      drm/i915: Kill last user of intel_context_create_request outside of selftests
      drm/i915: Convert i915_perf to ww locking as well
      drm/i915: Dirty hack to fix selftests locking inversion
      drm/i915/selftests: Fix locking inversion in lrc selftest.
      drm/i915: Use ww pinning for intel_context_create_request()
      drm/i915: Move i915_vma_lock in the selftests to avoid lock inversion, v3.
      drm/i915: Add ww locking to vm_fault_gtt
      drm/i915: Add ww locking to pin_to_display_plane, v2.

Thomas Hellström (1):
      drm/i915: Unlock the shared hwsp_gtt object after pinning

 drivers/gpu/drm/i915/display/intel_display.c       |    6 +-
 drivers/gpu/drm/i915/gem/i915_gem_client_blt.c     |   89 +-
 drivers/gpu/drm/i915/gem/i915_gem_context.c        |  105 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c         |    4 +-
 drivers/gpu/drm/i915/gem/i915_gem_domain.c         |   80 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     | 1601 +++++++++++++-------
 drivers/gpu/drm/i915/gem/i915_gem_mman.c           |   51 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.h         |   40 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_blt.c     |  152 +-
 drivers/gpu/drm/i915/gem/i915_gem_object_blt.h     |    3 +
 drivers/gpu/drm/i915/gem/i915_gem_object_types.h   |   10 +
 drivers/gpu/drm/i915/gem/i915_gem_pm.c             |    2 +-
 drivers/gpu/drm/i915/gem/i915_gem_throttle.c       |   67 +-
 drivers/gpu/drm/i915/gem/i915_gem_tiling.c         |    2 +-
 drivers/gpu/drm/i915/gem/selftests/huge_pages.c    |    9 +-
 .../drm/i915/gem/selftests/i915_gem_client_blt.c   |    2 +-
 .../drm/i915/gem/selftests/i915_gem_coherency.c    |   50 +-
 .../gpu/drm/i915/gem/selftests/i915_gem_context.c  |  144 +-
 .../drm/i915/gem/selftests/i915_gem_execbuffer.c   |   60 +-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |   45 +-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_phys.c |    2 +-
 drivers/gpu/drm/i915/gt/gen6_ppgtt.c               |  106 +-
 drivers/gpu/drm/i915/gt/gen6_ppgtt.h               |    5 +-
 drivers/gpu/drm/i915/gt/gen8_ppgtt.c               |  181 +--
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |  305 ++--
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.h        |   36 +
 drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h  |   47 +
 drivers/gpu/drm/i915/gt/intel_context.c            |  318 ++--
 drivers/gpu/drm/i915/gt/intel_context.h            |   13 +
 drivers/gpu/drm/i915/gt/intel_context_types.h      |    5 +-
 drivers/gpu/drm/i915/gt/intel_engine.h             |   20 -
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |   34 +-
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |    3 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |   31 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |   97 +-
 drivers/gpu/drm/i915/gt/intel_gt.c                 |   23 +-
 drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c     |  103 +-
 .../gpu/drm/i915/gt/intel_gt_buffer_pool_types.h   |    6 +-
 drivers/gpu/drm/i915/gt/intel_gt_irq.c             |    1 +
 drivers/gpu/drm/i915/gt/intel_gtt.c                |  300 +---
 drivers/gpu/drm/i915/gt/intel_gtt.h                |  142 +-
 drivers/gpu/drm/i915/gt/intel_lrc.c                |  182 ++-
 drivers/gpu/drm/i915/gt/intel_ppgtt.c              |  150 +-
 drivers/gpu/drm/i915/gt/intel_renderstate.c        |   73 +-
 drivers/gpu/drm/i915/gt/intel_renderstate.h        |    9 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |    1 +
 drivers/gpu/drm/i915/gt/intel_ring.c               |   10 +-
 drivers/gpu/drm/i915/gt/intel_ring.h               |    3 +-
 drivers/gpu/drm/i915/gt/intel_ring_submission.c    |   42 +-
 drivers/gpu/drm/i915/gt/intel_rps.c                |    1 +
 drivers/gpu/drm/i915/gt/intel_timeline.c           |   28 +-
 drivers/gpu/drm/i915/gt/intel_timeline.h           |   24 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |   43 +-
 drivers/gpu/drm/i915/gt/mock_engine.c              |   30 +-
 drivers/gpu/drm/i915/gt/selftest_context.c         |    2 +
 drivers/gpu/drm/i915/gt/selftest_lrc.c             |   22 +-
 drivers/gpu/drm/i915/gt/selftest_rps.c             |   30 +-
 drivers/gpu/drm/i915/gt/selftest_timeline.c        |   10 +-
 drivers/gpu/drm/i915/gt/selftest_workarounds.c     |    2 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.c             |    2 +-
 drivers/gpu/drm/i915/gvt/cmd_parser.c              |    3 +-
 drivers/gpu/drm/i915/gvt/scheduler.c               |   17 +-
 drivers/gpu/drm/i915/i915_active.c                 |  237 ++-
 drivers/gpu/drm/i915/i915_active.h                 |   31 +-
 drivers/gpu/drm/i915/i915_drv.c                    |    2 +-
 drivers/gpu/drm/i915/i915_drv.h                    |   24 +-
 drivers/gpu/drm/i915/i915_gem.c                    |  107 +-
 drivers/gpu/drm/i915/i915_gem.h                    |   12 +
 drivers/gpu/drm/i915/i915_irq.c                    |    1 +
 drivers/gpu/drm/i915/i915_perf.c                   |   57 +-
 drivers/gpu/drm/i915/i915_request.c                |  224 +--
 drivers/gpu/drm/i915/i915_request.h                |    8 -
 drivers/gpu/drm/i915/i915_sw_fence.c               |   10 +-
 drivers/gpu/drm/i915/i915_vma.c                    |   65 +-
 drivers/gpu/drm/i915/i915_vma.h                    |   13 +-
 drivers/gpu/drm/i915/selftests/i915_gem.c          |   41 +
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |   75 +-
 drivers/gpu/drm/i915/selftests/i915_perf.c         |    4 +-
 drivers/gpu/drm/i915/selftests/i915_request.c      |   18 +-
 drivers/gpu/drm/i915/selftests/i915_vma.c          |    2 +-
 .../gpu/drm/i915/selftests/intel_memory_region.c   |    8 +-
 drivers/gpu/drm/i915/selftests/mock_gtt.c          |   26 +-
 82 files changed, 3743 insertions(+), 2206 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gt/intel_breadcrumbs.h
 create mode 100644 drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

             reply	other threads:[~2020-09-07 13:00 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-07 13:00 Joonas Lahtinen [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-04-26  7:17 [PULL] drm-intel-gt-next Joonas Lahtinen
2024-02-28 14:02 Tvrtko Ursulin
2024-02-15 10:06 Tvrtko Ursulin
2024-02-16  2:58 ` Dave Airlie
2024-02-16  9:31   ` Thomas Hellström
2024-02-16  9:33     ` Thomas Hellström
2024-02-16  9:41   ` Joonas Lahtinen
2024-02-20 15:14     ` Joonas Lahtinen
2023-12-15 12:11 Joonas Lahtinen
2023-12-08 16:18 Joonas Lahtinen
2023-10-19 14:54 Tvrtko Ursulin
2023-10-12 10:30 Tvrtko Ursulin
2023-09-28 12:36 Tvrtko Ursulin
2023-08-11 10:47 Joonas Lahtinen
2023-08-04  8:45 Joonas Lahtinen
2023-06-08 15:34 Tvrtko Ursulin
2023-05-24 18:09 Tvrtko Ursulin
2023-04-06 11:41 Maarten Lankhorst
2023-04-06 12:34 ` Jani Nikula
2023-04-06 13:00   ` Daniel Vetter
2023-04-06  8:18 Joonas Lahtinen
2023-04-06 12:38 ` Daniel Vetter
2023-03-16 12:58 Joonas Lahtinen
2023-02-01 11:36 Tvrtko Ursulin
2023-01-18 11:24 Tvrtko Ursulin
2023-01-24 15:32 ` Daniel Vetter
2022-11-18  9:12 Joonas Lahtinen
2022-11-03  8:03 Joonas Lahtinen
2022-10-31 11:07 Joonas Lahtinen
2022-11-01 19:33 ` Dave Airlie
2022-09-16  8:47 Joonas Lahtinen
2022-09-09 11:20 Joonas Lahtinen
2022-08-24 12:01 Joonas Lahtinen
2022-07-13 21:31 Rodrigo Vivi
2022-07-21 15:06 ` Vivi, Rodrigo
2022-06-29 10:45 Tvrtko Ursulin
2022-05-05  6:39 Tvrtko Ursulin
2022-04-27 10:49 Tvrtko Ursulin
2022-03-03  7:50 Joonas Lahtinen
2022-02-17 10:26 Joonas Lahtinen
2022-02-20 23:30 ` Dave Airlie
2022-02-21  9:21   ` Jani Nikula
2022-02-22 19:44     ` Lucas De Marchi
2022-02-23 20:35       ` Vivi, Rodrigo
2021-12-23 12:47 Tvrtko Ursulin
2021-12-09 13:14 Tvrtko Ursulin
2021-10-21 13:07 Joonas Lahtinen
2021-10-08  9:27 Joonas Lahtinen
2021-08-06 10:06 Joonas Lahtinen
2021-08-06 10:10 ` Joonas Lahtinen
2021-06-10  9:40 Joonas Lahtinen
2021-05-28  7:25 Joonas Lahtinen
2021-05-28  7:27 ` Joonas Lahtinen
2021-06-02  0:28   ` Dave Airlie
2021-06-02  4:17     ` Dave Airlie
2021-06-02  4:30       ` Dave Airlie
2021-04-06 13:40 Joonas Lahtinen
2021-01-21 15:07 Joonas Lahtinen
2021-01-14 15:22 Joonas Lahtinen
2020-11-12 16:34 Joonas Lahtinen
2020-09-04 13:39 Joonas Lahtinen

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=20200907130039.GA27766@jlahtine-mobl.ger.corp.intel.com \
    --to=jlahtine@jlahtine-mobl.ger.corp.intel.com \
    --cc=airlied@gmail.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dim-tools@lists.freedesktop.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=rodrigo.vivi@intel.com \
    --cc=sean@poorly.run \
    /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;
as well as URLs for NNTP newsgroup(s).