Re: [Intel-gfx] [PATCH 09/13] drm/i915/pps: rename intel_dp_check_edp to intel_pps_check_power_unlocked

2020-12-28 Thread Anshuman Gupta
On 2020-12-22 at 20:19:49 +0530, Jani Nikula wrote: > Follow the usual naming pattern for functions. > > Signed-off-by: Jani Nikula > --- > drivers/gpu/drm/i915/display/intel_dp.c | 2 +- > drivers/gpu/drm/i915/display/intel_pps.c | 2 +- > drivers/gpu/drm/i915/display/intel_pps.h | 2 +- > 3 f

Re: [Intel-gfx] [PATCH 08/13] drm/i915/pps: abstract intel_pps_reinit()

2020-12-28 Thread Anshuman Gupta
On 2020-12-22 at 20:19:48 +0530, Jani Nikula wrote: > Add a "reinit" call to hide some more pps functions, and clean up the > callers. A minor functional change is not holding the pps lock across > the whole operation in intel_dp_encoder_reset, but instead doing it in > two steps. > > Signed-off-b

Re: [Intel-gfx] [PATCH 07/13] drm/i915/pps: add higher level intel_pps_init() call

2020-12-28 Thread Anshuman Gupta
On 2020-12-22 at 20:19:47 +0530, Jani Nikula wrote: > Add a new init call to be called only once, unlike some of the other > various init calls. This lets us hide more functions within intel_pps.c. > > Signed-off-by: Jani Nikula Looks good to me. Reviewed-by: Anshuman Gupta > --- > drivers/gpu/

Re: [Intel-gfx] [PATCH 06/13] drm/i915/pps: abstract intel_pps_vdd_off_sync

2020-12-28 Thread Anshuman Gupta
On 2020-12-22 at 20:19:46 +0530, Jani Nikula wrote: > Add a locked version of intel_pps_vdd_off_sync_unlocked() that does > everything the callers expect it to. > > Signed-off-by: Jani Nikula > --- > drivers/gpu/drm/i915/display/intel_dp.c | 31 +++- > drivers/gpu/drm/i915/d

Re: [Intel-gfx] [PATCH 05/13] drm/i915/pps: rename edp_panel_* to intel_pps_*_unlocked

2020-12-28 Thread Anshuman Gupta
On 2020-12-22 at 20:19:45 +0530, Jani Nikula wrote: > Follow the usual naming pattern for functions, both for the prefix and > the _unlocked suffix for functions that expect the lock to be held when IMHO referring * pps lock * would be good in commit log. Thanks, Anshuman. > calling. > > Signed-o

Re: [Intel-gfx] [PATCH 04/13] drm/i915/pps: rename intel_edp_panel_* to intel_pps_*

2020-12-28 Thread Anshuman Gupta
On 2020-12-22 at 20:19:44 +0530, Jani Nikula wrote: > Follow the usual naming pattern for functions. We don't need to repeat > "panel" here. > > Follow the usual naming pattern for functions. > > Signed-off-by: Jani Nikula > --- > drivers/gpu/drm/i915/display/intel_ddi.c | 8 > driver

Re: [Intel-gfx] [PATCH 03/13] drm/i915/pps: rename intel_edp_backlight_* to intel_pps_backlight_*

2020-12-28 Thread Anshuman Gupta
On 2020-12-22 at 20:19:43 +0530, Jani Nikula wrote: > Follow the usual naming pattern for functions. > > Signed-off-by: Jani Nikula Looks good to me. Reviewed-by: Anshuman Gupta > --- > drivers/gpu/drm/i915/display/intel_dp.c | 6 +++--- > drivers/gpu/drm/i915/display/intel_pps.c | 10 +--

[Intel-gfx] [PATCH 06/54] drm/i915: Drop i915_request.lock requirement for intel_rps_boost()

2020-12-28 Thread Chris Wilson
Since we use a flag within i915_request.flags to indicate when we have boosted the request (so that we only apply the boost) once, this can be used as the serialisation with i915_request_retire() to avoid having to explicitly take the i915_request.lock which is more heavily contended. Signed-off-b

[Intel-gfx] [PATCH 47/54] drm/i915/gt: Couple tasklet scheduling for all CS interrupts

2020-12-28 Thread Chris Wilson
If any engine asks for the tasklet to be kicked from the CS interrupt, do so. Currently, this is used by the execlists scheduler backends to feed in the next request to the HW, and similarly could be used by a ring scheduler, as will be seen in the next patch. Signed-off-by: Chris Wilson Reviewed

[Intel-gfx] [PATCH 32/54] drm/i915: Replace priolist rbtree with a skiplist

2020-12-28 Thread Chris Wilson
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 occurs between picking a request for the priolist a

[Intel-gfx] [PATCH 01/54] drm/i915/gt: Cancel submitted requests upon context reset

2020-12-28 Thread Chris Wilson
Since we process schedule-in of a context after submitting the request, if we decide to reset the context at that time, we also have to cancel the requets we have marked for submission. Signed-off-by: Chris Wilson --- .../drm/i915/gt/intel_execlists_submission.c | 22 ++- driver

[Intel-gfx] [PATCH 40/54] drm/i915/gt: Wrap intel_timeline.has_initial_breadcrumb

2020-12-28 Thread Chris Wilson
In preparation for removing the has_initial_breadcrumb field, add a helper function for the existing callers. Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala --- drivers/gpu/drm/i915/gt/gen8_engine_cs.c| 2 +- drivers/gpu/drm/i915/gt/intel_ring_submission.c | 4 ++-- drivers/gpu/

[Intel-gfx] [PATCH 10/54] drm/i915/gt: Drop atomic for engine->fw_active tracking

2020-12-28 Thread Chris Wilson
Since schedule-in/out is now entirely serialised by the tasklet bitlock, we do not need to worry about concurrent in/out operations and so reduce the atomic operations to plain instructions. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gt/intel_engine_cs.c| 2 +- drivers/gpu/

[Intel-gfx] [PATCH 25/54] drm/i915: Extract request rewinding from execlists

2020-12-28 Thread Chris Wilson
In the process of preparing to reuse the request submission logic for other backends, lift it out of the execlists backend. While this operates on the common structs, we do have a bit of backend knowledge, which is harmless for !lrc but still unsightly. Signed-off-by: Chris Wilson --- drivers/g

[Intel-gfx] [PATCH 21/54] drm/i915/selftests: Measure set-priority duration

2020-12-28 Thread Chris Wilson
As a topological sort, we expect it to run in linear graph time, O(V+E). In removing the recursion, it is no longer a DFS but rather a BFS, and performs as O(VE). Let's demonstrate how bad this is with a few examples, and build a few test cases to verify a potential fix. Signed-off-by: Chris Wilso

[Intel-gfx] [PATCH 13/54] drm/i915/gt: Do not suspend bonded requests if one hangs

2020-12-28 Thread Chris Wilson
Treat the dependency between bonded requests as weak and leave the remainder of the pair on the GPU if one hangs. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/i915/gt/intel_execlists

[Intel-gfx] [PATCH 39/54] drm/i915: Bump default timeslicing quantum to 5ms

2020-12-28 Thread Chris Wilson
Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/Kconfig.profile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/Kconfig.profile b/drivers/gpu/drm/i915/Kconfig.profile index 35bbe2b80596..3eacea42b19f 100644 --- a/drivers/gpu/drm/i915/Kconfig.profile

[Intel-gfx] [PATCH 12/54] drm/i915/gt: Convert stats.active to plain unsigned int

2020-12-28 Thread Chris Wilson
As context-in/out is now always serialised, we do not have to worry about concurrent enabling/disable of the busy-stats and can reduce the atomic_t active to a plain unsigned int, and the seqlock to a seqcount. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gt/intel_engine_cs.c| 8 ++-

[Intel-gfx] [PATCH 02/54] drm/i915/gt: Pull context closure check from request submit to schedule-in

2020-12-28 Thread Chris Wilson
We only need to evaluate the current status of the context when it is scheduled in, we will force a reschedule when the context is closed propagating the change to inflight contexts. Signed-off-by: Chris Wilson Cc: Matthew Brost --- drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 4

[Intel-gfx] [PATCH 17/54] drm/i915: Remove I915_USER_PRIORITY_SHIFT

2020-12-28 Thread Chris Wilson
As we do not have any internal priority levels, the priority can be set directed from the user values. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/display/intel_display.c | 4 +- drivers/gpu/drm/i915/gem/i915_gem_context.c | 6 +-- .../i915/gem/selftests/i915_gem_object_blt.c | 4

[Intel-gfx] [PATCH 35/54] drm/i915/gt: Specify a deadline for the heartbeat

2020-12-28 Thread Chris Wilson
As we know when we expect the heartbeat to be checked for completion, pass this information along as its deadline. We still do not complain if the deadline is missed, at least until we have tried a few times, but it will allow for quicker hang detection on systems where deadlines are adhered to. S

[Intel-gfx] [PATCH 30/54] drm/i915: Move scheduler queue

2020-12-28 Thread Chris Wilson
Extract the scheduling queue from "execlists" into the per-engine scheduling structs, for reuse by other backends. Signed-off-by: Chris Wilson --- .../gpu/drm/i915/gem/i915_gem_context_types.h | 2 +- drivers/gpu/drm/i915/gem/i915_gem_wait.c | 1 + drivers/gpu/drm/i915/gt/intel_engine_cs.

[Intel-gfx] [PATCH 45/54] drm/i915/gt: Use ppHWSP for unshared non-semaphore related timelines

2020-12-28 Thread Chris Wilson
When we are not using semaphores with a context/engine, we can simply reuse the same seqno location across wraps, but we still require each timeline to have its own address. For LRC submission, each context is prefixed by a per-process HWSP, which provides us with a unique location for each context

[Intel-gfx] [PATCH 31/54] drm/i915: Move tasklet from execlists to sched

2020-12-28 Thread Chris Wilson
Move the scheduling tasklists out of the execlists backend into the per-engine scheduling bookkeeping. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gt/intel_engine.h| 14 drivers/gpu/drm/i915/gt/intel_engine_cs.c | 11 ++-- drivers/gpu/drm/i915/gt/intel_engine_types.h |

[Intel-gfx] [PATCH 53/54] drm/i915/gt: Enable ring scheduling for gen6/7

2020-12-28 Thread Chris Wilson
Switch over from FIFO global submission to the priority-sorted topographical scheduler. At the cost of more busy work on the CPU to keep the GPU supplied with the next packet of requests, this allows us to reorder requests around submission stalls. This also enables the timer based RPS, with the e

[Intel-gfx] [PATCH 19/54] drm/i915: Teach the i915_dependency to use a double-lock

2020-12-28 Thread Chris Wilson
Currently, we construct and teardown the i915_dependency chains using a global spinlock. As the lists are entirely local, it should be possible to use an double-lock with an explicit nesting [signaler -> waiter, always] and so avoid the costly convenience of a global spinlock. Signed-off-by: Chris

[Intel-gfx] [PATCH 18/54] drm/i915: Replace engine->schedule() with a known request operation

2020-12-28 Thread Chris Wilson
Looking to the future, we want to set the scheduling attributes explicitly and so replace the generic engine->schedule() with the more direct i915_request_set_priority() What it loses in removing the 'schedule' name from the function, it gains in having an explicit entry point with a stated goal.

[Intel-gfx] [PATCH 04/54] drm/i915: Mark up protected uses of 'i915_request_completed'

2020-12-28 Thread Chris Wilson
When we know that we are inside the timeline mutex, or inside the submission flow (under active.lock or the holder's rcu lock), we know that the rq->hwsp is stable and we can use the simpler direct version. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gem/i915_gem_context.c | 2 +-

[Intel-gfx] [PATCH 43/54] drm/i915/gt: Use indices for writing into relative timelines

2020-12-28 Thread Chris Wilson
Relative timelines are relative to either the global or per-process HWSP, and so we can replace the absolute addressing with store-index variants for position invariance. Signed-off-by: Chris Wilson Reviewed-by: Matthew Brost --- drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 98 +--

[Intel-gfx] [PATCH 08/54] drm/i915/gem: Reduce ctx->engines_mutex for get_engines()

2020-12-28 Thread Chris Wilson
Take a snapshot of the ctx->engines, so we can avoid taking the ctx->engines_mutex for a mere read in get_engines(). Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gem/i915_gem_context.c | 39 + 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/drivers/gpu/

[Intel-gfx] [PATCH 16/54] drm/i915: Strip out internal priorities

2020-12-28 Thread Chris Wilson
Since we are not using any internal priority levels, and in the next few patches will introduce a new index for which the optimisation is not so lear cut, discard the small table within the priolist. Signed-off-by: Chris Wilson --- .../gpu/drm/i915/gt/intel_engine_heartbeat.c | 2 +- .../drm/i

[Intel-gfx] [PATCH 20/54] drm/i915: Restructure priority inheritance

2020-12-28 Thread Chris Wilson
In anticipation of wanting to be able to call pi from underneath an engine's active.lock, rework the priority inheritance to primarily work along an engine's priority queue, delegating any other engine that the chain may traverse to a worker. This reduces the global spinlock from governing the mult

[Intel-gfx] [PATCH 24/54] drm/i915: Extract request submission from execlists

2020-12-28 Thread Chris Wilson
In the process of preparing to reuse the request submission logic for other backends, lift it out of the execlists backend. It already operates on the common structs, so just a matter of moving and renaming. Signed-off-by: Chris Wilson --- .../drm/i915/gt/intel_execlists_submission.c | 55 +

[Intel-gfx] [PATCH 49/54] drm/i915/gt: Use client timeline address for seqno writes

2020-12-28 Thread Chris Wilson
If we allow for per-client timelines, even with legacy ring submission, we open the door to a world full of possiblities [scheduling and semaphores]. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gt/gen6_engine_cs.c | 89 +--- drivers/gpu/drm/i915/gt/gen8_engine_cs.c |

[Intel-gfx] [PATCH 50/54] drm/i915/gt: Infrastructure for ring scheduling

2020-12-28 Thread Chris Wilson
Build a bare bones scheduler to sit on top the global legacy ringbuffer submission. This virtual execlists scheme should be applicable to all older platforms. A key problem we have with the legacy ring buffer submission is that it only allows for FIFO queuing. All clients share the global request

[Intel-gfx] [PATCH 36/54] drm/i915: Extend the priority boosting for the display with a deadline

2020-12-28 Thread Chris Wilson
For a modeset/pageflip, there is a very precise deadline by which the frame must be completed in order to hit the vblank and be shown. While we don't pass along that exact information, we can at least inform the scheduler that this request-chain needs to be completed asap. Signed-off-by: Chris Wil

[Intel-gfx] [PATCH 46/54] Restore "drm/i915: drop engine_pin/unpin_breadcrumbs_irq"

2020-12-28 Thread Chris Wilson
This was removed in commit 478ffad6d690 ("drm/i915: drop engine_pin/unpin_breadcrumbs_irq") as the last user had been removed, but now there is a promise of a new user in the next patch. Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala --- drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 24

[Intel-gfx] [PATCH 05/54] drm/i915: Drop i915_request.lock serialisation around await_start

2020-12-28 Thread Chris Wilson
Originally, we used the signal->lock as a means of following the previous link in its timeline and peeking at the previous fence. However, we have replaced the explicit serialisation with a series of very careful probes that anticipate the links being deleted and the fences recycled before we are a

[Intel-gfx] [PATCH 28/54] drm/i915: Fix the iterative dfs for defering requests

2020-12-28 Thread Chris Wilson
The current implementation of walking the children of a deferred requests lacks the backtracking required to reduce the dfs to linear. Having pulled it from execlists into the common layer, we can reuse the dfs code for priority inheritance. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i

[Intel-gfx] [PATCH 03/54] drm/i915/gem: Peek at the inflight context

2020-12-28 Thread Chris Wilson
If supported by the backend, we can quickly look at the context's inflight engine rather than search along the active list to confirm. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gem/i915_gem_context.c | 3 +++ drivers/gpu/drm/i915/gt/intel_context.h | 10

[Intel-gfx] [PATCH 07/54] drm/i915/gem: Reduce ctx->engine_mutex for reading the clone source

2020-12-28 Thread Chris Wilson
When cloning the engines from the source context, we need to ensure that the engines are not freed as we copy them, and that the flags we clone from the source correspond with the engines we copy across. To do this we need only take a reference to the src->engines, rather than hold the src->engine_

[Intel-gfx] [PATCH 29/54] drm/i915: Move common active lists from engine to i915_scheduler

2020-12-28 Thread Chris Wilson
Extract the scheduler lists into a related structure, stop sprawling over struct intel_engine_cs Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gt/intel_engine_cs.c | 26 +- drivers/gpu/drm/i915/gt/intel_engine_types.h | 8 + .../drm/i915/gt/intel_execlists_submission

[Intel-gfx] [PATCH 42/54] drm/i915/gt: Add timeline "mode"

2020-12-28 Thread Chris Wilson
Explicitly differentiate between the absolute and relative timelines, and the global HWSP and ppHWSP relative offsets. When using a timeline that is relative to a known status page, we can replace the absolute addressing in the commands with indexed variants. Signed-off-by: Chris Wilson Reviewed-

[Intel-gfx] [PATCH 14/54] drm/i915/gt: Remove timeslice suppression

2020-12-28 Thread Chris Wilson
In the next patch, we remove the strict priority system and continuously re-evaluate the relative priority of tasks. As such we need to enable the timeslice whenever there is more than one context in the pipeline. This simplifies the decision and removes some of the tweaks to suppress timeslicing,

[Intel-gfx] [PATCH 44/54] drm/i915/selftests: Exercise relative timeline modes

2020-12-28 Thread Chris Wilson
A quick test to verify that the backend accepts each type of timeline and can use them to track and control request emission. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gt/selftest_timeline.c | 105 1 file changed, 105 insertions(+) diff --git a/drivers/gpu/drm/i9

[Intel-gfx] [PATCH 15/54] drm/i915/gt: Skip over completed active execlists, again

2020-12-28 Thread Chris Wilson
Now that we are careful to always force-restore contexts upon rewinding (where necessary), we can restore our optimisation to skip over completed active execlists when dequeuing. Referenecs: 35f3fd8182ba ("drm/i915/execlists: Workaround switching back to a completed context") References: 8ab3a381

[Intel-gfx] [PATCH 34/54] drm/i915: Fair low-latency scheduling

2020-12-28 Thread Chris Wilson
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 bay, and allowed us to dynamically boost prio

[Intel-gfx] [PATCH 26/54] drm/i915: Extract request suspension from the execlists backend

2020-12-28 Thread Chris Wilson
Make the ability to suspend and resume a request and its dependents generic. Signed-off-by: Chris Wilson --- .../drm/i915/gt/intel_execlists_submission.c | 148 +- drivers/gpu/drm/i915/i915_scheduler.c | 120 ++ drivers/gpu/drm/i915/i915_scheduler.h |

[Intel-gfx] [PATCH 33/54] drm/i915: Wrap cmpxchg64 with try_cmpxchg64() helper

2020-12-28 Thread Chris Wilson
Wrap cmpxchg64 with a try_cmpxchg()-esque helper. Hiding the old-value dance in the helper allows for cleaner code. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_utils.h | 32 +++ 1 file changed, 32 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_uti

[Intel-gfx] [PATCH 22/54] drm/i915/selftests: Exercise priority inheritance around an engine loop

2020-12-28 Thread Chris Wilson
Exercise rescheduling priority inheritance around a sequence of requests that wrap around all the engines. Signed-off-by: Chris Wilson --- .../gpu/drm/i915/selftests/i915_scheduler.c | 219 ++ 1 file changed, 219 insertions(+) diff --git a/drivers/gpu/drm/i915/selftests/i915_s

[Intel-gfx] [PATCH 51/54] drm/i915/gt: Enable busy-stats for ring-scheduler

2020-12-28 Thread Chris Wilson
Couple up the context in/out accounting to record how long each engine is busy handling requests. This is exposed to userspace for more accurate measurements, and also enables our soft-rps timer. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gt/intel_ring_scheduler.c | 6 ++ 1 file ch

[Intel-gfx] [PATCH 38/54] drm/i915: Move saturated workload detection back to the context

2020-12-28 Thread Chris Wilson
When we introduced the saturated workload detection to tell us to back off from semaphore usage [semaphores have a noticeable impact on contended bus cycles with the CPU for some heavy workloads], we first introduced it as a per-context tracker. This allows individual contexts to try and optimise t

[Intel-gfx] [PATCH 37/54] drm/i915/gt: Support virtual engine queues

2020-12-28 Thread Chris Wilson
Allow multiple requests to be queued unto a virtual engine, whereas before we only allowed a single request to be queued at a time. The advantage of keeping just one request in the queue was to ensure that we always decided late which engine to use. However, with the introduction of the virtual dea

[Intel-gfx] [PATCH 11/54] drm/i915/gt: Extract busy-stats for ring-scheduler

2020-12-28 Thread Chris Wilson
Lift the busy-stats context-in/out implementation out of intel_lrc, so that we can reuse it for other scheduler implementations. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gt/intel_engine_stats.h | 49 +++ .../drm/i915/gt/intel_execlists_submission.c | 34 +---

[Intel-gfx] [PATCH 48/54] drm/i915/gt: Support creation of 'internal' rings

2020-12-28 Thread Chris Wilson
To support legacy ring buffer scheduling, we want a virtual ringbuffer for each client. These rings are purely for holding the requests as they are being constructed on the CPU and never accessed by the GPU, so they should not be bound into the GGTT, and we can use plain old WB mapped pages. As th

[Intel-gfx] [PATCH 27/54] drm/i915: Extract the ability to defer and rerun a request later

2020-12-28 Thread Chris Wilson
Lift the ability to defer a request until later from execlists into the common layer. Signed-off-by: Chris Wilson --- .../drm/i915/gt/intel_execlists_submission.c | 55 ++-- drivers/gpu/drm/i915/i915_scheduler.c | 66 --- drivers/gpu/drm/i915/i915_scheduler.h

[Intel-gfx] [PATCH 09/54] drm/i915: Reduce test_and_set_bit to set_bit in i915_request_submit()

2020-12-28 Thread Chris Wilson
Avoid the full blown memory barrier of test_and_set_bit() by noting the completed request and removing it from the lists. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_request.c | 16 +--- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/i915/

[Intel-gfx] [PATCH 23/54] drm/i915: Improve DFS for priority inheritance

2020-12-28 Thread Chris Wilson
The core of the scheduling algorithm is that we compute the topological order of the fence DAG. Knowing that we have a DAG, we should be able to use a DFS to compute the topological sort in linear time. However, during the conversion of the recursive algorithm into an iterative one, the memorizatio

[Intel-gfx] [PATCH 52/54] drm/i915/gt: Implement ring scheduler for gen6/7

2020-12-28 Thread Chris Wilson
A key prolem with legacy ring buffer submission is that it is an inheret FIFO queue across all clients; if one blocks, they all block. A scheduler allows us to avoid that limitation, and ensures that all clients can submit in parallel, removing the resource contention of the global ringbuffer. Hav

[Intel-gfx] [PATCH 54/54] drm/i915/gt: Limit C-states while waiting for requests

2020-12-28 Thread Chris Wilson
Allow the sysadmin to specify whether we should prevent the CPU from entering higher C-states while waiting for the CPU, in order to reduce the latency of request completions and so speed up client continuations. The target dma latency can be adjusted per-engine using, /sys/class/drm/card

[Intel-gfx] [PATCH 41/54] drm/i915/gt: Track timeline GGTT offset separately from subpage offset

2020-12-28 Thread Chris Wilson
Currently we know that the timeline status page is at most a page in size, and so we can preserve the lower 12bits of the offset when relocating the status page in the GGTT. If we want to use a larger object, such as the context state, we may not necessarily use a position within the first page and

[Intel-gfx] i915/framebuffer: Is it possible to support frame buffer console in two panels with extension mode?

2020-12-28 Thread Jiun
Hi Sir, I am using the new Intel Elkhart Lake SKU1 platform in framebuffer console mode. Is there any chance to using frame buffer console in two display with extension mode? and in different resolution? I have tested in Ubuntu 20.04 kernel 5.10.2 with i915.force_probe=4555 boot config, the grap

Re: [Intel-gfx] [PATCH 01/13] drm/i915/pps: abstract panel power sequencer from intel_dp.c

2020-12-28 Thread Gupta, Anshuman
> -Original Message- > From: Intel-gfx On Behalf Of Jani > Nikula > Sent: Tuesday, December 22, 2020 8:20 PM > To: intel-gfx@lists.freedesktop.org > Cc: Nikula, Jani > Subject: [Intel-gfx] [PATCH 01/13] drm/i915/pps: abstract panel power > sequencer from intel_dp.c > > In a long overdu

Re: [Intel-gfx] [PATCH 02/13] drm/i915/pps: rename pps_{, un}lock -> intel_pps_{, un}lock

2020-12-28 Thread Gupta, Anshuman
> -Original Message- > From: Intel-gfx On Behalf Of Jani > Nikula > Sent: Tuesday, December 22, 2020 8:20 PM > To: intel-gfx@lists.freedesktop.org > Cc: Nikula, Jani > Subject: [Intel-gfx] [PATCH 02/13] drm/i915/pps: rename pps_{, un}lock -> > intel_pps_{, un}lock > > Start following

[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/cml : Add TGP PCH support (rev2)

2020-12-28 Thread Patchwork
== Series Details == Series: drm/i915/cml : Add TGP PCH support (rev2) URL : https://patchwork.freedesktop.org/series/85013/ State : failure == Summary == CI Bug Log - changes from CI_DRM_9528_full -> Patchwork_19218_full Summary ---