1. 14 Dec, 2020 2 commits
  2. 10 Dec, 2020 3 commits
  3. 09 Dec, 2020 9 commits
  4. 08 Dec, 2020 1 commit
  5. 07 Dec, 2020 2 commits
  6. 05 Dec, 2020 4 commits
  7. 04 Dec, 2020 5 commits
  8. 03 Dec, 2020 1 commit
  9. 02 Dec, 2020 6 commits
    • Chris Wilson's avatar
      Revert "drm/i915/lmem: Limit block size to 4G" · 7d1a31e1
      Chris Wilson authored
      Mixing I915_ALLOC_CONTIGUOUS and I915_ALLOC_MAX_SEGMENT_SIZE fared
      badly. The two directives conflict, with the contiguous request setting
      the min_order to the full size of the object, and the max-segment-size
      setting the max_order to the limit of the DMA mapper. This results in a
      situation where max_order < min_order, causing our sanity checks to
      fail.
      
      Instead of limiting the buddy block size, in the previous patch we split
      the oversized buddy into multiple scatterlist elements.
      
      Fixes: d2cf0125 ("drm/i915/lmem: Limit block size to 4G")
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
      Cc: Matthew Auld <matthew.auld@intel.com>
      Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201202173444.14903-2-chris@chris-wilson.co.uk
      7d1a31e1
    • Chris Wilson's avatar
      drm/i915/gem: Limit lmem scatterlist elements to UINT_MAX · a2843b3b
      Chris Wilson authored
      Adhere to the i915_sg_max_segment() limit on the lengths of individual
      scatterlist elements, and in doing so split up very large chunks of lmem
      into manageable pieces for the dma-mapping backend.
      Reported-by: default avatarVenkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
      Suggested-by: default avatarMatthew Auld <matthew.auld@intel.com>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
      Cc: Matthew Auld <matthew.auld@intel.com>
      Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201202173444.14903-1-chris@chris-wilson.co.uk
      a2843b3b
    • Chris Wilson's avatar
      drm/i915/selftests: Tidy prng constructor for client blits · 840291a7
      Chris Wilson authored
      Since we only initialise the prng once within the scope of the selftest,
      we can use the default initialiser.
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Matthew Auld <matthew.auld@intel.com>
      Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201202130406.18461-1-chris@chris-wilson.co.uk
      840291a7
    • Tvrtko Ursulin's avatar
      drm/i915/pmu: Deprecate I915_PMU_LAST and optimize state tracking · 348fb0cb
      Tvrtko Ursulin authored
      Adding any kinds of "last" abi markers is usually a mistake which I
      repeated when implementing the PMU because it felt convenient at the time.
      
      This patch marks I915_PMU_LAST as deprecated and stops the internal
      implementation using it for sizing the event status bitmask and array.
      
      New way of sizing the fields is a bit less elegant, but it omits reserving
      slots for tracking events we are not interested in, and as such saves some
      runtime space. Adding sampling events is likely to be a special event and
      the new plumbing needed will be easily detected in testing. Existing
      asserts against the bitfield and array sizes are keeping the code safe.
      
      First event which gets the new treatment in this new scheme are the
      interrupts - which neither needs any tracking in i915 pmu nor needs
      waking up the GPU to read it.
      
      v2:
       * Streamline helper names. (Chris)
      
      v3:
       * Comment which events need tracking. (Chris)
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201201131757.206367-1-tvrtko.ursulin@linux.intel.com
      348fb0cb
    • Chris Wilson's avatar
      drm/i915/gem: Report error for vmap() failure · 37df0edf
      Chris Wilson authored
      Convert the NULL pointer from a failed vmap() to ERR_PTR(-ENOMEM) for
      propagation.
      
      <1> [269.830447] BUG: kernel NULL pointer dereference, address: 0000000000000000
      <1> [269.830455] #PF: supervisor write access in kernel mode
      <1> [269.830457] #PF: error_code(0x0002) - not-present page
      <6> [269.830459] PGD 0 P4D 0
      <4> [269.830465] Oops: 0002 [#1] PREEMPT SMP PTI
      <4> [269.830469] CPU: 3 PID: 5789 Comm: i915_selftest Tainted: G     U            5.10.0-rc6-CI-CI_DRM_9412+ #1
      <4> [269.830472] Hardware name: Intel Corp. Geminilake/GLK RVP2 LP4SD (07), BIOS GELKRVPA.X64.0062.B30.1708222146 08/22/2017
      <4> [269.830636] RIP: 0010:igt_client_fill+0x1b9/0x5f0 [i915]
      <4> [269.830640] Code: e8 0c 32 02 00 48 89 c5 48 3d 00 f0 ff ff 0f 87 e9 02 00 00 48 8b 8b 78 06 00 00 44 89 f0 48 89 ef 35 af be ad de 48 c1 e9 02 <f3> ab 0f b6 83 80 03 00 00 89 c2 c0 ea 03 83 e2 02 75 09 83 c8 20
      <4> [269.830642] RSP: 0018:ffffc900007a79e8 EFLAGS: 00010206
      <4> [269.830645] RAX: 00000000df0bf37b RBX: ffff88811d8af3c0 RCX: 00000000010afc00
      <4> [269.830647] RDX: 0000000000000000 RSI: ffffffff822f2b17 RDI: 0000000000000000
      <4> [269.830648] RBP: 0000000000000000 R08: ffff888111c80930 R09: 00000000fffffffe
      <4> [269.830650] R10: 0000000000000000 R11: 00000000ffbc70e4 R12: ffff88811090f700
      <4> [269.830652] R13: ffff88810df60180 R14: 0000000001a64dd4 R15: 0000000000000000
      <4> [269.830655] FS:  00007f137b07de40(0000) GS:ffff88817b980000(0000) knlGS:0000000000000000
      <4> [269.830657] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      <4> [269.830659] CR2: 0000000000000000 CR3: 0000000115984000 CR4: 0000000000350ee0
      <4> [269.830661] Call Trace:
      <4> [269.830780]  __i915_subtests.cold.7+0x42/0x92 [i915]
      <4> [269.830886]  ? __i915_nop_teardown+0x10/0x10 [i915]
      <4> [269.830989]  ? __i915_live_setup+0x30/0x30 [i915]
      <4> [269.831104]  __run_selftests.part.3+0xf7/0x14c [i915]
      <4> [269.831939]  i915_live_selftests.cold.5+0x1f/0x47 [i915]
      <4> [269.832027]  i915_pci_probe+0x93/0x1d0 [i915]
      <4> [269.832037]  ? _raw_spin_unlock_irqrestore+0x2f/0x50
      <4> [269.832043]  pci_device_probe+0x9e/0x110
      <4> [269.832049]  really_probe+0x1c4/0x430
      <4> [269.832053]  driver_probe_device+0xd9/0x140
      <4> [269.832056]  device_driver_attach+0x4a/0x50
      <4> [269.832059]  __driver_attach+0x83/0x140
      <4> [269.832062]  ? device_driver_attach+0x50/0x50
      <4> [269.832064]  ? device_driver_attach+0x50/0x50
      <4> [269.832067]  bus_for_each_dev+0x75/0xc0
      <4> [269.832070]  bus_add_driver+0x14b/0x1f0
      <4> [269.832073]  driver_register+0x66/0xb0
      <4> [269.832160]  i915_init+0x70/0x87 [i915]
      <4> [269.832164]  ? 0xffffffffa05e3000
      <4> [269.832168]  do_one_initcall+0x56/0x2e0
      <4> [269.832174]  ? kmem_cache_alloc_trace+0x6a4/0x770
      <4> [269.832180]  do_init_module+0x55/0x200
      <4> [269.832184]  load_module+0x22a2/0x2480
      <4> [269.832191]  ? __do_sys_finit_module+0xad/0x110
      <4> [269.832194]  __do_sys_finit_module+0xad/0x110
      <4> [269.832199]  do_syscall_64+0x33/0x80
      <4> [269.832202]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
      <4> [269.832204] RIP: 0033:0x7f137a718839
      <4> [269.832208] Code: 00 f3 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 1f f6 2c 00 f7 d8 64 89 01 48
      <4> [269.832210] RSP: 002b:00007ffc4267d308 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
      <4> [269.832214] RAX: ffffffffffffffda RBX: 000056288b88f0d0 RCX: 00007f137a718839
      <4> [269.832216] RDX: 0000000000000000 RSI: 000056288b895850 RDI: 0000000000000007
      <4> [269.832218] RBP: 000056288b895850 R08: 312d3d7374736574 R09: 000056288b88c020
      <4> [269.832220] R10: 00007ffc4267d450 R11: 0000000000000246 R12: 0000000000000000
      <4> [269.832222] R13: 000056288b8877a0 R14: 0000000000000020 R15: 0000000000000045
      <4> [269.832226] Modules linked in: i915(+) vgem mei_hdcp snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio x86_pkg_temp_thermal coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel cdc_ether usbnet snd_intel_dspcfg mii snd_hda_codec snd_hwdep snd_hda_core r8169 snd_pcm realtek mei_me mei prime_numbers intel_lpss_pci i2c_hid pinctrl_geminilake [last unloaded: i915]
      <4> [269.832264] CR2: 0000000000000000
      
      Fixes: cb2ce93e ("drm/i915/gem: Differentiate oom failures from invalid map types")
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Matthew Auld <matthew.auld@intel.com>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201201215441.31900-1-chris@chris-wilson.co.uk
      37df0edf
    • Swathi Dhanavanthri's avatar
  10. 30 Nov, 2020 5 commits
  11. 28 Nov, 2020 1 commit
  12. 27 Nov, 2020 1 commit