[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915: Remove obj->mm.lock! (rev14)

2021-01-28 Thread Patchwork
== Series Details == Series: drm/i915: Remove obj->mm.lock! (rev14) URL : https://patchwork.freedesktop.org/series/82337/ State : warning == Summary == $ make htmldocs 2>&1 > /dev/null | grep i915 ./drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:102: warning: Function parameter or member 'ww'

Re: [Intel-gfx] [PATCH] drm/i915: Disable runtime power management during shutdown

2021-01-28 Thread Imre Deak
On Wed, Jan 27, 2021 at 08:19:09PM +0200, Imre Deak wrote: > At least on some TGL platforms PUNIT wants to access some display HW > registers, but it doesn't handle display power managment (disabling DC > states as required) and so this register access will lead to a hang. To > prevent this

[Intel-gfx] [PATCH 03/18] drm/i915/display13: Enhanced pipe underrun reporting

2021-01-28 Thread Matt Roper
Display13 brings enhanced underrun recovery: the hardware can somewhat mitigate underruns by using an interpolated replacement pixel (soft underrun) or the previous pixel (hard underrun). Furthermore, underruns can now be caused downstream by the port, even if the pipe itself is operating

[Intel-gfx] [PATCH 15/18] drm/i915/display13: Get slice height before computing rc params

2021-01-28 Thread Matt Roper
From: Vandita Kulkarni We need slice height to calculate few RC parameters hence assign slice height first. Cc: Manasi Navare Signed-off-by: Vandita Kulkarni Signed-off-by: Matt Roper --- drivers/gpu/drm/i915/display/intel_dp.c | 8 1 file changed, 4 insertions(+), 4 deletions(-)

[Intel-gfx] [PATCH 01/18] drm/i915/display13: add Display13 characteristics

2021-01-28 Thread Matt Roper
Let's start preparing for upcoming platforms that will use a Display13 design. Signed-off-by: Matt Roper --- drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_pci.c | 11 +++ drivers/gpu/drm/i915/intel_device_info.h | 2 ++ 3 files changed, 14

[Intel-gfx] [PATCH 18/18] drm/i915/display13: Enabling dithering after the CC1 pipe

2021-01-28 Thread Matt Roper
From: Nischal Varide If the panel is 12bpc then Dithering is not enabled in the Legacy dithering block , instead its Enabled after the C1 CC1 pipe post color space conversion.For a 6bpc pannel Dithering is enabled in Legacy block. Cc: Uma Shankar Signed-off-by: Nischal Varide Signed-off-by:

[Intel-gfx] [PATCH 08/18] drm/i915/display13: Handle LPSP for Display 13

2021-01-28 Thread Matt Roper
From: Uma Shankar Enable LPSP for Display13 and get the proper power well enable check in place. For Display13 it is PW2 which need to check for LPSP. Cc: Anshuman Gupta Cc: Animesh Manna Cc: Matt Roper Suggested-by: Matt Roper Signed-off-by: Uma Shankar Signed-off-by: Anshuman Gupta

[Intel-gfx] [PATCH 07/18] drm/i915/display13: Add Display13 power wells

2021-01-28 Thread Matt Roper
Aside from the hardware-managed PG0, Display13 has power wells 1-2 and A-D. These power wells should be enabled/disabled according to the following dependency tree (enable top to bottom, disable bottom to top): PG0 | --PG1-- / \

[Intel-gfx] [PATCH 13/18] drm/i915/display/dsc: Refactor intel_dp_dsc_compute_bpp

2021-01-28 Thread Matt Roper
From: Vandita Kulkarni Move the platform specific max bpc calculation into intel_dp_dsc_compute_bpp function Cc: Manasi Navare Signed-off-by: Vandita Kulkarni Signed-off-by: Matt Roper --- drivers/gpu/drm/i915/display/intel_dp.c | 20 ++-- 1 file changed, 10 insertions(+),

[Intel-gfx] [PATCH 14/18] drm/i915/display13: Support DP1.4 compression BPPs

2021-01-28 Thread Matt Roper
From: Vandita Kulkarni Support compression BPPs from bpc to uncompressed BPP -1. So far we have 8,10,12 as valid compressed BPPS now the support is extended. Cc: Manasi Navare Signed-off-by: Vandita Kulkarni Signed-off-by: Matt Roper --- drivers/gpu/drm/i915/display/intel_dp.c | 32

[Intel-gfx] [PATCH 11/18] drm/i915/display13: Required bandwidth increases when VT-d is active

2021-01-28 Thread Matt Roper
If VT-d is active, the memory bandwidth usage of the display is 5% higher. Take this into account when determining whether we can support a display configuration. Bspec: 64631 Cc: Matt Atwood Signed-off-by: Matt Roper --- drivers/gpu/drm/i915/display/intel_bw.c | 3 +++ 1 file changed, 3

[Intel-gfx] [PATCH 05/18] drm/i915/display13: Support 128k plane stride

2021-01-28 Thread Matt Roper
From: Juha-Pekka Heikkilä Display13 supports plane strides up to 128KB. Cc: Vandita Kulkarni Signed-off-by: Juha-Pekka Heikkilä Signed-off-by: Matt Roper --- drivers/gpu/drm/i915/display/intel_display.c | 6 - drivers/gpu/drm/i915/display/intel_sprite.c | 24 ++--

[Intel-gfx] [PATCH 10/18] drm/i915/display13: Increase maximum watermark lines to 255

2021-01-28 Thread Matt Roper
Display13 continues to use the same "skylake-style" watermark programming as other recent platforms. The only change to the watermark calculations compared to Display12 is that Display13 now allows a maximum of 255 lines vs the old limit of 31. Due to the larger possible lines value, the

[Intel-gfx] [PATCH 12/18] drm/i915/display13: Add Wa_14011503030:d13

2021-01-28 Thread Matt Roper
Cc: Aditya Swarup Signed-off-by: Matt Roper --- drivers/gpu/drm/i915/display/intel_display_power.c | 4 drivers/gpu/drm/i915/i915_reg.h| 2 ++ 2 files changed, 6 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c

[Intel-gfx] [PATCH 09/18] drm/i915/display13: Handle new location of outputs D and E

2021-01-28 Thread Matt Roper
The DDI naming template for Display12 went A-C, TC1-TC6. With Display13, that naming scheme for DDI's has now changed to A-E, TC1-TC4. The Display13 design keeps the register offsets and bitfields relating to the TC outputs in the same location they were on Display12. The new "D" and "E"

Re: [Intel-gfx] [PATCH] drm/i915/dp: Prevent setting the LTTPR LT mode if no LTTPRs are detected

2021-01-28 Thread Almahallawy, Khaled
On Thu, 2021-01-21 at 15:15 +0200, Imre Deak wrote: > On Tue, Jan 19, 2021 at 08:47:25AM +0200, Almahallawy, Khaled wrote: > > On Mon, 2021-01-18 at 20:31 +0200, Imre Deak wrote: > > > Atm, the driver programs explicitly the default transparent link > > > training mode (0x55) to

[Intel-gfx] [PATCH v3 2/2] drm/i915/hdcp: read RxInfo once when reading Send_Pairing_Info

2021-01-28 Thread Juston Li
Previously when reading Send_Pairing_Info, RxInfo by itself was read once to retrieve the DEVICE_COUNT and then a second time when reading the RepeaterAuth_Send_ReceiverID_List which contains RxInfo. On a couple HDCP 2.2 docks, this second read attempt on RxInfo fails due to no Ack response. This

[Intel-gfx] [PATCH v3 1/2] drm/i915/hdcp: update cp_irq_count_cached in intel_dp_hdcp2_read_msg()

2021-01-28 Thread Juston Li
Update cp_irq_count_cached when we handle reading the messages rather than writing a message to make sure the value is up to date and not stale from a previously handled CP_IRQ. AKE flow doesn't always respond to a read with a write msg. E.g. currently AKE_Send_Pairing_Info will "timeout"

Re: [Intel-gfx] [PATCH 20/41] drm/i915: Replace priolist rbtree with a skiplist

2021-01-28 Thread Tvrtko Ursulin
On 28/01/2021 16:26, Chris Wilson wrote: Quoting Tvrtko Ursulin (2021-01-28 15:56:19) On 25/01/2021 14:01, Chris Wilson wrote: diff --git a/drivers/gpu/drm/i915/i915_priolist_types.h b/drivers/gpu/drm/i915/i915_priolist_types.h index bc2fa84f98a8..1200c3df6a4a 100644 ---

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [CI,1/3] drm/i915: Nuke not needed members of dram_info

2021-01-28 Thread Patchwork
== Series Details == Series: series starting with [CI,1/3] drm/i915: Nuke not needed members of dram_info URL : https://patchwork.freedesktop.org/series/86404/ State : success == Summary == CI Bug Log - changes from CI_DRM_9695 -> Patchwork_19531

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/5] drm/i915: Skip vswing programming for TBT (rev2)

2021-01-28 Thread Patchwork
== Series Details == Series: series starting with [1/5] drm/i915: Skip vswing programming for TBT (rev2) URL : https://patchwork.freedesktop.org/series/86402/ State : success == Summary == CI Bug Log - changes from CI_DRM_9695 -> Patchwork_19532

[Intel-gfx] ✗ Fi.CI.BUILD: failure for Preliminary Display13 support

2021-01-28 Thread Patchwork
== Series Details == Series: Preliminary Display13 support URL : https://patchwork.freedesktop.org/series/86409/ State : failure == Summary == Applying: drm/i915/display13: add Display13 characteristics Applying: drm/i915/display13: Handle proper AUX interrupt bits Applying:

Re: [Intel-gfx] [PATCH 20/41] drm/i915: Replace priolist rbtree with a skiplist

2021-01-28 Thread Chris Wilson
Quoting Tvrtko Ursulin (2021-01-28 16:42:44) > > On 28/01/2021 16:26, Chris Wilson wrote: > > Quoting Tvrtko Ursulin (2021-01-28 15:56:19) > >> On 25/01/2021 14:01, Chris Wilson wrote: > >>>struct i915_priolist { > >>>struct list_head requests; > >> > >> What would be on this list?

Re: [Intel-gfx] [PATCH 20/41] drm/i915: Replace priolist rbtree with a skiplist

2021-01-28 Thread Chris Wilson
Quoting Tvrtko Ursulin (2021-01-28 16:42:44) > > On 28/01/2021 16:26, Chris Wilson wrote: > > Quoting Tvrtko Ursulin (2021-01-28 15:56:19) > >> On 25/01/2021 14:01, Chris Wilson wrote: > >>> diff --git a/drivers/gpu/drm/i915/i915_priolist_types.h > >>>

Re: [Intel-gfx] [PATCH 20/41] drm/i915: Replace priolist rbtree with a skiplist

2021-01-28 Thread Matthew Brost
On Mon, Jan 25, 2021 at 02:01:15PM +, Chris Wilson wrote: > Replace the priolist rbtree with a skiplist. The crucial difference is > that walking and removing the first element of a skiplist is O(1), but > O(lgN) for an rbtree, as we need to rebalance on remove. This is a > hindrance for

Re: [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/2] drm/dp/mst: Export drm_dp_get_vc_payload_bw()

2021-01-28 Thread Imre Deak
On Tue, Jan 26, 2021 at 01:28:09AM +, Patchwork wrote: > == Series Details == > > Series: series starting with [1/2] drm/dp/mst: Export > drm_dp_get_vc_payload_bw() > URL : https://patchwork.freedesktop.org/series/86267/ > State : success Patchset pushed to -din with the docbook fix,

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v3,1/2] drm/i915/hdcp: update cp_irq_count_cached in intel_dp_hdcp2_read_msg()

2021-01-28 Thread Patchwork
== Series Details == Series: series starting with [v3,1/2] drm/i915/hdcp: update cp_irq_count_cached in intel_dp_hdcp2_read_msg() URL : https://patchwork.freedesktop.org/series/86424/ State : success == Summary == CI Bug Log - changes from CI_DRM_9696 -> Patchwork_19534

[Intel-gfx] ✓ Fi.CI.IGT: success for Final set of patches for ADLS enabling (rev2)

2021-01-28 Thread Patchwork
== Series Details == Series: Final set of patches for ADLS enabling (rev2) URL : https://patchwork.freedesktop.org/series/86322/ State : success == Summary == CI Bug Log - changes from CI_DRM_9690_full -> Patchwork_19525_full Summary

Re: [Intel-gfx] [PATCH] drm/i915/gt: Prefer local execution_mask for determing viable engines

2021-01-28 Thread Tvrtko Ursulin
On 27/01/2021 09:06, Chris Wilson wrote: In gen8_emit_flush_xcs, we have to look at all the engines the request may execute on, and emit an aux-invalidate for each. Currently, we handle the virtual engine by looking at its engine mask, but that is copied and refined as the

[Intel-gfx] ✗ Fi.CI.BUILD: failure for disable the QSES check for HDCP2.2 over MST

2021-01-28 Thread Patchwork
== Series Details == Series: disable the QSES check for HDCP2.2 over MST URL : https://patchwork.freedesktop.org/series/86375/ State : failure == Summary == Applying: drm/i915/hdcp: disable the QSES check for HDCP2.2 over MST Using index info to reconstruct a base tree... M

Re: [Intel-gfx] [PATCH 20/41] drm/i915: Replace priolist rbtree with a skiplist

2021-01-28 Thread Chris Wilson
Quoting Tvrtko Ursulin (2021-01-27 15:58:12) > Okay makes sense. The change in key drives the requirement so just > please mention in the commit message and I'll tackle the skip list > mechanics in the meantime. In the following patches, we introduce a new sort key to the scheduler, a virtual

Re: [Intel-gfx] [PATCH 22/41] drm/i915: Fair low-latency scheduling

2021-01-28 Thread Tvrtko Ursulin
On 25/01/2021 14:01, Chris Wilson wrote: The first "scheduler" was a topographical sorting of requests into priority order. The execution order was deterministic, the earliest submitted, highest priority request would be executed first. Priority inheritance ensured that inversions were kept at

Re: [Intel-gfx] [PATCH v2 02/11] drm/i915: Limit plane stride to below TILEOFF.x limit

2021-01-28 Thread Karthik B S
On 1/11/2021 10:07 PM, Ville Syrjala wrote: From: Ville Syrjälä Limit pre-skl plane stride to below 4k or 8k pixels (depending on the platform). We do this in order guarantee that TILEOFF/OFFSET.x does not get too big. Currently this is not a problem as we align SURF to 4k, and so

Re: [Intel-gfx] [RFC PATCH 0/9] cgroup support for GPU devices

2021-01-28 Thread Xingyou Chen
On 2021/1/27 上午5:46, Brian Welty wrote: > We'd like to revisit the proposal of a GPU cgroup controller for managing > GPU devices but with just a basic set of controls. This series is based on > the prior patch series from Kenny Ho [1]. We take Kenny's base patches > which implement the basic

Re: [Intel-gfx] [PATCH 1/2] drm/i915/gvt: Parse default state to update reg whitelist

2021-01-28 Thread Zhenyu Wang
On 2021.01.29 00:49:32 +, Chris Wilson wrote: > Rather than break existing context objects by incorrectly forcing them > to rogue cache coherency and trying to assert a new mapping, read the > reg whitelist from the default context image. > So this work actually lived within internal for some

Re: [Intel-gfx] [RFC PATCH 0/9] cgroup support for GPU devices

2021-01-28 Thread Xingyou Chen
On 2021/1/27 上午5:46, Brian Welty wrote: > We'd like to revisit the proposal of a GPU cgroup controller for managing > GPU devices but with just a basic set of controls. This series is based on > the prior patch series from Kenny Ho [1]. We take Kenny's base patches > which implement the basic

[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [v5,1/8] drm/i915: make local-memory probing a GT operation (rev2)

2021-01-28 Thread Patchwork
== Series Details == Series: series starting with [v5,1/8] drm/i915: make local-memory probing a GT operation (rev2) URL : https://patchwork.freedesktop.org/series/86355/ State : success == Summary == CI Bug Log - changes from CI_DRM_9693_full -> Patchwork_19527_full

[Intel-gfx] [PATCH 2/2] drm/i915/gvt: Purge dev_priv->gt

2021-01-28 Thread Chris Wilson
Use the right intel_gt stored as a backpointer in intel_vgpu. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gvt/execlist.c | 8 +++- drivers/gpu/drm/i915/gvt/scheduler.c | 3 +-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/i915/gvt/execlist.c

[Intel-gfx] [PATCH 1/2] drm/i915/gvt: Parse default state to update reg whitelist

2021-01-28 Thread Chris Wilson
Rather than break existing context objects by incorrectly forcing them to rogue cache coherency and trying to assert a new mapping, read the reg whitelist from the default context image. And use gvt->gt, never _priv->gt. Fixes: 493f30cd086e ("drm/i915/gvt: parse init context to update cmd

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915/gvt: Parse default state to update reg whitelist

2021-01-28 Thread Patchwork
== Series Details == Series: series starting with [1/2] drm/i915/gvt: Parse default state to update reg whitelist URL : https://patchwork.freedesktop.org/series/86425/ State : success == Summary == CI Bug Log - changes from CI_DRM_9696 -> Patchwork_19535

[Intel-gfx] ✗ Fi.CI.IGT: failure for drm: Move struct drm_device.pdev to legacy (rev6)

2021-01-28 Thread Patchwork
== Series Details == Series: drm: Move struct drm_device.pdev to legacy (rev6) URL : https://patchwork.freedesktop.org/series/84205/ State : failure == Summary == CI Bug Log - changes from CI_DRM_9693_full -> Patchwork_19528_full Summary

[Intel-gfx] [PATCH v7 23/63] drm/i915: Add object locking to vm_fault_cpu

2021-01-28 Thread Maarten Lankhorst
Take a simple lock so we hold ww around (un)pin_pages as needed. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gem/i915_gem_mman.c | 4 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c

[Intel-gfx] [PATCH v7 51/63] drm/i915/selftests: Prepare context selftest for obj->mm.lock removal

2021-01-28 Thread Maarten Lankhorst
Only needs to convert a single call to the unlocked version. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gt/selftest_context.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/selftest_context.c

[Intel-gfx] [PATCH v7 19/63] drm/i915: Make ring submission compatible with obj->mm.lock removal, v2.

2021-01-28 Thread Maarten Lankhorst
We map the initial context during first pin. This allows us to remove pin_map from state allocation, which saves us a few retry loops. We won't need this until first pin anyway. intel_ring_submission_setup() is also reworked slightly to do all pinning in a single ww loop. Changes since v1: -

[Intel-gfx] [PATCH v7 46/63] drm/i915/selftests: Prepare execbuf tests for obj->mm.lock removal.

2021-01-28 Thread Maarten Lankhorst
Also quite simple, a single call needs to use the unlocked version. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gem/selftests/i915_gem_execbuffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git

[Intel-gfx] [PATCH v7 20/63] drm/i915: Handle ww locking in init_status_page

2021-01-28 Thread Maarten Lankhorst
Try to pin to ggtt first, and use a full ww loop to handle eviction correctly. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gt/intel_engine_cs.c | 37 +++ 1 file changed, 24 insertions(+), 13 deletions(-) diff --git

[Intel-gfx] [PATCH v7 02/63] drm/i915: Pin timeline map after first timeline pin, v3.

2021-01-28 Thread Maarten Lankhorst
We're starting to require the reservation lock for pinning, so wait until we have that. Update the selftests to handle this correctly, and ensure pin is called in live_hwsp_rollover_user() and mock_hwsp_freelist(). Changes since v1: - Fix NULL + XX arithmatic, use casts. (kbuild) Changes since

[Intel-gfx] [PATCH v7 18/63] drm/i915: Populate logical context during first pin.

2021-01-28 Thread Maarten Lankhorst
This allows us to remove pin_map from state allocation, which saves us a few retry loops. We won't need this until first pin, anyway. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- .../drm/i915/gt/intel_execlists_submission.c | 26 --- 1 file changed, 23

[Intel-gfx] [PATCH v7 55/63] drm/i915/selftests: Prepare ring submission for obj->mm.lock removal

2021-01-28 Thread Maarten Lankhorst
Use unlocked versions when the ww lock is not held. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gt/selftest_ring_submission.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/selftest_ring_submission.c

[Intel-gfx] [PATCH v7 50/63] drm/i915/selftests: Prepare igt_gem_utils for obj->mm.lock removal

2021-01-28 Thread Maarten Lankhorst
igt_emit_store_dw needs to use the unlocked version, as it's not holding a lock. This fixes igt_gpu_fill_dw() which is used by some other selftests. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c | 2 +- 1 file changed, 1

[Intel-gfx] [PATCH v7 41/63] drm/i915/selftests: Prepare huge_pages testcases for obj->mm.lock removal.

2021-01-28 Thread Maarten Lankhorst
Straightforward conversion, just convert a bunch of calls to unlocked versions. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- .../gpu/drm/i915/gem/selftests/huge_pages.c | 28 ++- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git

[Intel-gfx] [PATCH v7 17/63] drm/i915: Flatten obj->mm.lock

2021-01-28 Thread Maarten Lankhorst
With userptr fixed, there is no need for all separate lockdep classes now, and we can remove all lockdep tricks used. A trylock in the shrinker is all we need now to flatten the locking hierarchy. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström ---

[Intel-gfx] [PATCH v7 57/63] drm/i915/selftests: Prepare i915_request tests for obj->mm.lock removal

2021-01-28 Thread Maarten Lankhorst
Straightforward conversion by using unlocked versions. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/selftests/i915_request.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/selftests/i915_request.c

[Intel-gfx] [PATCH v7 25/63] drm/i915: Take reservation lock around i915_vma_pin.

2021-01-28 Thread Maarten Lankhorst
We previously complained when ww == NULL. This function is now only used in selftests to pin an object, and ww locking is now fixed. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- .../i915/gem/selftests/i915_gem_coherency.c | 14 +

[Intel-gfx] [PATCH v7 43/63] drm/i915/selftests: Prepare coherency tests for obj->mm.lock removal.

2021-01-28 Thread Maarten Lankhorst
Straightforward conversion, just convert a bunch of calls to unlocked versions. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git

[Intel-gfx] [PATCH v7 11/63] drm/i915: Disable userptr pread/pwrite support.

2021-01-28 Thread Maarten Lankhorst
Userptr should not need the kernel for a userspace memcpy, userspace needs to call memcpy directly. Specifically, disable i915_gem_pwrite_ioctl() and i915_gem_pread_ioctl(). Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström -- Still needs an ack from relevant userspace that it

[Intel-gfx] [PATCH v7 22/63] drm/i915: Pass ww ctx to intel_pin_to_display_plane

2021-01-28 Thread Maarten Lankhorst
Instead of multiple lockings, lock the object once, and perform the ww dance around attach_phys and pin_pages. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/display/intel_display.c | 69 --- drivers/gpu/drm/i915/display/intel_display.h

[Intel-gfx] [PATCH v7 40/63] drm/i915: Use a single page table lock for each gtt.

2021-01-28 Thread Maarten Lankhorst
We may create page table objects on the fly, but we may need to wait with the ww lock held. Instead of waiting on a freed obj lock, ensure we have the same lock for each object to keep -EDEADLK working. This ensures that i915_vma_pin_ww can lock the page tables when required. Signed-off-by:

[Intel-gfx] [PATCH v7 36/63] drm/i915: Lock ww in ucode objects correctly

2021-01-28 Thread Maarten Lankhorst
In the ucode functions, the calls are done before userspace runs, when debugging using debugfs, or when creating semi-permanent mappings; we can safely use the unlocked versions that does the ww dance for us. Because there is no pin_pages_unlocked yet, add it as convenience function. This

[Intel-gfx] [PATCH v7 28/63] drm/i915: Take obj lock around set_domain ioctl

2021-01-28 Thread Maarten Lankhorst
We need to lock the object to move it to the correct domain, add the missing lock. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gem/i915_gem_domain.c | 18 ++ 1 file changed, 10 insertions(+), 8 deletions(-) diff --git

[Intel-gfx] [PATCH v7 47/63] drm/i915/selftests: Prepare mman testcases for obj->mm.lock removal.

2021-01-28 Thread Maarten Lankhorst
Ensure we hold the lock around put_pages, and use the unlocked wrappers for pinning pages and mappings. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff

[Intel-gfx] [PATCH v7 44/63] drm/i915/selftests: Prepare context tests for obj->mm.lock removal.

2021-01-28 Thread Maarten Lankhorst
Straightforward conversion, just convert a bunch of calls to unlocked versions. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git

[Intel-gfx] [PATCH v7 12/63] drm/i915: No longer allow exporting userptr through dma-buf

2021-01-28 Thread Maarten Lankhorst
It doesn't make sense to export a memory address, we will prevent allowing access this way to different address spaces when we rework userptr handling, so best to explicitly disable it. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström Cc: Jason Ekstrand -- Still needs an ack

[Intel-gfx] [PATCH v7 52/63] drm/i915/selftests: Prepare hangcheck for obj->mm.lock removal

2021-01-28 Thread Maarten Lankhorst
Convert a few calls to use the unlocked versions. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c

[Intel-gfx] [PATCH v7 13/63] drm/i915: Reject more ioctls for userptr

2021-01-28 Thread Maarten Lankhorst
There are a couple of ioctl's related to tiling and cache placement, that make no sense for userptr, reject those: - i915_gem_set_tiling_ioctl() Tiling should always be linear for userptr. Changing placement will fail with -ENXIO. - i915_gem_set_caching_ioctl() Userptr memory should

[Intel-gfx] [PATCH v7 38/63] drm/i915: Add missing ww lock in intel_dsb_prepare.

2021-01-28 Thread Maarten Lankhorst
Because of the long lifetime of the mapping, we cannot wrap this in a simple limited ww lock. Just use the unlocked version of pin_map, because we'll likely release the mapping a lot later, in a different thread. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström ---

[Intel-gfx] [PATCH v7 29/63] drm/i915: Defer pin calls in buffer pool until first use by caller.

2021-01-28 Thread Maarten Lankhorst
We need to take the obj lock to pin pages, so wait until the callers have done so, before making the object unshrinkable. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 2 + .../gpu/drm/i915/gem/i915_gem_object_blt.c| 6

[Intel-gfx] [PATCH v7 33/63] drm/i915: Add igt_spinner_pin() to allow for ww locking around spinner.

2021-01-28 Thread Maarten Lankhorst
By default, we assume that it's called inside igt_create_request to keep existing selftests working, but allow for manual pinning when passing a ww context. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/selftests/igt_spinner.c | 136 ---

[Intel-gfx] [PATCH v7 42/63] drm/i915/selftests: Prepare client blit for obj->mm.lock removal.

2021-01-28 Thread Maarten Lankhorst
Straightforward conversion, just convert a bunch of calls to unlocked versions. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git

[Intel-gfx] [PATCH v7 37/63] drm/i915: Add ww locking to dma-buf ops.

2021-01-28 Thread Maarten Lankhorst
vmap is using pin_pages, but needs to use ww locking, add pin_pages_unlocked to correctly lock the mapping. Also add ww locking to begin/end cpu access. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 60 -- 1

[Intel-gfx] [PATCH v7 45/63] drm/i915/selftests: Prepare dma-buf tests for obj->mm.lock removal.

2021-01-28 Thread Maarten Lankhorst
Use pin_pages_unlocked() where we don't have a lock. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gem/selftests/i915_gem_dmabuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_dmabuf.c

[Intel-gfx] [PATCH v7 08/63] drm/i915: Rework struct phys attachment handling

2021-01-28 Thread Maarten Lankhorst
Instead of creating a separate object type, we make changes to the shmem type, to clear struct page backing. This will allow us to ensure we never run into a race when we exchange obj->ops with other function pointers. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström ---

[Intel-gfx] [PATCH v7 05/63] drm/i915: Ensure we hold the object mutex in pin correctly.

2021-01-28 Thread Maarten Lankhorst
Currently we have a lot of places where we hold the gem object lock, but haven't yet been converted to the ww dance. Complain loudly about those places. i915_vma_pin shouldn't have the obj lock held, so we can do a ww dance, while i915_vma_pin_ww should. Signed-off-by: Maarten Lankhorst

[Intel-gfx] [PATCH v7 35/63] drm/i915: Increase ww locking for perf.

2021-01-28 Thread Maarten Lankhorst
We need to lock a few more objects, some temporarily, add ww lock where needed. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/i915_perf.c | 56 1 file changed, 43 insertions(+), 13 deletions(-) diff --git

[Intel-gfx] [PATCH v7 48/63] drm/i915/selftests: Prepare object tests for obj->mm.lock removal.

2021-01-28 Thread Maarten Lankhorst
Convert a single pin_pages call to use the unlocked version. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gem/selftests/i915_gem_object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git

[Intel-gfx] [PATCH v7 15/63] drm/i915: Make compilation of userptr code depend on MMU_NOTIFIER.

2021-01-28 Thread Maarten Lankhorst
Now that unsynchronized mappings are removed, the only time userptr works is when the MMU notifier is enabled. Put all of the userptr code behind a mmu notifier ifdef. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 2 +

[Intel-gfx] [PATCH v7 30/63] drm/i915: Fix pread/pwrite to work with new locking rules.

2021-01-28 Thread Maarten Lankhorst
We are removing obj->mm.lock, and need to take the reservation lock before we can pin pages. Move the pinning pages into the helper, and merge gtt pwrite/pread preparation and cleanup paths. The fence lock is also removed; it will conflict with fence annotations, because of memory allocations

[Intel-gfx] [PATCH v7 62/63] drm/i915: Keep userpointer bindings if seqcount is unchanged, v2.

2021-01-28 Thread Maarten Lankhorst
Instead of force unbinding and rebinding every time, we try to check if our notifier seqcount is still correct when pages are bound. This way we only rebind userptr when we need to, and prevent stalls. Changes since v1: - Missing mutex_unlock, reported by kbuild. Reported-by: kernel test robot

[Intel-gfx] [PATCH v7 56/63] drm/i915/selftests: Prepare timeline tests for obj->mm.lock removal

2021-01-28 Thread Maarten Lankhorst
We can no longer call intel_timeline_pin with a null argument, so add a ww loop that locks the backing object. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gt/selftest_timeline.c | 30 + 1 file changed, 25 insertions(+), 5

[Intel-gfx] [PATCH v7 32/63] drm/i915: Prepare for obj->mm.lock removal, v2.

2021-01-28 Thread Maarten Lankhorst
From: Thomas Hellström Stolen objects need to lock, and we may call put_pages when refcount drops to 0, ensure all calls are handled correctly. Changes since v1: - Rebase on top of upstream changes. Idea-from: Thomas Hellström Signed-off-by: Maarten Lankhorst Signed-off-by: Thomas Hellström

[Intel-gfx] [PATCH v7 24/63] drm/i915: Move pinning to inside engine_wa_list_verify()

2021-01-28 Thread Maarten Lankhorst
This should be done as part of the ww loop, in order to remove a i915_vma_pin that needs ww held. Now only i915_ggtt_pin() callers remaining. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gt/intel_gtt.c| 14 +-

[Intel-gfx] [PATCH v7 49/63] drm/i915/selftests: Prepare object blit tests for obj->mm.lock removal.

2021-01-28 Thread Maarten Lankhorst
Use some unlocked versions where we're not holding the ww lock. Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellström --- drivers/gpu/drm/i915/gem/selftests/i915_gem_object_blt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git

[Intel-gfx] [PATCH v7 60/63] drm/i915/selftests: Prepare gtt tests for obj->mm.lock removal

2021-01-28 Thread Maarten Lankhorst
We need to lock the global gtt dma_resv, use i915_vm_lock_objects to handle this correctly. Add ww handling for this where required. Add the object lock around unpin/put pages, and use the unlocked versions of pin_pages and pin_map where required. Signed-off-by: Maarten Lankhorst Reviewed-by:

Re: [Intel-gfx] [PATCH 20/41] drm/i915: Replace priolist rbtree with a skiplist

2021-01-28 Thread Tvrtko Ursulin
On 25/01/2021 14:01, Chris Wilson wrote: Replace the priolist rbtree with a skiplist. The crucial difference is that walking and removing the first element of a skiplist is O(1), but O(lgN) for an rbtree, as we need to rebalance on remove. This is a hindrance for submission latency as it

Re: [Intel-gfx] [PATCH v7 13/63] drm/i915: Reject more ioctls for userptr

2021-01-28 Thread Jason Ekstrand
On Thu, Jan 28, 2021 at 10:26 AM Maarten Lankhorst wrote: > > There are a couple of ioctl's related to tiling and cache placement, > that make no sense for userptr, reject those: > - i915_gem_set_tiling_ioctl() > Tiling should always be linear for userptr. Changing placement will > fail

Re: [Intel-gfx] [PATCH v2 3/4] drm/i915: Fail driver probe when unable to load DRAM information

2021-01-28 Thread Souza, Jose
On Wed, 2021-01-27 at 20:21 -0800, Lucas De Marchi wrote: > On Wed, Jan 27, 2021 at 08:54:01AM -0800, Jose Souza wrote: > > DRAM information is required to properly program display. > > Before "drm/i915/gen11+: Only load DRAM information from pcode" we > > were failing driver load if unable to

Re: [Intel-gfx] [PATCH v7 14/63] drm/i915: Reject UNSYNCHRONIZED for userptr, v2.

2021-01-28 Thread Jason Ekstrand
We've never used this bit in mesa. Acked-by: Jason Ekstrand On Thu, Jan 28, 2021 at 10:26 AM Maarten Lankhorst wrote: > > We should not allow this any more, as it will break with the new userptr > implementation, it could still be made to work, but there's no point in > doing so. > >

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Remove obj->mm.lock! (rev14)

2021-01-28 Thread Patchwork
== Series Details == Series: drm/i915: Remove obj->mm.lock! (rev14) URL : https://patchwork.freedesktop.org/series/82337/ State : warning == Summary == $ dim sparse --fast origin/drm-tip Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately.

[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/5] drm/i915: Skip vswing programming for TBT

2021-01-28 Thread Patchwork
== Series Details == Series: series starting with [1/5] drm/i915: Skip vswing programming for TBT URL : https://patchwork.freedesktop.org/series/86402/ State : failure == Summary == CI Bug Log - changes from CI_DRM_9694 -> Patchwork_19529

Re: [Intel-gfx] [PATCH v7 01/63] drm/i915: Do not share hwsp across contexts any more, v7.

2021-01-28 Thread Chris Wilson
This series still willfully breaks ABI resulting in iris aborting among others, introduces an unrecoverable dos, despite knowing how to avoid both.It is unconscionable that this design was not revised to avoid such breakage, after being rejected. -Chris

[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915: Remove obj->mm.lock! (rev14)

2021-01-28 Thread Patchwork
== Series Details == Series: drm/i915: Remove obj->mm.lock! (rev14) URL : https://patchwork.freedesktop.org/series/82337/ State : failure == Summary == CI Bug Log - changes from CI_DRM_9695 -> Patchwork_19530 Summary --- **FAILURE**

[Intel-gfx] [PATCH 2/5] drm/i915: Extract intel_ddi_power_up_lanes()

2021-01-28 Thread Ville Syrjala
From: Ville Syrjälä Reduce the copypasta by pulling the combo PHY lane power up stuff into a helper. We'll have a third user soon. Cc: sta...@vger.kernel.org Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/display/intel_ddi.c | 35 +--- 1 file changed, 19

[Intel-gfx] [PATCH 3/5] drm/i915: Power up combo PHY lanes for for HDMI as well

2021-01-28 Thread Ville Syrjala
From: Ville Syrjälä Currently we only explicitly power up the combo PHY lanes for DP. The spec says we should do it for HDMI as well. Cc: sta...@vger.kernel.org Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/display/intel_ddi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git

[Intel-gfx] [PATCH 1/5] drm/i915: Skip vswing programming for TBT

2021-01-28 Thread Ville Syrjala
From: Ville Syrjälä In thunderbolt mode the PHY is owned by the thunderbolt controller. We are not supposed to touch it. So skip the vswing programming as well (we already skipped the other steps not applicable to TBT). Touching this stuff could supposedly interfere with the PHY programming

[Intel-gfx] [PATCH 4/5] drm/i915: Move HDMI vswing programming to the right place

2021-01-28 Thread Ville Syrjala
From: Ville Syrjälä The documented programming sequence indicates the correct point for the vswing programming is just before we enable the DDI. Make it so. Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/display/intel_ddi.c | 30 1 file changed, 15

[Intel-gfx] [PATCH CI 1/3] drm/i915: Nuke not needed members of dram_info

2021-01-28 Thread José Roberto de Souza
Valid, ranks and bandwidth_kbps are set into dram_info but are not used anywhere else so nuking it. Reviewed-by: Lucas De Marchi Signed-off-by: José Roberto de Souza --- drivers/gpu/drm/i915/i915_drv.c | 4 +-- drivers/gpu/drm/i915/i915_drv.h | 3 -- drivers/gpu/drm/i915/intel_dram.c |

[Intel-gfx] [PATCH CI 3/3] drm/i915: Rename is_16gb_dimm to wm_lv_0_adjust_needed

2021-01-28 Thread José Roberto de Souza
As it now it is always required for GEN12+ the is_16gb_dimm name do not make sense for GEN12+. v2: - Updated comment on top of "dram_info->wm_lv_0_adjust_needed = !IS_GEN9_LP(i915);" Reviewed-by: Lucas De Marchi Signed-off-by: José Roberto de Souza --- drivers/gpu/drm/i915/i915_drv.h | 2

[Intel-gfx] [PATCH CI 2/3] drm/i915/gen11+: Only load DRAM information from pcode

2021-01-28 Thread José Roberto de Souza
Up to now we were reading some DRAM information from MCHBAR register and from pcode what is already not good but some GEN12(TGL-H and ADL-S) platforms have MCHBAR DRAM information in different offsets. This was notified to HW team that decided that the best alternative is always apply the

[Intel-gfx] [PATCH 5/5] drm/i915: Don't check tc_mode unless dealing with a TC PHY

2021-01-28 Thread Ville Syrjala
From: Ville Syrjälä We shouldn't really trust tc_mode on non-TC PHYs since we never initialize it explicitly. So let's check for the PHY type first. Fortunately TC_PORT_TBT_ALT happens to be zero so I don't think there's an actual bug here, just a possibility for a future one if someone

[Intel-gfx] [PATCH v7 01/63] drm/i915: Do not share hwsp across contexts any more, v7.

2021-01-28 Thread Maarten Lankhorst
Instead of sharing pages with breadcrumbs, give each timeline a single page. This allows unrelated timelines not to share locks any more during command submission. As an additional benefit, seqno wraparound no longer requires i915_vma_pin, which means we no longer need to worry about a potential

  1   2   >