1. 07 10月, 2021 3 次提交
  2. 06 10月, 2021 14 次提交
  3. 05 10月, 2021 11 次提交
  4. 03 10月, 2021 1 次提交
  5. 29 9月, 2021 7 次提交
  6. 27 9月, 2021 3 次提交
    • T
      drm/i915: Remove warning from the rps worker · 4b8bcaf8
      Tejas Upadhyay 提交于
      In commit 4e5c8a99 ("drm/i915: Drop i915_request.lock requirement
      for intel_rps_boost()"), we decoupled the rps worker from the pm so
      that we could avoid the synchronization penalty which makes the
      assertion liable to run too early. Which makes warning invalid hence
      removed.
      
      Fixes: 4e5c8a99 ("drm/i915: Drop i915_request.lock requirement for intel_rps_boost()")
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NTejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210914090412.1393498-1-tejaskumarx.surendrakumar.upadhyay@intel.com
      (cherry picked from commit a837a068)
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      4b8bcaf8
    • M
      drm/i915/request: fix early tracepoints · c83ff018
      Matthew Auld 提交于
      Currently we blow up in trace_dma_fence_init, when calling into
      get_driver_name or get_timeline_name, since both the engine and context
      might be NULL(or contain some garbage address) in the case of newly
      allocated slab objects via the request ctor. Note that we also use
      SLAB_TYPESAFE_BY_RCU here, which allows requests to be immediately
      freed, but delay freeing the underlying page by an RCU grace period.
      With this scheme requests can be re-allocated, at the same time as they
      are also being read by some lockless RCU lookup mechanism.
      
      In the ctor case, which is only called for new slab objects(i.e allocate
      new page and call the ctor for each object) it's safe to reset the
      context/engine prior to calling into dma_fence_init, since we can be
      certain that no one is doing an RCU lookup which might depend on peeking
      at the engine/context, like in active_engine(), since the object can't
      yet be externally visible.
      
      In the recycled case(which might also be externally visible) the request
      refcount always transitions from 0->1 after we set the context/engine
      etc, which should ensure it's valid to dereference the engine for
      example, when doing an RCU list-walk, so long as we can also increment
      the refcount first. If the refcount is already zero, then the request is
      considered complete/released.  If it's non-zero, then the request might
      be in the process of being re-allocated, or potentially still in flight,
      however after successfully incrementing the refcount, it's possible to
      carefully inspect the request state, to determine if the request is
      still what we were looking for. Note that all externally visible
      requests returned to the cache must have zero refcount.
      
      One possible fix then is to move dma_fence_init out from the request
      ctor. Originally this was how it was done, but it was moved in:
      
      commit 855e39e6
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Mon Feb 3 09:41:48 2020 +0000
      
          drm/i915: Initialise basic fence before acquiring seqno
      
      where it looks like intel_timeline_get_seqno() relied on some of the
      rq->fence state, but that is no longer the case since:
      
      commit 12ca695d
      Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Date:   Tue Mar 23 16:49:50 2021 +0100
      
          drm/i915: Do not share hwsp across contexts any more, v8.
      
      intel_timeline_get_seqno() could also be cleaned up slightly by dropping
      the request argument.
      
      Moving dma_fence_init back out of the ctor, should ensure we have enough
      of the request initialised in case of trace_dma_fence_init.
      Functionally this should be the same, and is effectively what we were
      already open coding before, except now we also assign the fence->lock
      and fence->ops, but since these are invariant for recycled
      requests(which might be externally visible), and will therefore already
      hold the same value, it shouldn't matter.
      
      An alternative fix, since we don't yet have a fully initialised request
      when in the ctor, is just setting the context/engine as NULL, but this
      does require adding some extra handling in get_driver_name etc.
      
      v2(Daniel):
        - Try to make the commit message less confusing
      
      Fixes: 855e39e6 ("drm/i915: Initialise basic fence before acquiring seqno")
      Signed-off-by: NMatthew Auld <matthew.auld@intel.com>
      Cc: Michael Mason <michael.w.mason@intel.com>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210921134202.3803151-1-matthew.auld@intel.com
      (cherry picked from commit be988eae)
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      c83ff018
    • A
      drm/i915/guc, docs: Fix pdfdocs build error by removing nested grid · da0468a7
      Akira Yokosawa 提交于
      Nested grids in grid-table cells are not specified as proper ReST
      constructs.
      Commit 572f2a5c ("drm/i915/guc: Update firmware to v62.0.0")
      added a couple of kerneldoc tables of the form:
      
        +---+-------+------------------------------------------------------+
        | 1 |  31:0 |  +------------------------------------------------+  |
        +---+-------+  |                                                |  |
        |...|       |  |  Embedded `HXG Message`_                       |  |
        +---+-------+  |                                                |  |
        | n |  31:0 |  +------------------------------------------------+  |
        +---+-------+------------------------------------------------------+
      
      For "make htmldocs", they happen to work as one might expect,
      but they are incompatible with "make latexdocs" and "make pdfdocs",
      and cause the generated gpu.tex file to become incomplete and
      unbuildable by xelatex.
      
      Restore the compatibility by removing those nested grids in the tables.
      
      Size comparison of generated gpu.tex:
      
                        Sphinx 2.4.4  Sphinx 4.2.0
        v5.14:               3238686       3841631
        v5.15-rc1:            376270        432729
        with this fix:       3377846       3998095
      
      Fixes: 572f2a5c ("drm/i915/guc: Update firmware to v62.0.0")
      Cc: John Harrison <John.C.Harrison@Intel.com>
      Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
      Cc: Matthew Brost <matthew.brost@intel.com>
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Cc: Matt Roper <matthew.d.roper@intel.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Signed-off-by: NAkira Yokosawa <akiyks@gmail.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/4a227569-074f-c501-58bb-d0d8f60a8ae9@gmail.com
      (cherry picked from commit 017792a0)
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      da0468a7
  7. 24 9月, 2021 1 次提交
    • P
      drm/amdkfd: fix svm_migrate_fini warning · 197ae177
      Philip Yang 提交于
      Device manager releases device-specific resources when a driver
      disconnects from a device, devm_memunmap_pages and
      devm_release_mem_region calls in svm_migrate_fini are redundant.
      
      It causes below warning trace after patch "drm/amdgpu: Split
      amdgpu_device_fini into early and late", so remove function
      svm_migrate_fini.
      
      BUG: https://gitlab.freedesktop.org/drm/amd/-/issues/1718
      
      WARNING: CPU: 1 PID: 3646 at drivers/base/devres.c:795
      devm_release_action+0x51/0x60
      Call Trace:
          ? memunmap_pages+0x360/0x360
          svm_migrate_fini+0x2d/0x60 [amdgpu]
          kgd2kfd_device_exit+0x23/0xa0 [amdgpu]
          amdgpu_amdkfd_device_fini_sw+0x1d/0x30 [amdgpu]
          amdgpu_device_fini_sw+0x45/0x290 [amdgpu]
          amdgpu_driver_release_kms+0x12/0x30 [amdgpu]
          drm_dev_release+0x20/0x40 [drm]
          release_nodes+0x196/0x1e0
          device_release_driver_internal+0x104/0x1d0
          driver_detach+0x47/0x90
          bus_remove_driver+0x7a/0xd0
          pci_unregister_driver+0x3d/0x90
          amdgpu_exit+0x11/0x20 [amdgpu]
      Signed-off-by: NPhilip Yang <Philip.Yang@amd.com>
      Reviewed-by: NFelix Kuehling <Felix.Kuehling@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      197ae177