[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling()

2020-08-07 Thread Patchwork
== Series Details == Series: drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() URL : https://patchwork.freedesktop.org/series/80364/ State : failure == Summary == CI Bug Log - changes from CI_DRM_8850_full -> Patchwork_18317_full ===

Re: [Intel-gfx] Time, where did it go?

2020-08-07 Thread Chris Wilson
Quoting Dave Airlie (2020-08-04 22:45:25) > On Mon, 3 Aug 2020 at 05:36, Chris Wilson wrote: > > > > Quoting Dave Airlie (2020-08-02 18:56:44) > > > On Mon, 3 Aug 2020 at 02:44, Chris Wilson > > > wrote: > > > > > > > > Lots of small incremental improvements to reduce execution latency > > > > w

Re: [Intel-gfx] [PATCH i-g-t] i915/gem_caching: Fix mmap protection for writes

2020-08-07 Thread Grzegorzek, Dominik
On Thu, 2020-08-06 at 19:31 +0100, Chris Wilson wrote: > As we are about to write into the mmap'ed pointer using memset, we > need > to specify PROT_WRITE [if we only say PROT_READ, then the memset > should > generate a SIGSEGV]. > Thank you for fixing that. > Fixes: 897d21d14e99 ("i915/gem_cachin

[Intel-gfx] [PATCH 6/7] drm/i915/gt: Split the breadcrumb spinlock between global and contexts

2020-08-07 Thread Chris Wilson
As we funnel more and more contexts into the breadcrumbs on an engine, the hold time of b->irq_lock grows. As we may then contend with the b->irq_lock during request submission, this increases the burden upon the engine->active.lock and so directly impacts both our execution latency and client late

[Intel-gfx] [PATCH 3/7] drm/i915/gt: Defer enabling the breadcrumb interrupt to after submission

2020-08-07 Thread Chris Wilson
Move the register slow register write and readback from out of the critical path for execlists submission and delay it until the following worker, shaving off around 200us. Note that the same signal_irq_work() is allowed to run concurrently on each CPU (but it will only be queued once, once running

[Intel-gfx] [PATCH 4/7] drm/i915/gt: Track signaled breadcrumbs outside of the breadcrumb spinlock

2020-08-07 Thread Chris Wilson
Make b->signaled_requests a lockless-list so that we can manipulate it outside of the b->irq_lock. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 33 --- .../gpu/drm/i915/gt/intel_breadcrumbs_types.h | 2 +- drivers/gpu/drm/i915/i915_request.h

[Intel-gfx] [PATCH 5/7] drm/i915/gt: Don't cancel the interrupt shadow too early

2020-08-07 Thread Chris Wilson
We currently want to keep the interrupt enabled until the interrupt after which we have no more work to do. This heuristic was broken by us kicking the irq-work on adding a completed request without attaching a signaler -- hence it appearing to the irq-worker that an interrupt had fired when we wer

[Intel-gfx] [PATCH 2/7] drm/i915/gt: Protect context lifetime with RCU

2020-08-07 Thread Chris Wilson
Allow a brief period for continued access to a dead intel_context by deferring the release of the struct until after an RCU grace period. As we are using a dedicated slab cache for the contexts, we can defer the release of the slab pages via RCU, with the caveat that individual structs may be reuse

[Intel-gfx] [PATCH 7/7] drm/i915/gt: Free stale request on destroying the virtual engine

2020-08-07 Thread Chris Wilson
Since preempt-to-busy, we may unsubmit a request while it is still on the HW and completes asynchronously. That means it may be retired and in the process destroy the virtual engine (as the user has closed their context), but that engine may still be holding onto the unsubmitted compelted request.

[Intel-gfx] [PATCH 1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling()

2020-08-07 Thread Chris Wilson
As the last user was eliminated in commit e21fecdcde40 ("drm/i915/gt: Distinguish the virtual breadcrumbs from the irq breadcrumbs"), we can remove the function. One less implementation detail creeping beyond its scope. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin --- drivers/gpu/drm/i915/gt/

Re: [Intel-gfx] [PATCH 6/7] drm/i915/gt: Split the breadcrumb spinlock between global and contexts

2020-08-07 Thread Chris Wilson
Quoting Chris Wilson (2020-08-07 09:32:55) > As we funnel more and more contexts into the breadcrumbs on an engine, > the hold time of b->irq_lock grows. As we may then contend with the > b->irq_lock during request submission, this increases the burden upon > the engine->active.lock and so directly

Re: [Intel-gfx] [PATCH 3/7] drm/i915/gt: Defer enabling the breadcrumb interrupt to after submission

2020-08-07 Thread Chris Wilson
Quoting Chris Wilson (2020-08-07 09:32:52) > Move the register slow register write and readback from out of the > critical path for execlists submission and delay it until the following > worker, shaving off around 200us. Note that the same signal_irq_work() is > allowed to run concurrently on each

[Intel-gfx] [PATCH i-g-t] i915/gem_exec_fence: Use default-context for syncobj-timeline-wait

2020-08-07 Thread Chris Wilson
syncobj-timeline-wait is only exercising waits on the syncobj along a single timeline, for which it can use the universally available default context, and so not try and fail to create a HW context on very old platforms. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2308 Signed-off-by:

[Intel-gfx] [PATCH i-g-t] i915/gem_exec_fence: Use default-context for syncobj-timeline-wait

2020-08-07 Thread Chris Wilson
syncobj-timeline-wait is only exercising waits on the syncobj along a single timeline, for which it can use the universally available default context, and so not try and fail to create a HW context on very old platforms. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2308 Signed-off-by:

Re: [Intel-gfx] [PATCH i-g-t] i915/gem_exec_fence: Use default-context for syncobj-timeline-wait

2020-08-07 Thread Lionel Landwerlin
On 07/08/2020 11:45, Chris Wilson wrote: syncobj-timeline-wait is only exercising waits on the syncobj along a single timeline, for which it can use the universally available default context, and so not try and fail to create a HW context on very old platforms. Closes: https://gitlab.freedesktop

Re: [Intel-gfx] [igt-dev] [PATCH i-g-t] i915/gem_exec_fence: Use default-context for syncobj-timeline-wait

2020-08-07 Thread Chris Wilson
Quoting Lionel Landwerlin (2020-08-07 10:00:14) > On 07/08/2020 11:45, Chris Wilson wrote: > > syncobj-timeline-wait is only exercising waits on the syncobj along a > > single timeline, for which it can use the universally available default > > context, and so not try and fail to create a HW contex

[Intel-gfx] [PATCH i-g-t v2 08/16] tests/core_hotunplug: Handle device close errors

2020-08-07 Thread Janusz Krzysztofik
The test now ignores device close errors. Those errors are believed to have no influence on device health so there is no need to process them the same way as we mostly do on errors, i.e., notify CI about a problem via igt_abort. However, those errors may indicate issues with the test itself. Mor

[Intel-gfx] [PATCH i-g-t v2 02/16] tests/core_hotunplug: Constify dev_bus_addr string

2020-08-07 Thread Janusz Krzysztofik
Device bus address structure field is always initialized with a pointer to a substring of the device sysfs path and never used for its modification. Declare it as a constant string. v2: Rebase on current upstream master. Signed-off-by: Janusz Krzysztofik Reviewed-by: Michał Winiarski --- test

[Intel-gfx] [PATCH i-g-t v2 11/16] tests/core_hotunplug: Follow failed subtests with health checks

2020-08-07 Thread Janusz Krzysztofik
Subtests now forcibly call or request igt_abort on failures in order to avoid silently leaving an exercised device in an unusable state. However, a failure inside a subtest doesn't always mean the device is no longer working correctly and reboot is needed. On the other hand, if a subtest just fail

[Intel-gfx] [PATCH i-g-t v2 09/16] tests/core_hotunplug: Prepare invariant data once per test run

2020-08-07 Thread Janusz Krzysztofik
Each subtest now calls a prepare() helper which opens a couple of files required by that subtest. Those files are then closed after use, either directly from the subtest body, or indirectly from inside one of helper functions called during the subtest execution. That approach not only makes lifec

[Intel-gfx] [PATCH i-g-t v2 10/16] tests/core_hotunplug: Skip selectively on sysfs close errors

2020-08-07 Thread Janusz Krzysztofik
Since we no longer open a device DRM sysfs node, only a PCI one, driver unbind operations are no longer affected by missed or unsuccessful sysfs file close attempts. Skip only affected subtests if that happens. v2: Rebase on current upstream master. Signed-off-by: Janusz Krzysztofik Reviewed-by

[Intel-gfx] [PATCH i-g-t v2 15/16] tests/core_hotunplug: Explicitly ignore unused return values

2020-08-07 Thread Janusz Krzysztofik
Some return values are not useful and can be ignored. Wrap those cases inside igt_ignore_warn(), not only to make sure compilers are happy but also to clearly document our decisions. v2: Rebase on current upstream master. Signed-off-by: Janusz Krzysztofik Reviewed-by: Michał Winiarski --- tes

[Intel-gfx] [PATCH i-g-t v2 01/16] tests/core_hotunplug: Use igt_assert_fd()

2020-08-07 Thread Janusz Krzysztofik
There is a new library helper that asserts validity of open file descriptors. Use it instead of open coding. v2: Rebase on current upstream master. Signed-off-by: Janusz Krzysztofik Reviewed-by: Michał Winiarski --- tests/core_hotunplug.c | 10 +- 1 file changed, 5 insertions(+), 5 de

[Intel-gfx] [PATCH i-g-t v2 06/16] tests/core_hotunplug: Maintain a single data structure instance

2020-08-07 Thread Janusz Krzysztofik
The following changes to the test are planned: - avoid global variables, - skip subtest after device close errors, - prepare invariant data only once per test run, - move device health checks to igt_fixture sections, - try to recover from subtest failures instead of aborting. For that to be possibl

[Intel-gfx] [PATCH i-g-t v2 03/16] tests/core_hotunplug: Consolidate duplicated debug messages

2020-08-07 Thread Janusz Krzysztofik
Some debug messages which designate specific test operations, or their greater parts at least, sound always the same, no matter which subtest they are called from. Emit them, possibly updated with subtest specified modifiers, from inside respective helpers instead of duplicating them in subtest bo

[Intel-gfx] [PATCH i-g-t v2 12/16] tests/core_hotunplug: Fail subtests on device close errors

2020-08-07 Thread Janusz Krzysztofik
Since health checks are now run from follow-up fixture sections, it is safe to fail subtests without the need to abort the test execution. Do that on device close errors instead of emitting warnings. v2: Rebase on current upstream master. Signed-off-by: Janusz Krzysztofik Reviewed-by: Michał Wi

[Intel-gfx] [PATCH i-g-t v2 00/16] tests/core_hotunplug: Fixes and enhancements

2020-08-07 Thread Janusz Krzysztofik
Clean up the test code and unblock unbind variants. @Michał: Since most v2 updates are trivial, I've preserved your Reviewd-by: except for patch 11/16 "Follow failed subtests with health checks" - please have a look and confirm if you are still OK with it. Thanks, Janusz Janusz Krzysztofik (16):

[Intel-gfx] [PATCH i-g-t v2 14/16] tests/core_hotunplug: Assert expected device presence/absence

2020-08-07 Thread Janusz Krzysztofik
Don't rely on successful write to sysfs control files, assert existence / non-existence of a respective device sysfs node as well. v2: Rebase on current upstream master. Signed-off-by: Janusz Krzysztofik Reviewed-by: Michał Winiarski --- tests/core_hotunplug.c | 14 ++ 1 file chang

[Intel-gfx] [PATCH i-g-t v2 05/16] tests/core_hotunplug: Fix missing newline

2020-08-07 Thread Janusz Krzysztofik
A trailing newline is missing from one of fatal error messages, fix it. v2: Rebase on current upstream master. Signed-off-by: Janusz Krzysztofik Reviewed-by: Michał Winiarski --- tests/core_hotunplug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/core_hotunplug.c b

[Intel-gfx] [PATCH i-g-t v2 13/16] tests/core_hotunplug: Process return values of sysfs operations

2020-08-07 Thread Janusz Krzysztofik
Return values of driver bind/unbind / device remove/recover sysfs operations are now ignored. Assert their correctness. v2: Add trailing newlines missing from igt_assert messages, - rebase on current upstream master. Signed-off-by: Janusz Krzysztofik Reviewed-by: Michał Winiarski --- tests/

[Intel-gfx] [PATCH i-g-t v2 04/16] tests/core_hotunplug: Assert successful device filter application

2020-08-07 Thread Janusz Krzysztofik
Return value of igt_device_filter_add() representing a number of successfully installed device filters is now ignored. Fail if not 1. v2: Rebase on current upstream master. Signed-off-by: Janusz Krzysztofik Reviewed-by: Michał Winiarski --- tests/core_hotunplug.c | 2 +- 1 file changed, 1 ins

[Intel-gfx] [PATCH i-g-t v2 07/16] tests/core_hotunplug: Pass errors via a data structure field

2020-08-07 Thread Janusz Krzysztofik
A pointer to fatal error messages can be passed around via hotunplug structure, no need to declare it as global. v2: Rebase on current upstream master. Signed-off-by: Janusz Krzysztofik Reviewed-by: Michał Winiarski --- tests/core_hotunplug.c | 92 +- 1

[Intel-gfx] [PATCH i-g-t 16/16] tests/core_hotunplug: Un-blocklist *unbind* subtests

2020-08-07 Thread Janusz Krzysztofik
Subtests which don't remove the device, only unbind the driver from it, seem relatively safe and harmless for CI. Remove them from the CI blocklist. Signed-off-by: Janusz Krzysztofik --- tests/intel-ci/blacklist.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/intel

Re: [Intel-gfx] [RFC 33/60] drm/i915/lmem: support pwrite

2020-08-07 Thread Joonas Lahtinen
Quoting Dave Airlie (2020-07-20 00:52:19) > On Thu, 16 Jul 2020 at 20:11, Matthew Auld wrote: > > > > On 16/07/2020 01:43, Dave Airlie wrote: > > > On Wed, 15 Jul 2020 at 00:35, Matthew Auld wrote: > > >> > > >> On 13/07/2020 06:09, Dave Airlie wrote: > > >>> On Fri, 10 Jul 2020 at 22:00, Matthew

Re: [Intel-gfx] [RFC 53/60] drm/i915: Create stolen memory region from local memory

2020-08-07 Thread Joonas Lahtinen
Quoting Dave Airlie (2020-07-14 22:26:16) > On Wed, 15 Jul 2020 at 02:57, Tang, CQ wrote: > > > > > > > > > -Original Message- > > > From: Auld, Matthew > > > Sent: Tuesday, July 14, 2020 8:02 AM > > > To: Dave Airlie > > > Cc: Intel Graphics Development ; Tang, CQ > > > ; Joonas Lahtine

Re: [Intel-gfx] [PATCH 5/6] drm/xen-front: Pass dumb buffer data offset to the backend

2020-08-07 Thread Noralf Trønnes
Den 31.07.2020 14.51, skrev Oleksandr Andrushchenko: > From: Oleksandr Andrushchenko > > While importing a dmabuf it is possible that the data of the buffer > is put with offset which is indicated by the SGT offset. > Respect the offset value and forward it to the backend. > > Signed-off-by: O

Re: [Intel-gfx] [PATCH 3/6] drm/xen-front: Add YUYV to supported formats

2020-08-07 Thread Noralf Trønnes
Den 31.07.2020 14.51, skrev Oleksandr Andrushchenko: > From: Oleksandr Andrushchenko > > Add YUYV to supported formats, so the frontend can work with the > formats used by cameras and other HW. > > Signed-off-by: Oleksandr Andrushchenko > --- Acked-by: Noralf Trønnes ___

Re: [Intel-gfx] [RFC 33/60] drm/i915/lmem: support pwrite

2020-08-07 Thread Joonas Lahtinen
Quoting Dave Airlie (2020-07-13 08:09:30) > On Fri, 10 Jul 2020 at 22:00, Matthew Auld wrote: > > > > We need to add support for pwrite'ing an LMEM object. > > why? DG1 is a discrete GPU, these interfaces we already gross and > overly hacky for integrated, I'd prefer not to drag them across into

Re: [Intel-gfx] [PATCH 1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling()

2020-08-07 Thread Tvrtko Ursulin
On 07/08/2020 09:32, Chris Wilson wrote: As the last user was eliminated in commit e21fecdcde40 ("drm/i915/gt: Distinguish the virtual breadcrumbs from the irq breadcrumbs"), we can remove the function. One less implementation detail creeping beyond its scope. Signed-off-by: Chris Wilson Cc:

[Intel-gfx] [PATCH v6 7/7] drm/i915: Enable async flips in i915

2020-08-07 Thread Karthik B S
Enable asynchronous flips in i915 for gen9+ platforms. v2: -Async flip enablement should be a stand alone patch (Paulo) v3: -Move the patch to the end of the serires (Paulo) v4: -Rebased. v5: -Rebased. v6: -Rebased. Signed-off-by: Karthik B S Signed-off-by: Vandita Kulkarni --- drivers/gpu

[Intel-gfx] [PATCH v6 5/7] drm/i915: Add dedicated plane hook for async flip case

2020-08-07 Thread Karthik B S
This hook is added to avoid writing other plane registers in case of async flips, so that we do not write the double buffered registers during async surface address update. Signed-off-by: Karthik B S Signed-off-by: Vandita Kulkarni --- drivers/gpu/drm/i915/display/intel_sprite.c | 25 ++

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

2020-08-07 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. v2: -Few patches have been squashed and patches have been

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

2020-08-07 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. v2: -Moved the async check above vblank_get as it was causing issues for PSR. v3: -No need to wait for vblank to pass, as this wait was causing a 16ms delay once

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

2020-08-07 Thread Karthik B S
Set the Async Address Update Enable bit in plane ctl when async flip is requested. v2: -Move the Async flip enablement to individual patch (Paulo) v3: -Rebased. v4: -Add separate plane hook for async flip case (Ville) v5: -Rebased. v6: -Move the plane hook to separate patch. (Paulo) -Remov

[Intel-gfx] [PATCH v6 1/7] drm/i915: Add enable/disable flip done and flip done handler

2020-08-07 Thread Karthik B S
Add enable/disable flip done functions and the flip done handler function which handles the flip done interrupt. Enable the flip done interrupt in IER. Enable flip done function is called before writing the surface address register as the write to this register triggers the flip done interrupt F

[Intel-gfx] [PATCH v6 3/7] drm/i915: Add checks specific to async flips

2020-08-07 Thread Karthik B S
If flip is requested on any other plane, reject it. Make sure there is no change in fbc, offset and framebuffer modifiers when async flip is requested. If any of these are modified, reject async flip. v2: -Replace DRM_ERROR (Paulo) -Add check for changes in OFFSET, FBC, RC(Paulo) v3: -Remov

[Intel-gfx] [PATCH v6 6/7] Documentation/gpu: Add asynchronous flip documentation for i915

2020-08-07 Thread Karthik B S
Add the details of the implementation of asynchronous flips for i915. Signed-off-by: Karthik B S Signed-off-by: Vandita Kulkarni --- Documentation/gpu/i915.rst | 6 ++ 1 file changed, 6 insertions(+) diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst index 33cc6ddf8f64..8

Re: [Intel-gfx] [PATCH 2/7] drm/i915/gt: Protect context lifetime with RCU

2020-08-07 Thread Tvrtko Ursulin
On 07/08/2020 09:32, Chris Wilson wrote: Allow a brief period for continued access to a dead intel_context by deferring the release of the struct until after an RCU grace period. As we are using a dedicated slab cache for the contexts, we can defer the release of the slab pages via RCU, with th

Re: [Intel-gfx] [PATCH 2/7] drm/i915/gt: Protect context lifetime with RCU

2020-08-07 Thread Chris Wilson
Quoting Tvrtko Ursulin (2020-08-07 11:08:59) > > On 07/08/2020 09:32, Chris Wilson wrote: > > +static void __intel_context_ctor(void *arg) > > +{ > > + struct intel_context *ce = arg; > > + > > + INIT_LIST_HEAD(&ce->signal_link); > > + INIT_LIST_HEAD(&ce->signals); > > + > > + atom

Re: [Intel-gfx] [PATCH 3/7] drm/i915/gt: Defer enabling the breadcrumb interrupt to after submission

2020-08-07 Thread Tvrtko Ursulin
On 07/08/2020 09:32, Chris Wilson wrote: Move the register slow register write and readback from out of the critical path for execlists submission and delay it until the following worker, shaving off around 200us. Note that the same signal_irq_work() is allowed to run concurrently on each CPU (

Re: [Intel-gfx] [PATCH 4/7] drm/i915/gt: Track signaled breadcrumbs outside of the breadcrumb spinlock

2020-08-07 Thread Tvrtko Ursulin
On 07/08/2020 09:32, Chris Wilson wrote: Make b->signaled_requests a lockless-list so that we can manipulate it outside of the b->irq_lock. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 33 --- .../gpu/drm/i915/gt/intel_breadcrumbs_types.h

Re: [Intel-gfx] [PATCH 5/7] drm/i915/gt: Don't cancel the interrupt shadow too early

2020-08-07 Thread Tvrtko Ursulin
On 07/08/2020 09:32, Chris Wilson wrote: We currently want to keep the interrupt enabled until the interrupt after which we have no more work to do. This heuristic was broken by us kicking the irq-work on adding a completed request without attaching a signaler -- hence it appearing to the irq-w

Re: [Intel-gfx] [PATCH 2/7] drm/i915/gt: Protect context lifetime with RCU

2020-08-07 Thread Tvrtko Ursulin
On 07/08/2020 12:14, Chris Wilson wrote: Quoting Tvrtko Ursulin (2020-08-07 11:08:59) On 07/08/2020 09:32, Chris Wilson wrote: +static void __intel_context_ctor(void *arg) +{ + struct intel_context *ce = arg; + + INIT_LIST_HEAD(&ce->signal_link); + INIT_LIST_HEAD(&ce->signals); +

Re: [Intel-gfx] [PATCH 2/7] drm/i915/gt: Protect context lifetime with RCU

2020-08-07 Thread Chris Wilson
Quoting Tvrtko Ursulin (2020-08-07 12:31:39) > > On 07/08/2020 12:14, Chris Wilson wrote: > > Quoting Tvrtko Ursulin (2020-08-07 11:08:59) > >> > >> On 07/08/2020 09:32, Chris Wilson wrote: > >>> +static void __intel_context_ctor(void *arg) > >>> +{ > >>> + struct intel_context *ce = arg; > >>

[Intel-gfx] [PATCH] i915/gem: Force HW tracking to exit PSR

2020-08-07 Thread Gaurav K Singh
Instead of calling i915_gem_object_invalidate_frontbuffer(), call i915_gem_object_flush_frontbuffer() which will eventually call psr_force_hw_tracking_exit(). This will force HW tracking to exit PSR instead of disabling and re-enabling. On Gen9 Intel chromebooks, while playing around with Squid so

Re: [Intel-gfx] [PATCH 4/7] drm/i915/gt: Track signaled breadcrumbs outside of the breadcrumb spinlock

2020-08-07 Thread Chris Wilson
Quoting Tvrtko Ursulin (2020-08-07 12:26:41) > > On 07/08/2020 09:32, Chris Wilson wrote: > > static void signal_irq_work(struct irq_work *work) > > { > > struct intel_breadcrumbs *b = container_of(work, typeof(*b), > > irq_work); > > const ktime_t timestamp = ktime_get(); > > +

Re: [Intel-gfx] [PATCH 6/7] drm/i915/gt: Split the breadcrumb spinlock between global and contexts

2020-08-07 Thread Tvrtko Ursulin
On 07/08/2020 09:32, Chris Wilson wrote: As we funnel more and more contexts into the breadcrumbs on an engine, the hold time of b->irq_lock grows. As we may then contend with the b->irq_lock during request submission, this increases the burden upon the engine->active.lock and so directly impac

Re: [Intel-gfx] [PATCH 4/7] drm/i915/gt: Track signaled breadcrumbs outside of the breadcrumb spinlock

2020-08-07 Thread Tvrtko Ursulin
On 07/08/2020 12:54, Chris Wilson wrote: Quoting Tvrtko Ursulin (2020-08-07 12:26:41) On 07/08/2020 09:32, Chris Wilson wrote: static void signal_irq_work(struct irq_work *work) { struct intel_breadcrumbs *b = container_of(work, typeof(*b), irq_work); const ktime_t timest

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling()

2020-08-07 Thread Patchwork
== Series Details == Series: series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() URL : https://patchwork.freedesktop.org/series/80378/ State : warning == Summary == $ dim checkpatch origin/drm-tip 3abcf2da4ee1 drm/i915/gt: Remove defunct intel_virtual_eng

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling()

2020-08-07 Thread Patchwork
== Series Details == Series: series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() URL : https://patchwork.freedesktop.org/series/80378/ State : warning == Summary == $ dim sparse --fast origin/drm-tip Sparse version: v0.6.0 Fast mode used, each commit won'

Re: [Intel-gfx] [PATCH] i915/gem: Force HW tracking to exit PSR

2020-08-07 Thread Chris Wilson
Quoting Gaurav K Singh (2020-08-07 12:56:33) > Instead of calling i915_gem_object_invalidate_frontbuffer(), > call i915_gem_object_flush_frontbuffer() which will eventually > call psr_force_hw_tracking_exit(). This will force HW tracking > to exit PSR instead of disabling and re-enabling. set-doma

Re: [Intel-gfx] [PATCH 7/7] drm/i915/gt: Free stale request on destroying the virtual engine

2020-08-07 Thread Tvrtko Ursulin
On 07/08/2020 09:32, Chris Wilson wrote: Since preempt-to-busy, we may unsubmit a request while it is still on the HW and completes asynchronously. That means it may be retired and in the process destroy the virtual engine (as the user has closed their context), but that engine may still be hol

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling()

2020-08-07 Thread Patchwork
== Series Details == Series: series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() URL : https://patchwork.freedesktop.org/series/80378/ State : success == Summary == CI Bug Log - changes from CI_DRM_8854 -> Patchwork_18319 =

Re: [Intel-gfx] [PATCH 6/7] drm/i915/gt: Split the breadcrumb spinlock between global and contexts

2020-08-07 Thread Chris Wilson
Quoting Tvrtko Ursulin (2020-08-07 12:54:48) > > On 07/08/2020 09:32, Chris Wilson wrote: > > As we funnel more and more contexts into the breadcrumbs on an engine, > > the hold time of b->irq_lock grows. As we may then contend with the > > b->irq_lock during request submission, this increases the

Re: [Intel-gfx] [PATCH 7/7] drm/i915/gt: Free stale request on destroying the virtual engine

2020-08-07 Thread Chris Wilson
Quoting Tvrtko Ursulin (2020-08-07 13:08:07) > > On 07/08/2020 09:32, Chris Wilson wrote: > > Since preempt-to-busy, we may unsubmit a request while it is still on > > the HW and completes asynchronously. That means it may be retired and in > > the process destroy the virtual engine (as the user h

[Intel-gfx] [PATCH 4/7] drm/i915/gt: Track signaled breadcrumbs outside of the breadcrumb spinlock

2020-08-07 Thread Chris Wilson
Make b->signaled_requests a lockless-list so that we can manipulate it outside of the b->irq_lock. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin --- drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 34 --- .../gpu/drm/i915/gt/intel_breadcrumbs_types.h | 2 +- drivers/g

[Intel-gfx] [PATCH 5/7] drm/i915/gt: Don't cancel the interrupt shadow too early

2020-08-07 Thread Chris Wilson
We currently want to keep the interrupt enabled until the interrupt after which we have no more work to do. This heuristic was broken by us kicking the irq-work on adding a completed request without attaching a signaler -- hence it appearing to the irq-worker that an interrupt had fired when we wer

[Intel-gfx] [PATCH 2/7] drm/i915/gt: Protect context lifetime with RCU

2020-08-07 Thread Chris Wilson
Allow a brief period for continued access to a dead intel_context by deferring the release of the struct until after an RCU grace period. As we are using a dedicated slab cache for the contexts, we can defer the release of the slab pages via RCU, with the caveat that individual structs may be reuse

[Intel-gfx] [PATCH 7/7] drm/i915/gt: Free stale request on destroying the virtual engine

2020-08-07 Thread Chris Wilson
Since preempt-to-busy, we may unsubmit a request while it is still on the HW and completes asynchronously. That means it may be retired and in the process destroy the virtual engine (as the user has closed their context), but that engine may still be holding onto the unsubmitted compelted request.

[Intel-gfx] [PATCH 3/7] drm/i915/gt: Defer enabling the breadcrumb interrupt to after submission

2020-08-07 Thread Chris Wilson
Move the register slow register write and readback from out of the critical path for execlists submission and delay it until the following worker, shaving off around 200us. Note that the same signal_irq_work() is allowed to run concurrently on each CPU (but it will only be queued once, once running

[Intel-gfx] [PATCH 6/7] drm/i915/gt: Split the breadcrumb spinlock between global and contexts

2020-08-07 Thread Chris Wilson
As we funnel more and more contexts into the breadcrumbs on an engine, the hold time of b->irq_lock grows. As we may then contend with the b->irq_lock during request submission, this increases the burden upon the engine->active.lock and so directly impacts both our execution latency and client late

[Intel-gfx] [PATCH 1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling()

2020-08-07 Thread Chris Wilson
As the last user was eliminated in commit e21fecdcde40 ("drm/i915/gt: Distinguish the virtual breadcrumbs from the irq breadcrumbs"), we can remove the function. One less implementation detail creeping beyond its scope. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for Asynchronous flip implementation for i915 (rev6)

2020-08-07 Thread Patchwork
== Series Details == Series: Asynchronous flip implementation for i915 (rev6) URL : https://patchwork.freedesktop.org/series/74386/ State : warning == Summary == $ dim sparse --fast origin/drm-tip Sparse version: v0.6.0 Fast mode used, each commit won't be checked separately. ___

Re: [Intel-gfx] [PATCH v5 22/22] drm/i915/dg1: Change DMC_DEBUG{1, 2} registers

2020-08-07 Thread Anshuman Gupta
On 2020-08-04 at 05:01:37 +0530, Souza, Jose wrote: > On Fri, 2020-07-24 at 14:39 -0700, Lucas De Marchi wrote: > > From: Anshuman Gupta < > > anshuman.gu...@intel.com > > > > > > > DGFX devices have different DMC_DEBUG* counter MMIO address > > offset. Incorporate these changes in i915_reg.h for

[Intel-gfx] ✓ Fi.CI.BAT: success for Asynchronous flip implementation for i915 (rev6)

2020-08-07 Thread Patchwork
== Series Details == Series: Asynchronous flip implementation for i915 (rev6) URL : https://patchwork.freedesktop.org/series/74386/ State : success == Summary == CI Bug Log - changes from CI_DRM_8856 -> Patchwork_18320 Summary --- **

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for i915/gem: Force HW tracking to exit PSR

2020-08-07 Thread Patchwork
== Series Details == Series: i915/gem: Force HW tracking to exit PSR URL : https://patchwork.freedesktop.org/series/80391/ State : warning == Summary == $ dim sparse --fast origin/drm-tip Sparse version: v0.6.0 Fast mode used, each commit won't be checked separately.

[Intel-gfx] ✓ Fi.CI.BAT: success for i915/gem: Force HW tracking to exit PSR

2020-08-07 Thread Patchwork
== Series Details == Series: i915/gem: Force HW tracking to exit PSR URL : https://patchwork.freedesktop.org/series/80391/ State : success == Summary == CI Bug Log - changes from CI_DRM_8856 -> Patchwork_18321 Summary --- **SUCCESS**

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling()

2020-08-07 Thread Patchwork
== Series Details == Series: series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() URL : https://patchwork.freedesktop.org/series/80393/ State : warning == Summary == $ dim checkpatch origin/drm-tip f82f8ef253eb drm/i915/gt: Remove defunct intel_virtual_eng

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling()

2020-08-07 Thread Patchwork
== Series Details == Series: series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() URL : https://patchwork.freedesktop.org/series/80393/ State : warning == Summary == $ dim sparse --fast origin/drm-tip Sparse version: v0.6.0 Fast mode used, each commit won'

Re: [Intel-gfx] [PATCH 2/7] drm/i915/gt: Protect context lifetime with RCU

2020-08-07 Thread Tvrtko Ursulin
On 07/08/2020 13:54, Chris Wilson wrote: Allow a brief period for continued access to a dead intel_context by deferring the release of the struct until after an RCU grace period. As we are using a dedicated slab cache for the contexts, we can defer the release of the slab pages via RCU, with th

Re: [Intel-gfx] [PATCH 2/7] drm/i915/gt: Protect context lifetime with RCU

2020-08-07 Thread Chris Wilson
Quoting Tvrtko Ursulin (2020-08-07 15:10:32) > > On 07/08/2020 13:54, Chris Wilson wrote: > > Allow a brief period for continued access to a dead intel_context by > > deferring the release of the struct until after an RCU grace period. > > As we are using a dedicated slab cache for the contexts, w

[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling()

2020-08-07 Thread Patchwork
== Series Details == Series: series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() URL : https://patchwork.freedesktop.org/series/80393/ State : failure == Summary == CI Bug Log - changes from CI_DRM_8856 -> Patchwork_18322 =

Re: [Intel-gfx] [PATCH 6/7] drm/i915/gt: Split the breadcrumb spinlock between global and contexts

2020-08-07 Thread Tvrtko Ursulin
On 07/08/2020 13:54, Chris Wilson wrote: As we funnel more and more contexts into the breadcrumbs on an engine, the hold time of b->irq_lock grows. As we may then contend with the b->irq_lock during request submission, this increases the burden upon the engine->active.lock and so directly impac

[Intel-gfx] [PATCH] drm/i915/gt: Protect context lifetime with RCU

2020-08-07 Thread Chris Wilson
Allow a brief period for continued access to a dead intel_context by deferring the release of the struct until after an RCU grace period. As we are using a dedicated slab cache for the contexts, we can defer the release of the slab pages via RCU, with the caveat that individual structs may be reuse

Re: [Intel-gfx] [PATCH 6/7] drm/i915/gt: Split the breadcrumb spinlock between global and contexts

2020-08-07 Thread Chris Wilson
Quoting Tvrtko Ursulin (2020-08-07 15:25:53) > > On 07/08/2020 13:54, Chris Wilson wrote: > > As we funnel more and more contexts into the breadcrumbs on an engine, > > the hold time of b->irq_lock grows. As we may then contend with the > > b->irq_lock during request submission, this increases the

Re: [Intel-gfx] [PATCH 6/7] drm/i915/gt: Split the breadcrumb spinlock between global and contexts

2020-08-07 Thread Tvrtko Ursulin
On 07/08/2020 15:37, Chris Wilson wrote: Quoting Tvrtko Ursulin (2020-08-07 15:25:53) On 07/08/2020 13:54, Chris Wilson wrote: As we funnel more and more contexts into the breadcrumbs on an engine, the hold time of b->irq_lock grows. As we may then contend with the b->irq_lock during request

[Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling()

2020-08-07 Thread Patchwork
== Series Details == Series: series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() URL : https://patchwork.freedesktop.org/series/80378/ State : failure == Summary == CI Bug Log - changes from CI_DRM_8854_full -> Patchwork_18319_full ===

Re: [Intel-gfx] [PATCH 6/7] drm/i915/gt: Split the breadcrumb spinlock between global and contexts

2020-08-07 Thread Chris Wilson
Quoting Tvrtko Ursulin (2020-08-07 15:45:54) > > On 07/08/2020 15:37, Chris Wilson wrote: > > Quoting Tvrtko Ursulin (2020-08-07 15:25:53) > >> > >> On 07/08/2020 13:54, Chris Wilson wrote: > >>> As we funnel more and more contexts into the breadcrumbs on an engine, > >>> the hold time of b->irq_l

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() (rev2)

2020-08-07 Thread Patchwork
== Series Details == Series: series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() (rev2) URL : https://patchwork.freedesktop.org/series/80393/ State : warning == Summary == $ dim checkpatch origin/drm-tip 423786160985 drm/i915/gt: Remove defunct intel_virt

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() (rev2)

2020-08-07 Thread Patchwork
== Series Details == Series: series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() (rev2) URL : https://patchwork.freedesktop.org/series/80393/ State : warning == Summary == $ dim sparse --fast origin/drm-tip Sparse version: v0.6.0 Fast mode used, each comm

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() (rev2)

2020-08-07 Thread Patchwork
== Series Details == Series: series starting with [1/7] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() (rev2) URL : https://patchwork.freedesktop.org/series/80393/ State : success == Summary == CI Bug Log - changes from CI_DRM_8857 -> Patchwork_18323 ==

Re: [Intel-gfx] [RFC 53/60] drm/i915: Create stolen memory region from local memory

2020-08-07 Thread Tang, CQ
> -Original Message- > From: Joonas Lahtinen > Sent: Friday, August 7, 2020 2:39 AM > To: Tang, CQ ; Dave Airlie > Cc: Auld, Matthew ; Intel Graphics Development > ; Abdiel Janulgue > ; Wilson, Chris P > ; Balestrieri, Francesco > ; Vishwanathapura, Niranjana > ; Dhanalakota, Venkata S

[Intel-gfx] ✓ Fi.CI.IGT: success for Asynchronous flip implementation for i915 (rev6)

2020-08-07 Thread Patchwork
== Series Details == Series: Asynchronous flip implementation for i915 (rev6) URL : https://patchwork.freedesktop.org/series/74386/ State : success == Summary == CI Bug Log - changes from CI_DRM_8856_full -> Patchwork_18320_full Summary ---

Re: [Intel-gfx] [PATCH v5 22/22] drm/i915/dg1: Change DMC_DEBUG{1, 2} registers

2020-08-07 Thread Souza, Jose
On Fri, 2020-08-07 at 18:44 +0530, Anshuman Gupta wrote: > On 2020-08-04 at 05:01:37 +0530, Souza, Jose wrote: > > On Fri, 2020-07-24 at 14:39 -0700, Lucas De Marchi wrote: > > > From: Anshuman Gupta < > > > anshuman.gu...@intel.com > > > > > > > > > DGFX devices have different DMC_DEBUG* counter

Re: [Intel-gfx] [PATCH 1/2] drm/i915/tgl: Set subplatforms

2020-08-07 Thread Souza, Jose
The default case would do nothing. On Thu, 2020-08-06 at 19:02 -0700, Dhanavanthri, Swathi wrote: > It might be helpful to add a default case in the switch statement for > unsupported cases. > > -Original Message- > From: Intel-gfx < > intel-gfx-boun...@lists.freedesktop.org > > On Behal

[Intel-gfx] [CI 2/4] drm/i915/gt: Defer enabling the breadcrumb interrupt to after submission

2020-08-07 Thread Chris Wilson
Move the register slow register write and readback from out of the critical path for execlists submission and delay it until the following worker, shaving off around 200us. Note that the same signal_irq_work() is allowed to run concurrently on each CPU (but it will only be queued once, once running

[Intel-gfx] [CI 1/4] drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling()

2020-08-07 Thread Chris Wilson
As the last user was eliminated in commit e21fecdcde40 ("drm/i915/gt: Distinguish the virtual breadcrumbs from the irq breadcrumbs"), we can remove the function. One less implementation detail creeping beyond its scope. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin

[Intel-gfx] [CI 3/4] drm/i915/gt: Track signaled breadcrumbs outside of the breadcrumb spinlock

2020-08-07 Thread Chris Wilson
Make b->signaled_requests a lockless-list so that we can manipulate it outside of the b->irq_lock. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin --- drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 34 --- .../gpu/drm/i915/gt/intel_breadcrumbs_types.h | 2 +- drivers/g

[Intel-gfx] [CI 4/4] drm/i915/gt: Don't cancel the interrupt shadow too early

2020-08-07 Thread Chris Wilson
We currently want to keep the interrupt enabled until the interrupt after which we have no more work to do. This heuristic was broken by us kicking the irq-work on adding a completed request without attaching a signaler -- hence it appearing to the irq-worker that an interrupt had fired when we wer

[Intel-gfx] [PATCH 0/2] drm/i915/guc: Update to GuC v45

2020-08-07 Thread John . C . Harrison
From: John Harrison Update to the latest GuC firmware and enable by default. Signed-off-by: John Harrison Daniele Ceraolo Spurio (1): drm/i915/uc: turn on GuC/HuC auto mode by default John Harrison (1): drm/i915/guc: Update to GuC v45.0.0 drivers/gpu/drm/i915/gt/intel_engine_cs.c|

  1   2   >