On 01/05/2018 02:15 AM, Sagar Arun Kamble wrote:
On 1/5/2018 3:22 AM, Yaodong Li wrote:
On 01/03/2018 10:10 PM, Sagar Arun Kamble wrote:
Since ring frequency programming needs consideration of both IA and
GT frequency requests I think keeping the logic
to program the ring frequency table in
Will do.
On Fri, Jan 05, 2018 at 08:02:48PM +, Chris Wilson wrote:
> Quoting Alexandru Chirvasitu (2018-01-05 19:58:42)
> > OK, I then plan to try with the previous config, plus these
> > modifications:
> >
> > CONFIG_PAGE_POISONING not set
> > CONFIG_SLUB_STATS=y
> >
> > I'm a little
Quoting Alexandru Chirvasitu (2018-01-05 19:58:42)
> OK, I then plan to try with the previous config, plus these
> modifications:
>
> CONFIG_PAGE_POISONING not set
> CONFIG_SLUB_STATS=y
>
> I'm a little puzzled about this:
[snip]
> > It would be CONFIG_SLUB_STATS and then you would a
> >
OK, I then plan to try with the previous config, plus these
modifications:
CONFIG_PAGE_POISONING not set
CONFIG_SLUB_STATS=y
I'm a little puzzled about this:
On Fri, Jan 05, 2018 at 07:51:01PM +, Chris Wilson wrote:
> Quoting Alexandru Chirvasitu (2018-01-05 19:37:24)
> > I'll try. I need a
Quoting Alexandru Chirvasitu (2018-01-05 19:37:24)
> I'll try. I need a bit of clarification:
>
> On Fri, Jan 05, 2018 at 05:52:25PM +, Chris Wilson wrote:
> > Quoting Alexandru Chirvasitu (2018-01-03 21:53:15)
> > > All right, here's the dmesg from the kernel compiled from drm-tip (in
> > >
I'll try. I need a bit of clarification:
On Fri, Jan 05, 2018 at 05:52:25PM +, Chris Wilson wrote:
> Quoting Alexandru Chirvasitu (2018-01-03 21:53:15)
> > All right, here's the dmesg from the kernel compiled from drm-tip (in
> > sync with upstream at the time of the compilation earlier
On Tue, Dec 19, 2017 at 9:28 AM, Ramalingam C wrote:
> Adding few more findings from the IGT usage with kernel solutions.
>
>
>
> On Wednesday 13 December 2017 04:07 PM, Ramalingam C wrote:
>>
>> Sean,
>>
>> Adding few more observations.
>>
>>
>> On Thursday 07 December
On Fri, 2018-01-05 at 10:09 -0800, Rodrigo Vivi wrote:
> On Fri, Jan 05, 2018 at 11:23:54AM +, Maarten Lankhorst wrote:
> > Op 04-01-18 om 22:51 schreef Pandiyan, Dhinakaran:
> > > On Thu, 2018-01-04 at 12:35 +0100, Maarten Lankhorst wrote:
> > >> Wouldn't it be better to make
Quoting Chris Wilson (2018-01-05 17:39:04)
> Still occasionally hitting timeouts on bxt with igt_ggtt_page(), so
> include some cond_resched() to keep the nmi watchdog appeased.
On my bxt with kasan+lockdep, igt_ggtt_page() takes 0.3s. And on cases
where CI passes, igt_ggtt_page() takes 0.1s.
On Fri, Jan 05, 2018 at 11:23:54AM +, Maarten Lankhorst wrote:
> Op 04-01-18 om 22:51 schreef Pandiyan, Dhinakaran:
> > On Thu, 2018-01-04 at 12:35 +0100, Maarten Lankhorst wrote:
> >> Wouldn't it be better to make intel_power_domains_verify_state work
> >> correctly with the vblank irq?
> > I
On Fri, Jan 05, 2018 at 05:48:35PM +, Mark Janes wrote:
> Tested-by: Mark Janes
Thanks for that and sorry for missing it before merging :(
Also I don't know why patchwork didn't get it automatically.
>
> Geminilake GPU hangs caused by tesselation tests in VulkanCTS
== Series Details ==
Series: drm/i915/selftests: Apply cond_resched() liberally to igt_ggtt_page()
URL : https://patchwork.freedesktop.org/series/36095/
State : success
== Summary ==
Series 36095v1 drm/i915/selftests: Apply cond_resched() liberally to
igt_ggtt_page()
On Fri, Jan 05, 2018 at 11:40:29AM +, Lohith BS wrote:
> Dynamic Refresh Rate Switch(DRRS) is used to switch the panel's
> refresh rate to the lowest vrefresh supported by panel, when frame is
> not flipped for more than a Sec.
>
> In kernel, DRRS uses the front buffer tracking
Quoting Alexandru Chirvasitu (2018-01-03 21:53:15)
> All right, here's the dmesg from the kernel compiled from drm-tip (in
> sync with upstream at the time of the compilation earlier today), with
>
> CONFIG_DRM_I915_DEBUG_GEM=y
>
> I crashed it by opening 20+ xterm windows. Doesn't always do it
On Fri, Jan 05, 2018 at 08:59:05AM +, Kenneth Graunke wrote:
> Geminilake requires the 3D driver to select whether barriers are
> intended for compute shaders, or tessellation control shaders, by
> whacking a "Barrier Mode" bit in SLICE_COMMON_ECO_CHICKEN1 when
> switching pipelines. Failure
Tested-by: Mark Janes
Geminilake GPU hangs caused by tesselation tests in VulkanCTS and GLCTS
are fixed by the Mesa patch that toggles this bit.
Kenneth Graunke writes:
> Geminilake requires the 3D driver to select whether barriers are
> intended
On Fri, Jan 05, 2018 at 10:43:12AM +, Shashank Sharma wrote:
> GLK/GEN 10 and higher GEN platfomrs sport native HDMI 2.0 controller.
> This patch adds a macro HAS_NATIVE_HDMI2, and uses it to make checks
> in the code more readable.
>
> Cc: Vivi Rodrigo
> Cc: Ville
Still occasionally hitting timeouts on bxt with igt_ggtt_page(), so
include some cond_resched() to keep the nmi watchdog appeased.
Signed-off-by: Chris Wilson
---
drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 6 ++
1 file changed, 6 insertions(+)
diff --git
== Series Details ==
Series: drm/i915/scheduler: Assert that we do not have a dep cycle back to
request
URL : https://patchwork.freedesktop.org/series/36082/
State : success
== Summary ==
Series 36082v1 drm/i915/scheduler: Assert that we do not have a dep cycle back
to request
When reprioritising a request, we build a list of its dependencies in
topological order. This should leave our origin request as the first
element in our list, if it moves we have a dependency cycle and severe
breakage. Assert that it doesn't move.
Complete, but expensive checking is done by
== Series Details ==
Series: igt/kms_frontbuffer_tracking: Show FBC status at the start of the wait
(rev3)
URL : https://patchwork.freedesktop.org/series/35699/
State : success
== Summary ==
IGT patchset tested on top of latest successful build
6db24416fdcdf5571125f9005089241cc6ba2652
Signed-off-by: Chris Wilson
---
tests/kms_frontbuffer_tracking.c | 4
1 file changed, 4 insertions(+)
diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index 1601cab45..8b440dadc 100644
--- a/tests/kms_frontbuffer_tracking.c
+++
== Series Details ==
Series: tests/kms_frontbuffer_tracking: Idleness DRRS coverage (rev7)
URL : https://patchwork.freedesktop.org/series/32888/
State : failure
== Summary ==
Test kms_frontbuffer_tracking:
Subgroup fbc-1p-pri-indfb-multidraw:
pass -> FAIL
== Series Details ==
Series: igt/kms_frontbuffer_tracking: Show FBC status at the start of the wait
(rev2)
URL : https://patchwork.freedesktop.org/series/35699/
State : failure
== Summary ==
IGT patchset tested on top of latest successful build
6db24416fdcdf5571125f9005089241cc6ba2652
== Series Details ==
Series: series starting with [01/14] drm/i915: Only defer freeing of fence
callback when also using the timer
URL : https://patchwork.freedesktop.org/series/36077/
State : success
== Summary ==
Series 36077v1 series starting with [01/14] drm/i915: Only defer freeing of
Signed-off-by: Chris Wilson
---
tests/kms_frontbuffer_tracking.c | 4
1 file changed, 4 insertions(+)
diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index 1601cab45..8b440dadc 100644
--- a/tests/kms_frontbuffer_tracking.c
+++
Without an accompanying timer (for internal fences), we can free the
fence callback immediately as we do not need to employ the RCU barrier
to serialise with the timer. By avoiding the RCU delay, we can avoid the
extra mempressure under heavy inter-engine request utilisation.
Signed-off-by: Chris
As the timeout mechanism has grown more and more complicated, using
multiple deferred tasks and more than doubling the size of our struct,
split the two implementations to streamline the simpler no-timeout
callback variant.
Signed-off-by: Chris Wilson
Cc: Tvrtko Ursulin
If we remember to cancel the signaler on a request when retiring it
(after we know that the request has been signaled), we do not need to
carry an additional request in the signaler itself. This prevents an
issue whereby the signaler threads may be delayed and hold on to
thousands of request
If we fail to allocate a new request, make sure we recover the pages
that are in the process of being freed by inserting an RCU barrier.
Signed-off-by: Chris Wilson
---
drivers/gpu/drm/i915/i915_gem_request.c | 3 +++
1 file changed, 3 insertions(+)
diff --git
Avoid calling dma_fence_signal() from inside the interrupt if we haven't
enabled signaling on the request.
Signed-off-by: Chris Wilson
---
drivers/gpu/drm/i915/i915_gem_request.c | 2 +-
drivers/gpu/drm/i915/i915_irq.c | 3 ++-
If we submit a request and see that the previous request on this
timeline was already signaled, we first do not need to add the
dependency tracker for that completed request and secondly we know that
we there is then a large backlog in retiring requests affecting this
timeline. Given that we just
By taking advantage of the RCU protection of the task struct, we can find
the appropriate signaler under the spinlock and then release the spinlock
before waking the task and signaling the fence.
Signed-off-by: Chris Wilson
---
drivers/gpu/drm/i915/i915_irq.c | 29
Rather than have multiple locked instructions inside the notify_ring()
irq handler, move them inside the spinlock and reduce their intrinsic
locking.
Signed-off-by: Chris Wilson
---
drivers/gpu/drm/i915/i915_gem_request.c | 4 ++--
drivers/gpu/drm/i915/i915_irq.c
The goal here is to try and reduce the latency of signaling additional
requests following the wakeup from interrupt by reducing the list of
to-be-signaled requests from an rbtree to a sorted linked list. The
original choice of using an rbtree was to facilitate random insertions
of request into the
When we finally decide the gpu is idle, that is a good time to shrink
our kmem_caches.
Signed-off-by: Chris Wilson
---
drivers/gpu/drm/i915/i915_gem.c | 22 ++
1 file changed, 22 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_gem.c
In preparation for the next patch, move i915_gem_retire_work_handler()
later to avoid a forward declaration.
Signed-off-by: Chris Wilson
---
drivers/gpu/drm/i915/i915_gem.c | 228
1 file changed, 114 insertions(+), 114
As freeing the objects require serialisation on struct_mutex, we should
prefer to use our singlethreaded driver wq that is dedicated to work
requiring struct_mutex (hence serialised).The benefit should be less
clutter on the system wq, allowing it to make progress even when the
driver/struct_mutex
By default, lockdep takes the stringified variable as the name for the
lock class. Quite often, these are constructed from local variables that
are chosen for their brevity resulting in less than distinct class
names. Rename some of the worst offenders encountered in recent reports.
Since commit 4e773c3a8a69 ("drm/i915: Wire up shrinkctl->nr_scanned"),
we track the number of objects we scan and do not wish to exceed that as
it will overly penalise our own slabs under mempressure. Given that we
now know the target number of objects to scan, use that as our guide for
deciding
Just some fallout with handling signals when the interrupt generation
rate is sufficient to saturate the CPU, leaving no time to clean up. In
particular, it's quite easy to cause oom on snb with a bunch of nops.
Overall though there's a small latency improvement for inter-engine
signaling.
-Chris
In subject: s/varification/verification/
Op 07-01-18 om 10:59 schreef Vidya Srinivas:
> From: Mahesh Kumar
>
> NV12 formats have two registers for DDB. verify both the registers for
> NV12 during verify_wm_state.
>
> Signed-off-by: Mahesh Kumar
== Series Details ==
Series: tests/kms_frontbuffer_tracking: Idleness DRRS coverage (rev7)
URL : https://patchwork.freedesktop.org/series/32888/
State : success
== Summary ==
IGT patchset tested on top of latest successful build
6db24416fdcdf5571125f9005089241cc6ba2652 lib/gem: Reset the
Dynamic Refresh Rate Switch(DRRS) is used to switch the panel's
refresh rate to the lowest vrefresh supported by panel, when frame is
not flipped for more than a Sec.
In kernel, DRRS uses the front buffer tracking infrastructure.
Hence DRRS test coverage is added along with other frontbuffer
== Series Details ==
Series: series starting with [1/2] test/kms_psr_sink_crc - subtests psr_basic
and psr_drrs need test cleanup
URL : https://patchwork.freedesktop.org/series/36065/
State : success
== Summary ==
Test kms_setmode:
Subgroup basic:
pass -> FAIL
Op 04-01-18 om 22:51 schreef Pandiyan, Dhinakaran:
> On Thu, 2018-01-04 at 12:35 +0100, Maarten Lankhorst wrote:
>> Wouldn't it be better to make intel_power_domains_verify_state work
>> correctly with the vblank irq?
> I tried to :) Since I changed the domain_use_count to atomic_t and moved
> it
Op 05-01-18 om 10:45 schreef Shashank Sharma:
> Currently, we are using a bool in CRTC state (state->ycbcr420),
> to indicate modeset, that the output format is YCBCR 4:2:0. Now in
> order to support other YCBCR formats, we will need more such flags.
>
> The idea behind this patch is to replace
== Series Details ==
Series: drm/i915: Add HAS_NATIVE_HDMI2 macro
URL : https://patchwork.freedesktop.org/series/36071/
State : success
== Summary ==
Series 36071v1 drm/i915: Add HAS_NATIVE_HDMI2 macro
https://patchwork.freedesktop.org/api/1.0/series/36071/revisions/1/mbox/
Test
GLK/GEN 10 and higher GEN platfomrs sport native HDMI 2.0 controller.
This patch adds a macro HAS_NATIVE_HDMI2, and uses it to make checks
in the code more readable.
Cc: Vivi Rodrigo
Cc: Ville Syrjala
Signed-off-by: Shashank Sharma
== Series Details ==
Series: series starting with [1/2] test/kms_psr_sink_crc - subtests psr_basic
and psr_drrs need test cleanup
URL : https://patchwork.freedesktop.org/series/36065/
State : success
== Summary ==
IGT patchset tested on top of latest successful build
On 1/5/2018 2:42 PM, Patchwork wrote:
== Series Details ==
Series: GuC Interrupts/Log updates (rev3)
URL : https://patchwork.freedesktop.org/series/32179/
State : failure
== Summary ==
Series 32179v3 GuC Interrupts/Log updates
== Series Details ==
Series: drm/i915: Whitelist SLICE_COMMON_ECO_CHICKEN1 on Geminilake. (rev2)
URL : https://patchwork.freedesktop.org/series/36039/
State : success
== Summary ==
Test kms_frontbuffer_tracking:
Subgroup fbc-1p-offscren-pri-shrfb-draw-blt:
fail
== Series Details ==
Series: YCBCR 4:2:0/4:4:4 output support for LSPCON
URL : https://patchwork.freedesktop.org/series/36068/
State : warning
== Summary ==
Series 36068v1 YCBCR 4:2:0/4:4:4 output support for LSPCON
https://patchwork.freedesktop.org/api/1.0/series/36068/revisions/1/mbox/
On 1/5/2018 3:22 AM, Yaodong Li wrote:
On 01/03/2018 10:10 PM, Sagar Arun Kamble wrote:
Since ring frequency programming needs consideration of both IA and
GT frequency requests I think keeping the logic
to program the ring frequency table in driver that monitors both
IA/GT busyness and
As LSPCON is a DP branch device, LSPCON vendors define
specific methods to pass AVI infoframes to the the chip.
This patch adds:
- a generic wrapper function for writing AVI infoframes for
all LSPCON devices.
- a vendor specific function to wrire AVI infoframes into
MCA LSPCON devices.
V2:
Currently, we are using a bool in CRTC state (state->ycbcr420),
to indicate modeset, that the output format is YCBCR 4:2:0. Now in
order to support other YCBCR formats, we will need more such flags.
The idea behind this patch is to replace this bool with an enum,
and plug this in in the existing
Intel LSPCON chip is provided by 2 vendors:
- Megachips America (MCA)
- Parade technologies (Parade tech)
Its important to know the vendor of this chip, as the address to
write AVI infoframes is different for those two.
This patch reads the vendor OUI signature, and marks into LSPCON
encoder
Different LSPCON vendors specify their custom methods to pass
AVI infoframes to the LSPCON chip, so does Parade tech.
This patch adds functions to arrange and write AVI infoframes
into Parade LSPCON chips.
V2: rebase
V3: Added r-b from Maarten
Cc: Imre Deak
Cc: Ville
In order to pass AVI infoframes to LSPCON devices, a source has to
write them in a vendor recommended method and location.
This patch series:
- adds generic LSPCON infoframe setup functions.
- registers these functions into existing AVI infoframe framework.
- triggers these functions from modeset
This patch adds support for YCBCR 4:4:4 CRTC output format.
To do this, this patch extends the existing YCBCR 4:2:0
framework by:
- Adding new parameter in for YCBCR 4:4:4 enum crtc_iutput_format.
- Adding case for YCBCR 4:4:4 in while setting AVI infoframes.
- Adding necessary checks in modeset
LSPCON chips can generate YCBCR outputs, if asked nicely :).
In order to generate YCBCR 4:2:0 outputs, a source must:
- send YCBCR 4:4:4 signals to LSPCON
- program color space as 4:2:0 in AVI infoframes
Whereas for YCBCR 4:4:4 outputs, the source must:
- send YCBCR 4:4:4 signals to LSPCON
-
This patch series adds YCBCR 4:2:0 output support for LSPCON displays.
In order to indicate the color format of output, to the LSPCON device,
a source has to set and send proper AVI infoframes to LSPCON. So this
patch series:
- first adds AVI infoframes support for LSPCON
- then adds YCBCR 4:2:0
== Series Details ==
Series: drm/i915: Whitelist SLICE_COMMON_ECO_CHICKEN1 on Geminilake. (rev2)
URL : https://patchwork.freedesktop.org/series/36039/
State : success
== Summary ==
Series 36039v2 drm/i915: Whitelist SLICE_COMMON_ECO_CHICKEN1 on Geminilake.
== Series Details ==
Series: GuC Interrupts/Log updates (rev3)
URL : https://patchwork.freedesktop.org/series/32179/
State : failure
== Summary ==
Series 32179v3 GuC Interrupts/Log updates
https://patchwork.freedesktop.org/api/1.0/series/32179/revisions/3/mbox/
Test core_auth:
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104260
Signed-off-by: Marta Lofstedt
---
tests/intel-ci/fast-feedback.testlist | 575 +-
1 file changed, 288 insertions(+), 287 deletions(-)
diff --git
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104260
Signed-off-by: Marta Lofstedt
---
tests/kms_psr_sink_crc.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
index 83a69f0b..26cf434a 100644
---
Geminilake requires the 3D driver to select whether barriers are
intended for compute shaders, or tessellation control shaders, by
whacking a "Barrier Mode" bit in SLICE_COMMON_ECO_CHICKEN1 when
switching pipelines. Failure to do this properly can result in GPU
hangs.
Unfortunately, this means
On 1/5/2018 10:24 AM, Sagar Arun Kamble wrote:
On 1/4/2018 10:22 PM, Michal Wajdeczko wrote:
On Thu, 04 Jan 2018 17:21:46 +0100, Sagar Arun Kamble
wrote:
guc_log_level parameter takes effect when GuC is loaded which is
controlled through enable_guc parameter.
This patch adds support to enable/disable GuC interrupts for different
features without impacting other's need. Currently GuC log capture and
CT buffer receive mechanisms use the GuC interrupts. GuC interrupts are
currently enabled and disabled in different logging scenarios all gated
by log
In order to override the disable/enable control of GuC interrupts during
suspend/reset cycle we are creating two new functions suspend/restore
guc_interrupts which check if interrupts were enabled and disable them
on suspend and enable them on resume. They are used to restore interrupts
across
With GuC log level set properly only for cases where GuC is loaded we can
remove the GuC submission checks from flush_guc_logs and guc_log_register,
unregister and uc_fini_hw functions. It is important to note that GuC log
runtime data has to be freed during driver unregister.
Freeing of that data
GuC log runtime/relay channel data will get released during i915
unregister, and only GuC log vma needs to be released during fini. To
achieve this, prepare separate helpers to create/destroy base and runtime
logging.
This separation is also needed to couple runtime log data and interrupts
Disabling GuC interrupts involves access to GuC IRQ control registers
hence ensure device is RPM awake.
v2: Add comment about need to synchronize flush work and log runtime
destroy
v3: Moved patch earlier in the series and removed comment about future
work. (Tvrtko)
v4: Rebase.
GuC interrupts handling is core GuC functionality. Better to keep it
with other core functions in intel_guc.c. Since they are used from
uC functions, GuC log and i915 irq handling we are keeping them grouped
in intel_guc.c instead of intel_uc.c. Also update the function parameter
from dev_priv to
This patch introduces i915 internal state variable in GuC log struct,
"level" which will be copied from guc_log_level modparam during i915
load and thereafter be available for user updates. This will make
guc_log_level parameter immutable.
v2: Rebase.
Suggested-by: Tvrtko Ursulin
With guc_log_unregister disabling runtime logging and interrupts, there
is no need to disable interrupts during uc_fini_hw hence it is removed.
With GuC CT buffer mechanism, interrupt disabling can be added later at
a point where CT mechanism ceases.
v2: Rebase.
v3: Moved this patch earlier in
This series addresses following features/fixes:
1. Restructuring to move GuC interrupts related functions to guc.c
2. Making GuC interrupts enable/disable client based and tying up with
logging at all places.
3. Handle suspend/resume/reset for GuC interrupts.
4. Logging fixes about RPM wakeref
Also 1) revert ("drm/i915/guc: Assert that we switch between
known ggtt->invalidate functions")
2) fix RPM resume interrupt enabling w.r.t GuC resume
3) disable guc log streaming DRM logs
---
drivers/gpu/drm/i915/i915_drv.c | 4 ++--
drivers/gpu/drm/i915/i915_gem_gtt.c | 8 ++--
Arek,
I didn't get any PW for this maybe because I sent it together with a HACK patch
to get a test run on BAT.
Should I rename both patches and re-send to the list?
/Marta
> -Original Message-
> From: Lofstedt, Marta
> Sent: Thursday, January 4, 2018 4:07 PM
> To:
79 matches
Mail list logo