1. 18 12月, 2020 2 次提交
  2. 17 12月, 2020 1 次提交
  3. 16 12月, 2020 3 次提交
  4. 14 12月, 2020 3 次提交
  5. 11 12月, 2020 3 次提交
  6. 10 12月, 2020 6 次提交
  7. 09 12月, 2020 3 次提交
  8. 08 12月, 2020 1 次提交
  9. 07 12月, 2020 2 次提交
  10. 06 12月, 2020 4 次提交
  11. 04 12月, 2020 5 次提交
  12. 03 12月, 2020 4 次提交
  13. 02 12月, 2020 3 次提交
    • T
      drm/i915/pmu: Deprecate I915_PMU_LAST and optimize state tracking · 348fb0cb
      Tvrtko Ursulin 提交于
      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: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201201131757.206367-1-tvrtko.ursulin@linux.intel.com
      348fb0cb
    • C
      drm/i915/gem: Report error for vmap() failure · 37df0edf
      Chris Wilson 提交于
      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: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Matthew Auld <matthew.auld@intel.com>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Reviewed-by: NMatthew Auld <matthew.auld@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201201215441.31900-1-chris@chris-wilson.co.uk
      37df0edf
    • S