1. 04 4月, 2020 1 次提交
  2. 31 3月, 2020 2 次提交
  3. 27 3月, 2020 3 次提交
  4. 18 3月, 2020 1 次提交
  5. 17 3月, 2020 3 次提交
    • L
      drm/i915/perf: introduce global sseu pinning · 11ecbddd
      Lionel Landwerlin 提交于
      On Gen11 powergating half the execution units is a functional
      requirement when using the VME samplers. Not fullfilling this
      requirement can lead to hangs.
      
      This unfortunately plays fairly poorly with the NOA requirements. NOA
      requires a stable power configuration to maintain its configuration.
      
      As a result using OA (and NOA feeding into it) so far has required us
      to use a power configuration that can work for all contexts. The only
      power configuration fullfilling this is powergating half the execution
      units.
      
      This makes performance analysis for 3D workloads somewhat pointless.
      
      Failing to find a solution that would work for everybody, this change
      introduces a new i915-perf stream open parameter that punts the
      decision off to userspace. If this parameter is omitted, the existing
      Gen11 behavior remains (half EU array powergating).
      
      This change takes the initiative to move all perf related sseu
      configuration into i915_perf.c
      
      v2: Make parameter priviliged if different from default
      
      v3: Fix context modifying its sseu config while i915-perf is enabled
      
      v4: Always consider global sseu a privileged operation (Tvrtko)
          Override req_sseu point in intel_sseu_make_rpcs() (Tvrtko)
          Remove unrelated changes (Tvrtko)
      
      v5: Some typos (Tvrtko)
          Process sseu param in read_properties_unlocked() (Tvrtko)
      
      v6: Actually commit the bits from v5...
          Fixup some checkpath warnings
      
      v7: Only compare engine uabi field (Chris)
      Signed-off-by: NLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200317132222.2638719-3-lionel.g.landwerlin@intel.com
      11ecbddd
    • L
    • L
      drm/i915/perf: remove generated code · 9aba9c18
      Lionel Landwerlin 提交于
      A little bit of history :
      
         Back when i915-perf was introduced (4.13), there was no way to
         dynamically add new OA configurations to i915. Only the generated
         configs baked in at build time were allowed.
      
         It quickly became obvious that we would need to allow applications
         to upload their own configurations, for instance to be able to test
         new ones, and so by the next stable version (4.14) we added uAPIs
         to allow uploading new configurations.
      
         When adding that capability, we took the opportunity to remove most
         HW configurations except the TestOa one which is a configuration
         IGT would rely on to verify that the HW is outputting correct
         values. At the time it made sense to have that confiuration in at
         the same time a given HW platform added to the i915-perf driver.
      
      Now that IGT has become the reference point for HW configurations (see
      commit 53f8f541ca ("lib: Add i915_perf library"), previously this was
      located in the GPUTop repository), the need for having those
      configurations in i915-perf is gone.
      
      On the Mesa side, we haven't relied on this test configuration for a
      while. The MDAPI library always required 4.14 feature level and always
      loaded its configuration into i915.
      
      I'm sure nobody will miss this generated stuff in i915 :)
      
      v2: Fix selftests by creating an empty config
      
      v3: Fix unlocking on allocation error (Dan Carpenter)
      
      v4: Fixup checkpatch warnings
      
      v5: Fix incorrect unlock in error path (Umesh)
      Signed-off-by: NLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Reviewed-by: NUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200317132222.2638719-1-lionel.g.landwerlin@intel.com
      9aba9c18
  6. 03 3月, 2020 1 次提交
  7. 28 2月, 2020 2 次提交
  8. 21 2月, 2020 1 次提交
  9. 04 2月, 2020 1 次提交
  10. 28 1月, 2020 1 次提交
  11. 22 1月, 2020 1 次提交
    • P
      drm/i915: Make WARN* drm specific where uncore or stream ptr is available · a9f236d1
      Pankaj Bharadiya 提交于
      drm specific WARN* calls include device information in the
      backtrace, so we know what device the warnings originate from.
      
      Covert all the calls of WARN* with device specific drm_WARN*
      variants in functions where intel_uncore/i915_perf_stream  struct
      pointer is readily available.
      
      The conversion was done automatically with below coccinelle semantic
      patch. checkpatch errors/warnings are fixed manually.
      
      @@
      identifier func, T;
      @@
      func(...) {
      ...
      struct intel_uncore *T = ...;
      <...
      (
      -WARN(
      +drm_WARN(&T->i915->drm,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(&T->i915->drm,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(&T->i915->drm,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(&T->i915->drm,
      ...)
      )
      ...>
      
      }
      
      @@
      identifier func, T;
      @@
      func(struct intel_uncore *T,...) {
      <...
      (
      -WARN(
      +drm_WARN(&T->i915->drm,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(&T->i915->drm,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(&T->i915->drm,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(&T->i915->drm,
      ...)
      )
      ...>
      
      }
      
      @@
      identifier func, T;
      @@
      func(struct i915_perf_stream *T,...) {
      +struct drm_i915_private *i915 = T->perf->i915;
      <+...
      (
      -WARN(
      +drm_WARN(&i915->drm,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(&i915->drm,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(&i915->drm,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(&i915->drm,
      ...)
      )
      ...+>
      
      }
      
      command: ls drivers/gpu/drm/i915/*.c | xargs spatch --sp-file <script> \
      					--linux-spacing --in-place
      Signed-off-by: NPankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200115034455.17658-11-pankaj.laxminarayan.bharadiya@intel.com
      a9f236d1
  12. 09 1月, 2020 1 次提交
  13. 22 12月, 2019 1 次提交
  14. 20 12月, 2019 1 次提交
  15. 14 12月, 2019 1 次提交
  16. 10 12月, 2019 2 次提交
  17. 09 12月, 2019 2 次提交
  18. 04 12月, 2019 1 次提交
  19. 25 11月, 2019 1 次提交
  20. 18 11月, 2019 1 次提交
  21. 16 11月, 2019 1 次提交
  22. 14 11月, 2019 1 次提交
  23. 12 11月, 2019 1 次提交
  24. 11 11月, 2019 1 次提交
  25. 02 11月, 2019 1 次提交
  26. 29 10月, 2019 3 次提交
  27. 24 10月, 2019 1 次提交
  28. 22 10月, 2019 1 次提交
  29. 20 10月, 2019 1 次提交
  30. 15 10月, 2019 1 次提交
    • L
      drm/i915/perf: allow holding preemption on filtered ctx · 9cd20ef7
      Lionel Landwerlin 提交于
      We would like to make use of perf in Vulkan. The Vulkan API is much
      lower level than OpenGL, with applications directly exposed to the
      concept of command buffers (pretty much equivalent to our batch
      buffers). In Vulkan, queries are always limited in scope to a command
      buffer. In OpenGL, the lack of command buffer concept meant that
      queries' duration could span multiple command buffers.
      
      With that restriction gone in Vulkan, we would like to simplify
      measuring performance just by measuring the deltas between the counter
      snapshots written by 2 MI_RECORD_PERF_COUNT commands, rather than the
      more complex scheme we currently have in the GL driver, using 2
      MI_RECORD_PERF_COUNT commands and doing some post processing on the
      stream of OA reports, coming from the global OA buffer, to remove any
      unrelated deltas in between the 2 MI_RECORD_PERF_COUNT.
      
      Disabling preemption only apply to a single context with which want to
      query performance counters for and is considered a privileged
      operation, by default protected by CAP_SYS_ADMIN. It is possible to
      enable it for a normal user by disabling the paranoid stream setting.
      
      v2: Store preemption setting in intel_context (Chris)
      
      v3: Use priorities to avoid preemption rather than the HW mechanism
      
      v4: Just modify the port priority reporting function
      
      v5: Add nopreempt flag on gem context and always flag requests
          appropriately, regarless of OA reconfiguration.
      
      Link: https://gitlab.freedesktop.org/mesa/mesa/merge_requests/932Signed-off-by: NLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20191014201404.22468-4-chris@chris-wilson.co.uk
      9cd20ef7