[Intel-gfx] ✗ Fi.CI.DOCS: warning for series starting with [CI,1/2] drm/i915: Add mechanism to submit a context WA on ring submission

2020-03-06 Thread Patchwork
== Series Details == Series: series starting with [CI,1/2] drm/i915: Add mechanism to submit a context WA on ring submission URL : https://patchwork.freedesktop.org/series/74363/ State : warning == Summary == $ make htmldocs 2>&1 > /dev/null | grep i915 ./drivers/gpu/drm/i915/display/intel_dp

[Intel-gfx] ✗ Fi.CI.BUILD: failure for series starting with [v3,1/3] drm/i915/display: Deactive FBC in fastsets when disabled by parameter (rev2)

2020-03-06 Thread Patchwork
== Series Details == Series: series starting with [v3,1/3] drm/i915/display: Deactive FBC in fastsets when disabled by parameter (rev2) URL : https://patchwork.freedesktop.org/series/73618/ State : failure == Summary == Applying: drm/i915/display: Deactive FBC in fastsets when disabled by par

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [CI,1/2] drm/i915: Add mechanism to submit a context WA on ring submission

2020-03-06 Thread Patchwork
== Series Details == Series: series starting with [CI,1/2] drm/i915: Add mechanism to submit a context WA on ring submission URL : https://patchwork.freedesktop.org/series/74363/ State : success == Summary == CI Bug Log - changes from CI_DRM_8074 -> Patchwork_16853 ===

[Intel-gfx] ✗ Fi.CI.DOCS: warning for series starting with [v4,1/2] drm/edid: Name the detailed monitor range flags

2020-03-06 Thread Patchwork
== Series Details == Series: series starting with [v4,1/2] drm/edid: Name the detailed monitor range flags URL : https://patchwork.freedesktop.org/series/74364/ State : warning == Summary == $ make htmldocs 2>&1 > /dev/null | grep i915 ./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warn

Re: [Intel-gfx] [PATCH v2 1/9] drm/i915: Polish CHV CGM CSC loading

2020-03-06 Thread Sharma, Swati2
On 03-Mar-20 11:03 PM, Ville Syrjala wrote: From: Ville Syrjälä Only load the CGM CSC based on the cgm_mode bit like we do with the gamma/degamma LUTs. And make the function naming and arguments consistent as well. TODO: the code to convert the coefficients look totally bogus. IIRC CHV uses

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v4,1/2] drm/edid: Name the detailed monitor range flags

2020-03-06 Thread Patchwork
== Series Details == Series: series starting with [v4,1/2] drm/edid: Name the detailed monitor range flags URL : https://patchwork.freedesktop.org/series/74364/ State : success == Summary == CI Bug Log - changes from CI_DRM_8074 -> Patchwork_16855 =

Re: [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: properly sanity check batch_start_offset (rev2)

2020-03-06 Thread Chris Wilson
Quoting Patchwork (2020-03-06 04:28:26) > == Series Details == > > Series: drm/i915: properly sanity check batch_start_offset (rev2) > URL : https://patchwork.freedesktop.org/series/74287/ > State : success Apologies, SPF vs intel.com again. So, I think the _end variant should be for the inclu

[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable to dev

2020-03-06 Thread Patchwork
== Series Details == Series: series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable to dev URL : https://patchwork.freedesktop.org/series/74298/ State : success == Summary == CI Bug Log - changes from CI_DRM_8070_full -> Patchwork_16831_full ==

Re: [Intel-gfx] [PATCH 1/3] drm/i915: Assert requests within a context are submitted in order

2020-03-06 Thread Mika Kuoppala
Chris Wilson writes: > Check the flow of requests into the hardware to verify that are > submitted in order along their timeline. > > Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala > --- > drivers/gpu/drm/i915/gt/intel_lrc.c | 4 > drivers/gpu/drm/i915/i915_request.c | 4 >

Re: [Intel-gfx] [PATCH v6 2/3] drm/i915: Lookup and attach ACPI device node for connectors

2020-03-06 Thread Jani Nikula
On Thu, 05 Mar 2020, Rajat Jain wrote: > On Thu, Mar 5, 2020 at 1:41 AM Jani Nikula > wrote: >> >> On Wed, 04 Mar 2020, Rajat Jain wrote: >> 1) See if we can postpone creating and attaching properties to connector >> ->late_register hook. (I didn't have the time to look into it yet, at >> all.)

Re: [Intel-gfx] [PATCH 3/3] drm/i915/gem: Limit struct_mutex to eb_reserve

2020-03-06 Thread Mika Kuoppala
Chris Wilson writes: > We only need to serialise the multiple pinning during the eb_reserve > phase. Ideally this would be using the vm->mutex as an outer lock, or > using a composite global mutex (ww_mutex), but at the moment we are > using struct_mutex for the group. > > Fixes: 003d8b9143a6 ("d

[Intel-gfx] [PATCH v3] drm/i915: properly sanity check batch_start_offset

2020-03-06 Thread Matthew Auld
Check the edge case where batch_start_offset sits exactly on the batch size. v2: add new range_overflows variant to capture the special case where the size is permitted to be zero, like with batch_len. v3: other way around. the common case is the exclusive one which should just be >=, with that w

Re: [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/phys: unconditionally call release_memory_region

2020-03-06 Thread Chris Wilson
Quoting Patchwork (2020-03-06 06:09:52) > == Series Details == > > Series: drm/i915/phys: unconditionally call release_memory_region > URL : https://patchwork.freedesktop.org/series/74354/ > State : success > > == Summary == > > CI Bug Log - changes from CI_DRM_8074 -> Patchwork_16849 > ==

[Intel-gfx] [PATCH v4 1/3] drm/i915/perf: remove generated code

2020-03-06 Thread 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

[Intel-gfx] [PATCH v4 3/3] drm/i915/perf: introduce global sseu pinning

2020-03-06 Thread 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

[Intel-gfx] [PATCH v4 2/3] drm/i915/perf: remove redundant power configuration register override

2020-03-06 Thread Lionel Landwerlin
The caller of i915_oa_init_reg_state() already sets this. Signed-off-by: Lionel Landwerlin --- drivers/gpu/drm/i915/i915_perf.c | 7 --- 1 file changed, 7 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c index 0069f09b988c..86c6abaa3e0e 100644 --

Re: [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: be more solid in checking the alignment

2020-03-06 Thread Chris Wilson
Quoting Patchwork (2020-03-06 05:40:31) > == Series Details == > > Series: drm/i915: be more solid in checking the alignment > URL : https://patchwork.freedesktop.org/series/74353/ > State : success > > == Summary == > > CI Bug Log - changes from CI_DRM_8074 -> Patchwork_16848 > ==

Re: [Intel-gfx] [PATCH 2/3] drm/i915: Always propagate the invocation to i915_schedule

2020-03-06 Thread Mika Kuoppala
Chris Wilson writes: > We only call i915_schedule() when we know we have changed the priority > on a request and so require to propagate any change in priority to its > signalers (for PI). By unconditionally checking all of our signalers, we > avoid skipping changes made prior to construction of

[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable to dev

2020-03-06 Thread Patchwork
== Series Details == Series: series starting with [v6,1/3] intel_acpi: Rename drm_dev local variable to dev URL : https://patchwork.freedesktop.org/series/74299/ State : success == Summary == CI Bug Log - changes from CI_DRM_8070_full -> Patchwork_16832_full ==

Re: [Intel-gfx] [PATCH v6 3/3] drm/i915: Add support for integrated privacy screens

2020-03-06 Thread Jani Nikula
On Thu, 05 Mar 2020, Rajat Jain wrote: > OK, will do. In order to do that I may need to introduce driver level > hooks that i915 driver can populate and drm core can call (or may be > some functions to add privacy screen property that drm core exports > and i915 driver will call). The latter. Loo

Re: [Intel-gfx] [PATCH v4 1/2] drm/edid: Name the detailed monitor range flags

2020-03-06 Thread Jani Nikula
On Thu, 05 Mar 2020, Manasi Navare wrote: > This patch adds defines for the detailed monitor > range flags as per the EDID specification. > > Suggested-by: Ville Syrjälä > Cc: Ville Syrjälä > Cc: Harry Wentland > Cc: Clinton A Taylor > Cc: Kazlauskas Nicholas > Signed-off-by: Manasi Navare >

[Intel-gfx] ✗ Fi.CI.DOCS: warning for series starting with [1/3] drm/i915: Assert requests within a context are submitted in order

2020-03-06 Thread Patchwork
== Series Details == Series: series starting with [1/3] drm/i915: Assert requests within a context are submitted in order URL : https://patchwork.freedesktop.org/series/74369/ State : warning == Summary == $ make htmldocs 2>&1 > /dev/null | grep i915 ./drivers/gpu/drm/i915/display/intel_dpll_

Re: [Intel-gfx] [PATCH] MAINTAINERS: adjust to reservation.h renaming

2020-03-06 Thread Daniel Vetter
On Wed, Mar 04, 2020 at 01:08:32PM +0100, Christian König wrote: > Am 04.03.20 um 13:07 schrieb Lukas Bulwahn: > > Commit 52791eeec1d9 ("dma-buf: rename reservation_object to dma_resv") > > renamed include/linux/reservation.h to include/linux/dma-resv.h, but > > missed the reference in the MAINTAIN

[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/3] drm/i915: Assert requests within a context are submitted in order

2020-03-06 Thread Patchwork
== Series Details == Series: series starting with [1/3] drm/i915: Assert requests within a context are submitted in order URL : https://patchwork.freedesktop.org/series/74369/ State : failure == Summary == CI Bug Log - changes from CI_DRM_8076 -> Patchwork_16856 ==

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/execlists: Enable timeslice on partial virtual engine dequeue

2020-03-06 Thread Patchwork
== Series Details == Series: drm/i915/execlists: Enable timeslice on partial virtual engine dequeue URL : https://patchwork.freedesktop.org/series/74304/ State : success == Summary == CI Bug Log - changes from CI_DRM_8070_full -> Patchwork_16833_full ===

Re: [Intel-gfx] [PATCH] drm/i915/gt: allow setting generic data pointer

2020-03-06 Thread Andi Shyti
Hi Daniele, > > > > diff --git a/drivers/gpu/drm/i915/gt/debugfs_gt.c > > > > b/drivers/gpu/drm/i915/gt/debugfs_gt.c > > > > index 75255aaacaed..9112a8585caf 100644 > > > > --- a/drivers/gpu/drm/i915/gt/debugfs_gt.c > > > > +++ b/drivers/gpu/drm/i915/gt/debugfs_gt.c > > > > @@ -26,15 +26,14 @@ vo

Re: [Intel-gfx] [PATCH] MAINTAINERS: adjust to reservation.h renaming

2020-03-06 Thread Joe Perches
On Fri, 2020-03-06 at 11:39 +0100, Daniel Vetter wrote: > On Wed, Mar 04, 2020 at 01:08:32PM +0100, Christian König wrote: > > Am 04.03.20 um 13:07 schrieb Lukas Bulwahn: > > > Commit 52791eeec1d9 ("dma-buf: rename reservation_object to dma_resv") > > > renamed include/linux/reservation.h to includ

[Intel-gfx] [PATCH 2/3] drm/i915: Improve the start alignment of bonded pairs

2020-03-06 Thread Chris Wilson
Always wait on the start of the signaler request to reduce the problem of dequeueing the bonded pair too early -- we want both payloads to start at the same time, with no latency, and yet still allow others to make full use of the slack in the system. This reduce the amount of time we spend waiting

[Intel-gfx] [PATCH 3/3] drm/i915: Tweak scheduler's kick_submission()

2020-03-06 Thread Chris Wilson
Skip useless priority bumping on adding a new dependency, but otherwise prevent tasklet scheduling until we have completed all the potential rescheduling. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_scheduler.c | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git

[Intel-gfx] [PATCH 1/3] drm/i915/execlists: Enable timeslice on partial virtual engine dequeue

2020-03-06 Thread Chris Wilson
If we stop filling the ELSP due to an incompatible virtual engine request, check if we should enable the timeslice on behalf of the queue. This fixes the case where we are inspecting the last->next element when we know that the last element is the last request in the execution queue, and so decide

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Improve the start alignment of bonded pairs

2020-03-06 Thread Patchwork
== Series Details == Series: drm/i915: Improve the start alignment of bonded pairs URL : https://patchwork.freedesktop.org/series/74315/ State : success == Summary == CI Bug Log - changes from CI_DRM_8070_full -> Patchwork_16835_full Summar

[Intel-gfx] [RFC 0/7] Asynchronous flip implementation for i915

2020-03-06 Thread Karthik B S
Without async flip support in the kernel, fullscreen apps where game resolution is equal to the screen resolution, must perform an extra blit per frame prior to flipping. Asynchronous page flips will also boost the FPS of Mesa benchmarks. Karthik B S (7): drm/i915: Define flip done functions an

[Intel-gfx] [RFC 4/7] drm/i915: Add checks specific to async flips

2020-03-06 Thread Karthik B S
Support added only for async flips on primary plane. If flip is requested on any other plane, reject it. Signed-off-by: Karthik B S --- drivers/gpu/drm/i915/display/intel_display.c | 29 1 file changed, 29 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_displa

[Intel-gfx] [RFC 6/7] drm/i915: Enable and handle flip done interrupt

2020-03-06 Thread Karthik B S
Enable flip done function is called before writing the surface address register as the write to this register triggers the flip done interrupt. If the flip done event is requested then send it in the flip done handler, and then disable the interrupt. Signed-off-by: Karthik B S --- drivers/gpu/d

[Intel-gfx] [RFC 1/7] drm/i915: Define flip done functions and enable IER

2020-03-06 Thread Karthik B S
Add enable/disable flip done functions and enable the flip done interrupt in IER. Flip done interrupt is used to send the page flip event as soon as the surface address is written as per the requirement of async flips. Signed-off-by: Karthik B S --- drivers/gpu/drm/i915/i915_irq.c | 37

[Intel-gfx] [RFC 2/7] drm/i915: Add support for async flips in I915

2020-03-06 Thread Karthik B S
Enable support for async flips in I915. Set the Async Address Update Enable bit in plane ctl when async flip is requested. Signed-off-by: Karthik B S --- drivers/gpu/drm/i915/display/intel_display.c | 4 drivers/gpu/drm/i915/i915_reg.h | 1 + 2 files changed, 5 insertions(+) d

[Intel-gfx] [RFC 3/7] drm/i915: Make commit call blocking in case of async flips

2020-03-06 Thread Karthik B S
Make the commit call blocking in case of async flips so that there is no delay in completing the flip. Signed-off-by: Karthik B S --- drivers/gpu/drm/i915/display/intel_display.c | 15 ++- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/display/int

[Intel-gfx] [RFC 7/7] drm/i915: Do not call drm_crtc_arm_vblank_event in async flips

2020-03-06 Thread Karthik B S
Since the flip done event will be sent in the flip_done_handler, no need to add the event to the list and delay it for later. Signed-off-by: Karthik B S --- drivers/gpu/drm/i915/display/intel_sprite.c | 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/dr

[Intel-gfx] [RFC 5/7] drm/i915: Add flip_done_handler definition

2020-03-06 Thread Karthik B S
Send the flip done event in the handler and disable the interrupt. Signed-off-by: Karthik B S --- drivers/gpu/drm/i915/i915_irq.c | 18 ++ 1 file changed, 18 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 5955e737a45d..1feda9ae

Re: [Intel-gfx] [PATCH v2 1/9] drm/i915: Polish CHV CGM CSC loading

2020-03-06 Thread Ville Syrjälä
On Fri, Mar 06, 2020 at 02:14:15PM +0530, Sharma, Swati2 wrote: > > > On 03-Mar-20 11:03 PM, Ville Syrjala wrote: > > From: Ville Syrjälä > > > > Only load the CGM CSC based on the cgm_mode bit like we > > do with the gamma/degamma LUTs. And make the function > > naming and arguments consistent

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Actually emit the await_start

2020-03-06 Thread Patchwork
== Series Details == Series: drm/i915: Actually emit the await_start URL : https://patchwork.freedesktop.org/series/74319/ State : success == Summary == CI Bug Log - changes from CI_DRM_8070_full -> Patchwork_16836_full Summary --- *

[Intel-gfx] [PATCH 16/17] drm/i915: Use ww pinning for intel_context_create_request()

2020-03-06 Thread Maarten Lankhorst
We want to get rid of intel_context_pin(), convert intel_context_create_request() first. :) Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/intel_context.c | 20 +++- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_context

[Intel-gfx] [PATCH 03/17] drm/i915: Parse command buffer earlier in eb_relocate(slow)

2020-03-06 Thread Maarten Lankhorst
We want to introduce backoff logic, but we need to lock the pool object as well for command parsing. Because of this, we will need backoff logic for the engine pool obj, move the batch validation up slightly to eb_lookup_vmas, and the actual command parsing in a separate function which can get call

[Intel-gfx] [PATCH 10/17] drm/i915: Make sure execbuffer always passes ww state to i915_vma_pin.

2020-03-06 Thread Maarten Lankhorst
As a preparation step for full object locking and wait/wound handling during pin and object mapping, ensure that we always pass the ww context in i915_gem_execbuffer.c to i915_vma_pin, use lockdep to ensure this happens. This also requires changing the order of eb_parse slightly, to ensure we pass

[Intel-gfx] [PATCH 17/17] drm/i915: Move i915_vma_lock in the live selftest to avoid lock inversion

2020-03-06 Thread Maarten Lankhorst
Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/selftests/i915_request.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/selftests/i915_request.c b/drivers/gpu/drm/i915/selftests/i915_request.c index f89d9c42f1fa..2a6052d609d9 100644 --- a

[Intel-gfx] [PATCH 12/17] drm/i915: Kill last user of intel_context_create_request outside of selftests

2020-03-06 Thread Maarten Lankhorst
Instead of using intel_context_create_request(), use intel_context_pin() and i915_create_request directly. Now all those calls are gone outside of selftests. :) Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/intel_workarounds.c | 43 ++--- 1 file changed, 29 insert

[Intel-gfx] [PATCH 04/17] drm/i915: Use per object locking in execbuf, v5.

2020-03-06 Thread Maarten Lankhorst
Now that we changed execbuf submission slightly to allow us to do all pinning in one place, we can now simply add ww versions on top of struct_mutex. All we have to do is a separate path for -EDEADLK handling, which needs to unpin all gem bo's before dropping the lock, then starting over. This fin

[Intel-gfx] [PATCH 14/17] drm/i915: Dirty hack to fix selftests locking inversion

2020-03-06 Thread Maarten Lankhorst
Some i915 selftests still use i915_vma_lock() as inner lock, and intel_context_create_request() intel_timeline->mutex as outer lock. Fortunately for selftests this is not an issue, they should be fixed but we can move ahead and cleanify lockdep now. Signed-off-by: Maarten Lankhorst --- drivers/g

[Intel-gfx] [PATCH 07/17] drm/i915: Nuke arguments to eb_pin_engine

2020-03-06 Thread Maarten Lankhorst
Those arguments are already set as eb.file and eb.args, so kill off the extra arguments. This will allow us to move eb_pin_engine() to after we reserved all BO's. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 17 +++-- 1 file changed, 7 inserti

[Intel-gfx] [PATCH 13/17] drm/i915: Convert i915_perf to ww locking as well

2020-03-06 Thread Maarten Lankhorst
We have the ordering of timeline->mutex vs resv_lock wrong, convert the i915_pin_vma and intel_context_pin as well to future-proof this. We may need to do future changes to do this more transaction-like, and only get down to a single i915_gem_ww_ctx, but for now this should work. Signed-off-by: M

[Intel-gfx] [PATCH 01/17] drm/i915: Add an implementation for i915_gem_ww_ctx locking, v2.

2020-03-06 Thread Maarten Lankhorst
i915_gem_ww_ctx is used to lock all gem bo's for pinning and memory eviction. We don't use it yet, but lets start adding the definition first. To use it, we have to pass a non-NULL ww to gem_object_lock, and don't unlock directly. It is done in i915_gem_ww_ctx_fini. Changes since v1: - Change ww_

[Intel-gfx] [PATCH 08/17] drm/i915: Pin engine before pinning all objects, v3.

2020-03-06 Thread Maarten Lankhorst
We want to lock all gem objects, including the engine context objects, rework the throttling to ensure that we can do this. Now we only throttle once, but can take eb_pin_engine while acquiring objects. This means we will have to drop the lock to wait. If we don't have to throttle we can still take

[Intel-gfx] [PATCH 15/17] drm/i915/selftests: Fix locking inversion in lrc selftest.

2020-03-06 Thread Maarten Lankhorst
This function does not use intel_context_create_request, so it has to use the same locking order as normal code. This is required to shut up lockdep in selftests. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/selftest_lrc.c | 15 --- 1 file changed, 12 insertions(+), 3

[Intel-gfx] [PATCH 11/17] drm/i915: Convert i915_gem_object/client_blt.c to use ww locking as well, v2.

2020-03-06 Thread Maarten Lankhorst
This is the last part outside of selftests that still don't use the correct lock ordering of timeline->mutex vs resv_lock. With gem fixed, there are a few places that still get locking wrong: - gvt/scheduler.c - i915_perf.c - Most if not all selftests. Changes since v1: - Add intel_engine_pm_get/

[Intel-gfx] [PATCH 06/17] drm/i915: Add ww context handling to context_barrier_task

2020-03-06 Thread Maarten Lankhorst
This is required if we want to pass a ww context in intel_context_pin and gen6_ppgtt_pin(). Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/i915_gem_context.c | 55 ++- .../drm/i915/gem/selftests/i915_gem_context.c | 22 +++- 2 files changed, 48 insertions(+),

[Intel-gfx] [PATCH 09/17] drm/i915: Rework intel_context pinning to do everything outside of pin_mutex

2020-03-06 Thread Maarten Lankhorst
Instead of doing everything inside of pin_mutex, we move all pinning outside. Because i915_active has its own reference counting and pinning is also having the same issues vs mutexes, we make sure everything is pinned first, so the pinning in i915_active only needs to bump refcounts. This allows us

[Intel-gfx] [PATCH 02/17] drm/i915: Remove locking from i915_gem_object_prepare_read/write

2020-03-06 Thread Maarten Lankhorst
Execbuffer submission will perform its own WW locking, and we cannot rely on the implicit lock there. This also makes it clear that the GVT code will get a lockdep splat when multiple batchbuffer shadows need to be performed in the same instance, fix that up. Signed-off-by: Maarten Lankhorst ---

[Intel-gfx] [PATCH 05/17] drm/i915: Use ww locking in intel_renderstate.

2020-03-06 Thread Maarten Lankhorst
We want to start using ww locking in intel_context_pin, for this we need to lock multiple objects, and the single i915_gem_object_lock is not enough. Convert to using ww-waiting, and make sure we always pin intel_context_state, even if we don't have a renderstate object. Signed-off-by: Maarten La

[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915: properly sanity check batch_start_offset (rev3)

2020-03-06 Thread Patchwork
== Series Details == Series: drm/i915: properly sanity check batch_start_offset (rev3) URL : https://patchwork.freedesktop.org/series/74287/ State : warning == Summary == $ make htmldocs 2>&1 > /dev/null | grep i915 ./drivers/gpu/drm/i915/display/intel_dpll_mgr.h:285: warning: Function parame

[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915: properly sanity check batch_start_offset (rev3)

2020-03-06 Thread Patchwork
== Series Details == Series: drm/i915: properly sanity check batch_start_offset (rev3) URL : https://patchwork.freedesktop.org/series/74287/ State : failure == Summary == CI Bug Log - changes from CI_DRM_8080 -> Patchwork_16857 Summary

[Intel-gfx] [PATCH 16/17] drm/i915/gt: Declare when we enabled timeslicing

2020-03-06 Thread Chris Wilson
Let userspace know if they can trust timeslicing by including it as part of the I915_PARAM_HAS_SCHEDULER::I915_SCHEDULER_CAP_TIMESLICING v2: Only declare timeslicing if we can safely preempt userspace. Fixes: 8ee36e048c98 ("drm/i915/execlists: Minimalistic timeslicing") Signed-off-by: Chris Wilso

[Intel-gfx] [PATCH 14/17] drm/i915/gem: Teach execbuf how to wait on future syncobj

2020-03-06 Thread Chris Wilson
If a syncobj has not yet been assigned, treat it as a future fence and install and wait upon a dma-fence-proxy. The proxy will be replace by the real fence later, and that fence will be responsible for signaling our waiter. Signed-off-by: Chris Wilson --- .../gpu/drm/i915/gem/i915_gem_execbuffer

[Intel-gfx] [PATCH 12/17] dma-buf: Proxy fence, an unsignaled fence placeholder

2020-03-06 Thread Chris Wilson
Often we need to create a fence for a future event that has not yet been associated with a fence. We can store a proxy fence, a placeholder, in the timeline and replace it later when the real fence is known. Any listeners that attach to the proxy fence will automatically be signaled when the real f

[Intel-gfx] [PATCH 01/17] drm/i915/selftests: Apply a heavy handed flush to i915_active

2020-03-06 Thread Chris Wilson
Due to the ordering of cmpxchg()/dma_fence_signal() inside node_retire(), we must also use the xchg() as our primary memory barrier to flush the outstanding callbacks after expected completion of the i915_active. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/selftests/i915_active.c | 29 +

[Intel-gfx] [PATCH 06/17] drm/i915: Extend i915_request_await_active to use all timelines

2020-03-06 Thread Chris Wilson
Extend i915_request_await_active() to be able to asynchronously wait on all the tracked timelines simultaneously. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_active.c | 51 +++--- drivers/gpu/drm/i915/i915_active.h | 5 ++- drivers/gpu/drm/i915/i915_vma.c

[Intel-gfx] [PATCH 10/17] dma-buf: Report signaled links inside dma-fence-chain

2020-03-06 Thread Chris Wilson
Whenever we walk along the dma-fence-chain, we prune signaled links to keep the chain nice and tidy. This leads to situations where we can prune a link and report the earlier fence as the target seqno -- violating our own consistency checks that the seqno is not more advanced than the last element

[Intel-gfx] [PATCH 09/17] dma-buf: Prettify typecasts for dma-fence-chain

2020-03-06 Thread Chris Wilson
Inside dma-fence-chain, we use a cmpxchg on an RCU-protected pointer. To avoid the sparse warning for using the RCU pointer directly, we have to cast away the __rcu annotation. However, we don't need to use void* everywhere and can stick to the dma_fence*. Signed-off-by: Chris Wilson Reviewed-by:

[Intel-gfx] [PATCH 15/17] drm/i915/gem: Allow combining submit-fences with syncobj

2020-03-06 Thread Chris Wilson
Fixes: a88b6e4cbafd ("drm/i915: Allow specification of parallel execbuf") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Lionel Landwerlin --- drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 10 +++--- include/uapi/drm/i915_drm.h| 7 --- 2 files changed, 11 ins

[Intel-gfx] [PATCH 07/17] drm/i915/perf: Schedule oa_config after modifying the contexts

2020-03-06 Thread Chris Wilson
We wish that the scheduler emit the context modification commands prior to enabling the oa_config, for which we must explicitly inform it of the ordering constraints. This is especially important as we now wait for the final oa_config setup to be completed and as this wait may be on a distinct cont

[Intel-gfx] [PATCH 17/17] drm/i915/gt: Yield the timeslice if caught waiting on a user semaphore

2020-03-06 Thread Chris Wilson
If we find ourselves waiting on a MI_SEMAPHORE_WAIT, either within the user batch or in our own preamble, the engine raises a GT_WAIT_ON_SEMAPHORE interrupt. We can unmask that interrupt and so respond to a semaphore wait by yielding the timeslice, if we have another context to yield to! The only

[Intel-gfx] [PATCH 13/17] drm/syncobj: Allow use of dma-fence-proxy

2020-03-06 Thread Chris Wilson
Allow the callers to supply a dma-fence-proxy for asynchronous waiting on future fences. Signed-off-by: Chris Wilson --- drivers/gpu/drm/drm_syncobj.c | 8 ++-- 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c index 4

[Intel-gfx] [PATCH 05/17] drm/i915: Wrap i915_active in a simple kreffed struct

2020-03-06 Thread Chris Wilson
For conveniences of callers that just want to use an i915_active to track a wide array of concurrent timelines, wrap the base i915_active struct inside a kref. This i915_active will self-destruct after use. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_active.c | 53 +

[Intel-gfx] [PATCH 03/17] drm/i915: Improve the start alignment of bonded pairs

2020-03-06 Thread Chris Wilson
Always wait on the start of the signaler request to reduce the problem of dequeueing the bonded pair too early -- we want both payloads to start at the same time, with no latency, and yet still allow others to make full use of the slack in the system. This reduce the amount of time we spend waiting

[Intel-gfx] [PATCH 11/17] dma-buf: Exercise dma-fence-chain under selftests

2020-03-06 Thread Chris Wilson
A few very simple testcases to exercise the dma-fence-chain API. Signed-off-by: Chris Wilson --- drivers/dma-buf/Makefile | 3 +- drivers/dma-buf/selftests.h | 1 + drivers/dma-buf/st-dma-fence-chain.c | 713 +++ 3 files changed, 716 insertions(+)

[Intel-gfx] [PATCH 04/17] drm/i915: Tweak scheduler's kick_submission()

2020-03-06 Thread Chris Wilson
Skip useless priority bumping on adding a new dependency, but otherwise prevent tasklet scheduling until we have completed all the potential rescheduling. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_scheduler.c | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git

[Intel-gfx] [PATCH 08/17] drm/i915/selftests: Add request throughput measurement to perf

2020-03-06 Thread Chris Wilson
Under ideal circumstances, the driver should be able to keep the GPU fully saturated with work. Measure how close to ideal we get under the harshest of conditions with no user payload. Signed-off-by: Chris Wilson --- .../drm/i915/selftests/i915_perf_selftests.h | 1 + drivers/gpu/drm/i915/sel

[Intel-gfx] [PATCH 02/17] drm/i915/execlists: Enable timeslice on partial virtual engine dequeue

2020-03-06 Thread Chris Wilson
If we stop filling the ELSP due to an incompatible virtual engine request, check if we should enable the timeslice on behalf of the queue. This fixes the case where we are inspecting the last->next element when we know that the last element is the last request in the execution queue, and so decide

Re: [Intel-gfx] [RESEND PATCH v2 0/7] drm: drm_fb_helper cleanup.

2020-03-06 Thread Daniel Vetter
On Thu, Mar 05, 2020 at 05:34:27PM +0530, Pankaj Bharadiya wrote: > This series addresses below drm_fb_helper tasks from > Documentation/gpu/todo.rst. > > - The max connector argument for drm_fb_helper_init() isn't used > anymore and can be removed. > > - The helper doesn't keep an array of con

[Intel-gfx] ✓ Fi.CI.IGT: success for drm: drm_fb_helper cleanup. (rev3)

2020-03-06 Thread Patchwork
== Series Details == Series: drm: drm_fb_helper cleanup. (rev3) URL : https://patchwork.freedesktop.org/series/74140/ State : success == Summary == CI Bug Log - changes from CI_DRM_8070_full -> Patchwork_16838_full Summary --- **SUCC

[Intel-gfx] [PATCH] drm/i915: Do not poison i915_request.link on removal

2020-03-06 Thread Chris Wilson
Do not poison the timeline link on the i915_request to allow both forward/backward list traversal under RCU. [ 9759.139229] RIP: 0010:active_request+0x2a/0x90 [i915] [ 9759.139240] Code: 41 56 41 55 41 54 55 48 89 fd 53 48 89 f3 48 83 c5 60 e8 49 de dc e0 48 8b 83 e8 01 00 00 48 39 c5 74 12 48 8d

Re: [Intel-gfx] [PATCH 1/3] drm/i915/execlists: Enable timeslice on partial virtual engine dequeue

2020-03-06 Thread Mika Kuoppala
Chris Wilson writes: > If we stop filling the ELSP due to an incompatible virtual engine > request, check if we should enable the timeslice on behalf of the queue. > > This fixes the case where we are inspecting the last->next element when > we know that the last element is the last request in th

Re: [Intel-gfx] [PATCH 07/17] drm/i915/perf: Schedule oa_config after modifying the contexts

2020-03-06 Thread Lionel Landwerlin
On 06/03/2020 15:38, Chris Wilson wrote: We wish that the scheduler emit the context modification commands prior to enabling the oa_config, for which we must explicitly inform it of the ordering constraints. This is especially important as we now wait for the final oa_config setup to be completed

Re: [Intel-gfx] [PATCH v3 1/3] drm/i915/display: Deactive FBC in fastsets when disabled by parameter

2020-03-06 Thread Ville Syrjälä
On Fri, Mar 06, 2020 at 12:22:09AM +, Souza, Jose wrote: > On Wed, 2020-02-19 at 20:52 +0200, Ville Syrjälä wrote: > > On Wed, Feb 19, 2020 at 06:37:27PM +, Souza, Jose wrote: > > > On Wed, 2020-02-19 at 15:37 +0200, Ville Syrjälä wrote: > > > > On Tue, Feb 18, 2020 at 05:42:28PM -0800, Jos

Re: [Intel-gfx] [PATCH 01/17] drm/i915/selftests: Apply a heavy handed flush to i915_active

2020-03-06 Thread Mika Kuoppala
Chris Wilson writes: > Due to the ordering of cmpxchg()/dma_fence_signal() inside node_retire(), > we must also use the xchg() as our primary memory barrier to flush the > outstanding callbacks after expected completion of the i915_active. > > Signed-off-by: Chris Wilson Reviewed-by: Mika Kuopp

[Intel-gfx] [PATCH i-g-t 1/2] gem_wsim: Fix calibration for special VCS engine name

2020-03-06 Thread Tvrtko Ursulin
From: Tvrtko Ursulin VCS is a special (non-physical) engine id/name which means load-balancing in legacy workloads. As such when i915 balancing is not enabled it needs to have a calibration as well. Signed-off-by: Tvrtko Ursulin --- benchmarks/gem_wsim.c | 2 ++ 1 file changed, 2 insertions(+)

[Intel-gfx] [PATCH i-g-t 2/2] gem_wsim: Mark contexts as non-persistent

2020-03-06 Thread Tvrtko Ursulin
From: Tvrtko Ursulin We want to mark workload contexts as non-persistent if possible so that we do not have to worry about leaving long (or infinite!) batches running post exit. Signed-off-by: Tvrtko Ursulin --- benchmarks/gem_wsim.c | 50 --- 1 file cha

Re: [Intel-gfx] [PATCH v2 2/9] drm/i915: Clean up i9xx_load_luts_internal()

2020-03-06 Thread Sharma, Swati2
On 03-Mar-20 11:03 PM, Ville Syrjala wrote: +static void i9xx_load_luts(const struct intel_crtc_state *crtc_state) +{ + struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); + struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); + const struct drm_property_b

Re: [Intel-gfx] [PATCH 05/17] drm/i915: Wrap i915_active in a simple kreffed struct

2020-03-06 Thread Mika Kuoppala
Chris Wilson writes: > For conveniences of callers that just want to use an i915_active to > track a wide array of concurrent timelines, wrap the base i915_active > struct inside a kref. This i915_active will self-destruct after use. > Found the user, Reviewed-by: Mika Kuoppala > Signed-off-by

Re: [Intel-gfx] [PATCH v2 2/9] drm/i915: Clean up i9xx_load_luts_internal()

2020-03-06 Thread Ville Syrjälä
On Fri, Mar 06, 2020 at 08:12:22PM +0530, Sharma, Swati2 wrote: > > > On 03-Mar-20 11:03 PM, Ville Syrjala wrote: > > +static void i9xx_load_luts(const struct intel_crtc_state *crtc_state) > > +{ > > + struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); > > + struct drm_i915_priva

[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: Return early for await_start on same timeline

2020-03-06 Thread Patchwork
== Series Details == Series: drm/i915: Return early for await_start on same timeline URL : https://patchwork.freedesktop.org/series/74338/ State : failure == Summary == CI Bug Log - changes from CI_DRM_8070_full -> Patchwork_16839_full Summ

Re: [Intel-gfx] [PATCH v2 3/9] drm/i915: Split i9xx_read_lut_8() to gmch vs. ilk variants

2020-03-06 Thread Sharma, Swati2
On 03-Mar-20 11:03 PM, Ville Syrjala wrote: From: Ville Syrjälä To mirror the load_luts path let's clone an ilk+ version from i9xx_read_lut_8(). I guess the extra branch isn't a huge issue but feels better to make a clean split. Signed-off-by: Ville Syrjälä Reviewed-by: Swati Sharma --

Re: [Intel-gfx] [PATCH v4 2/2] drm/dp: Add function to parse EDID descriptors for adaptive sync limits

2020-03-06 Thread Kazlauskas, Nicholas
On 2020-03-05 8:42 p.m., Manasi Navare wrote: Adaptive Sync is a VESA feature so add a DRM core helper to parse the EDID's detailed descritors to obtain the adaptive sync monitor range. Store this info as part fo drm_display_info so it can be used across all drivers. This part of the code is stri

Re: [Intel-gfx] [PATCH v2 4/9] drm/i915: s/blob_data/lut/

2020-03-06 Thread Sharma, Swati2
On 03-Mar-20 11:03 PM, Ville Syrjala wrote: From: Ville Syrjälä We're talking about LUT contents here so let's call the thing 'lut' rather than 'blob_data'. This is the name the load_lut() code used before already. Signed-off-by: Ville Syrjälä Reviewed-by: Swati Sharma --- drivers/gpu

Re: [Intel-gfx] [PATCH] drm/i915: Do not poison i915_request.link on removal

2020-03-06 Thread Mika Kuoppala
Chris Wilson writes: > Do not poison the timeline link on the i915_request to allow both > forward/backward list traversal under RCU. > > [ 9759.139229] RIP: 0010:active_request+0x2a/0x90 [i915] > [ 9759.139240] Code: 41 56 41 55 41 54 55 48 89 fd 53 48 89 f3 48 83 c5 60 e8 > 49 de dc e0 48 8b 8

Re: [Intel-gfx] [PATCH v2 5/9] drm/i915: s/chv_read_cgm_lut/chv_read_cgm_gamma/

2020-03-06 Thread Sharma, Swati2
On 03-Mar-20 11:03 PM, Ville Syrjala wrote: From: Ville Syrjälä chv_read_cgm_lut() specifically reads the CGM _gamma_ LUT so let's rename it to reflect that fact. This also mirrors the other direction's chv_load_cgm_gamma(). At present, since all the readouts are only gamma luts so should w

Re: [Intel-gfx] [PATCH v2 6/9] drm/i915: Clean up integer types in color code

2020-03-06 Thread Sharma, Swati2
On 03-Mar-20 11:03 PM, Ville Syrjala wrote: From: Ville Syrjälä A variable called 'i' having an unsigned type is just looking for trouble, and using a sized type generally makes no sense either. Change all of them to just plain old int. And do the same for some 'lut_size' variables which gene

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: HDCP: fix Ri prime and R0 checks during auth (rev2)

2020-03-06 Thread Patchwork
== Series Details == Series: drm/i915: HDCP: fix Ri prime and R0 checks during auth (rev2) URL : https://patchwork.freedesktop.org/series/74271/ State : success == Summary == CI Bug Log - changes from CI_DRM_8070_full -> Patchwork_16840_full

Re: [Intel-gfx] [PATCH v2 7/9] drm/i915: Refactor LUT read functions

2020-03-06 Thread Sharma, Swati2
On 03-Mar-20 11:03 PM, Ville Syrjala wrote: From: Ville Syrjälä Extract all the 'hw value -> LUT entry' stuff into small helpers to make the main 'read out the entire LUT' loop less bogged down by such mundane details. Wow! Signed-off-by: Ville Syrjälä Reviewed-by: Swati Sharma ---

Re: [Intel-gfx] [PATCH v2 5/9] drm/i915: s/chv_read_cgm_lut/chv_read_cgm_gamma/

2020-03-06 Thread Ville Syrjälä
On Fri, Mar 06, 2020 at 08:48:42PM +0530, Sharma, Swati2 wrote: > > > On 03-Mar-20 11:03 PM, Ville Syrjala wrote: > > From: Ville Syrjälä > > > > chv_read_cgm_lut() specifically reads the CGM _gamma_ LUT so > > let's rename it to reflect that fact. This also mirrors > > the other direction's ch

Re: [Intel-gfx] [PATCH v2 9/9] drm/i915: Pass the crtc to the low level read_lut() funcs

2020-03-06 Thread Sharma, Swati2
On 03-Mar-20 11:03 PM, Ville Syrjala wrote: From: Ville Syrjälä The low level read_lut() functions don't need the entire crtc state as they know exactly what they're reading. Just need to pass in the crtc to get at the pipe. This now neatly mirrors the load_lut() direction. Signed-off-by: Vi

  1   2   >