1. 03 12月, 2019 6 次提交
  2. 01 11月, 2019 2 次提交
  3. 27 10月, 2019 1 次提交
  4. 25 10月, 2019 1 次提交
  5. 24 10月, 2019 2 次提交
  6. 23 10月, 2019 1 次提交
  7. 22 10月, 2019 1 次提交
  8. 17 10月, 2019 1 次提交
  9. 12 10月, 2019 2 次提交
  10. 08 10月, 2019 1 次提交
  11. 04 10月, 2019 8 次提交
  12. 27 9月, 2019 1 次提交
  13. 21 9月, 2019 1 次提交
  14. 13 9月, 2019 2 次提交
  15. 12 9月, 2019 1 次提交
  16. 06 9月, 2019 1 次提交
    • C
      drm/i915: Protect debugfs per_file_stats with RCU lock · a8c15954
      Chris Wilson 提交于
      If we make sure we grab a strong reference to each object as we dump it,
      we can reduce the locks outside of our iterators to an rcu_read_lock.
      
      This should prevent errors like:
      [ 2138.371911] BUG: KASAN: use-after-free in per_file_stats+0x43/0x380 [i915]
      [ 2138.371924] Read of size 8 at addr ffff888223651000 by task cat/8293
      
      [ 2138.371947] CPU: 0 PID: 8293 Comm: cat Not tainted 5.3.0-rc6-CI-Custom_4352+ #1
      [ 2138.371953] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./J4205-ITX, BIOS P1.40 07/14/2017
      [ 2138.371959] Call Trace:
      [ 2138.371974]  dump_stack+0x7c/0xbb
      [ 2138.372099]  ? per_file_stats+0x43/0x380 [i915]
      [ 2138.372108]  print_address_description+0x73/0x3a0
      [ 2138.372231]  ? per_file_stats+0x43/0x380 [i915]
      [ 2138.372352]  ? per_file_stats+0x43/0x380 [i915]
      [ 2138.372362]  __kasan_report+0x14e/0x192
      [ 2138.372489]  ? per_file_stats+0x43/0x380 [i915]
      [ 2138.372502]  kasan_report+0xe/0x20
      [ 2138.372625]  per_file_stats+0x43/0x380 [i915]
      [ 2138.372751]  ? i915_panel_show+0x110/0x110 [i915]
      [ 2138.372761]  idr_for_each+0xa7/0x160
      [ 2138.372773]  ? idr_get_next_ul+0x110/0x110
      [ 2138.372782]  ? do_raw_spin_lock+0x10a/0x1d0
      [ 2138.372923]  print_context_stats+0x264/0x510 [i915]
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Tested-by: NDavid Weinehall <david.weinehall@linux.intel.com>
      Reviewed-by: NMika Kuoppala <mika.kuoppala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190903062133.27360-1-chris@chris-wilson.co.uk
      a8c15954
  17. 03 9月, 2019 1 次提交
    • C
      drm/i915: Replace obj->pin_global with obj->frontbuffer · 5a90606d
      Chris Wilson 提交于
      obj->pin_global was originally used as a means to keep the shrinker off
      the active scanout, but we use the vma->pin_count itself for that and
      the obj->frontbuffer to delay shrinking active framebuffers. The other
      role that obj->pin_global gained was for spotting display objects inside
      GEM and working harder to keep those coherent; for which we can again
      simply inspect obj->frontbuffer directly.
      
      Coming up next, we will want to manipulate the pin_global counter
      outside of the principle locks, so would need to make pin_global atomic.
      However, since obj->frontbuffer is already managed atomically, it makes
      sense to use that the primary key for display objects instead of having
      pin_global.
      
      Ville pointed out the principle difference is that obj->frontbuffer is
      set for as long as an intel_framebuffer is attached to an object, but
      obj->pin_global was only raised for as long as the object was active. In
      practice, this means that we consider the object as being on the scanout
      for longer than is strictly required, causing us to be more proactive in
      flushing -- though it should be true that we would have flushed
      eventually when the back became the front, except that on the flip path
      that flush is async but when hit from another ioctl it will be
      synchronous.
      
      v2: i915_gem_object_is_framebuffer()
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190902040303.14195-5-chris@chris-wilson.co.uk
      5a90606d
  18. 02 9月, 2019 1 次提交
  19. 29 8月, 2019 1 次提交
    • I
      drm/i915: Align power domain names with port names · 8a84bacb
      Imre Deak 提交于
      There is a difference in BSpec's and the driver's designation of DDI
      ports. BSpec uses the following names:
      - before GEN11:
        BSpec/driver:
        	port A/B/C/D etc
      - GEN11:
        BSpec/driver:
      	port A-F
      - GEN12:
        BSpec:
        	port A/B/C for combo PHY ports
      	port TC1-6 for Type C PHY ports
        driver:
      	port A-I.
        The driver's port D name matches BSpec's TC1 port name.
      
      So far power domains were named according to the BSpec designation, to
      make it easier to match the code against the specification. That however
      can be confusing when a power domain needs to be matched to a port on
      GEN12+. To resolve that use the driver's port A-I designation for power
      domain names too and rename the corresponding power wells so that they
      reflect the mapping from the driver's to BSpec's port name.
      
      Cc: Lucas De Marchi <lucas.demarchi@intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190823100711.27833-1-imre.deak@intel.com
      8a84bacb
  20. 24 8月, 2019 5 次提交