* [PATCH 0/2] GuC messaging enable/disable tweaks
@ 2019-06-19 21:43 Daniele Ceraolo Spurio
2019-06-19 21:43 ` [PATCH 1/2] drm/i915/guc: reorder enable/disable communication steps Daniele Ceraolo Spurio
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Daniele Ceraolo Spurio @ 2019-06-19 21:43 UTC (permalink / raw)
To: intel-gfx
Fix the order of operations and take care of late messages.
At the moment we only care about late messages if the log relay
is active, so the second patch is not essential. Since we now have
the ability of saving a bigger log with quite a bit of history, I'd
personally prefer to get rid of the relay logic entirely, but I'm
not sure if there is a good reason to keep it.
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Daniele Ceraolo Spurio (2):
drm/i915/guc: reorder enable/disable communication steps
drm/i915/guc: handle GuC messages received with CTB disabled
drivers/gpu/drm/i915/intel_guc.h | 5 ++
drivers/gpu/drm/i915/intel_guc_ct.c | 15 +----
drivers/gpu/drm/i915/intel_guc_ct.h | 4 ++
drivers/gpu/drm/i915/intel_uc.c | 90 ++++++++++++++++++++++++++++-
4 files changed, 100 insertions(+), 14 deletions(-)
--
2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] drm/i915/guc: reorder enable/disable communication steps
2019-06-19 21:43 [PATCH 0/2] GuC messaging enable/disable tweaks Daniele Ceraolo Spurio
@ 2019-06-19 21:43 ` Daniele Ceraolo Spurio
2019-06-19 23:22 ` Matthew Brost
2019-06-20 8:43 ` Michal Wajdeczko
2019-06-19 21:43 ` [PATCH 2/2] drm/i915/guc: handle GuC messages received with CTB disabled Daniele Ceraolo Spurio
` (3 subsequent siblings)
4 siblings, 2 replies; 10+ messages in thread
From: Daniele Ceraolo Spurio @ 2019-06-19 21:43 UTC (permalink / raw)
To: intel-gfx
Make sure we always have CT buffers enabled when the interrupts are
enabled, so we can always handle interrupts from GuC. Also move the
setting of the guc->send and guc->handler functions to the GuC
communication control functions for consistency.
The reorder also fixes the onion unwinding of intel_uc_init_hw, because
guc_enable_communication would've left interrupts enabled when failing
to enable CTB.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110943
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
drivers/gpu/drm/i915/intel_guc_ct.c | 15 +++------------
drivers/gpu/drm/i915/intel_guc_ct.h | 4 ++++
drivers/gpu/drm/i915/intel_uc.c | 19 ++++++++++++++++---
3 files changed, 23 insertions(+), 15 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_guc_ct.c b/drivers/gpu/drm/i915/intel_guc_ct.c
index 3921809f812b..92eb40aadd9b 100644
--- a/drivers/gpu/drm/i915/intel_guc_ct.c
+++ b/drivers/gpu/drm/i915/intel_guc_ct.c
@@ -529,8 +529,8 @@ static int ctch_send(struct intel_guc_ct *ct,
/*
* Command Transport (CT) buffer based GuC send function.
*/
-static int intel_guc_send_ct(struct intel_guc *guc, const u32 *action, u32 len,
- u32 *response_buf, u32 response_buf_size)
+int intel_guc_send_ct(struct intel_guc *guc, const u32 *action, u32 len,
+ u32 *response_buf, u32 response_buf_size)
{
struct intel_guc_ct *ct = &guc->ct;
struct intel_guc_ct_channel *ctch = &ct->host_channel;
@@ -834,7 +834,7 @@ static void ct_process_host_channel(struct intel_guc_ct *ct)
* When we're communicating with the GuC over CT, GuC uses events
* to notify us about new messages being posted on the RECV buffer.
*/
-static void intel_guc_to_host_event_handler_ct(struct intel_guc *guc)
+void intel_guc_to_host_event_handler_ct(struct intel_guc *guc)
{
struct intel_guc_ct *ct = &guc->ct;
@@ -901,10 +901,6 @@ int intel_guc_ct_enable(struct intel_guc_ct *ct)
if (unlikely(err))
return err;
- /* Switch into cmd transport buffer based send() */
- guc->send = intel_guc_send_ct;
- guc->handler = intel_guc_to_host_event_handler_ct;
- DRM_INFO("CT: %s\n", enableddisabled(true));
return 0;
}
@@ -921,9 +917,4 @@ void intel_guc_ct_disable(struct intel_guc_ct *ct)
return;
ctch_disable(guc, ctch);
-
- /* Disable send */
- guc->send = intel_guc_send_nop;
- guc->handler = intel_guc_to_host_event_handler_nop;
- DRM_INFO("CT: %s\n", enableddisabled(false));
}
diff --git a/drivers/gpu/drm/i915/intel_guc_ct.h b/drivers/gpu/drm/i915/intel_guc_ct.h
index 41ba593a4df7..0ec17493d83b 100644
--- a/drivers/gpu/drm/i915/intel_guc_ct.h
+++ b/drivers/gpu/drm/i915/intel_guc_ct.h
@@ -101,4 +101,8 @@ static inline void intel_guc_ct_stop(struct intel_guc_ct *ct)
ct->host_channel.enabled = false;
}
+int intel_guc_send_ct(struct intel_guc *guc, const u32 *action, u32 len,
+ u32 *response_buf, u32 response_buf_size);
+void intel_guc_to_host_event_handler_ct(struct intel_guc *guc);
+
#endif /* _INTEL_GUC_CT_H_ */
diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c
index ae45651ac73c..c7f82c944dd6 100644
--- a/drivers/gpu/drm/i915/intel_uc.c
+++ b/drivers/gpu/drm/i915/intel_uc.c
@@ -235,9 +235,20 @@ static void guc_disable_interrupts(struct intel_guc *guc)
static int guc_enable_communication(struct intel_guc *guc)
{
+ int ret;
+
+ ret = intel_guc_ct_enable(&guc->ct);
+ if (ret)
+ return ret;
+
+ guc->send = intel_guc_send_ct;
+ guc->handler = intel_guc_to_host_event_handler_ct;
+
guc_enable_interrupts(guc);
- return intel_guc_ct_enable(&guc->ct);
+ DRM_INFO("GuC communication enabled\n");
+
+ return 0;
}
static void guc_stop_communication(struct intel_guc *guc)
@@ -250,12 +261,14 @@ static void guc_stop_communication(struct intel_guc *guc)
static void guc_disable_communication(struct intel_guc *guc)
{
- intel_guc_ct_disable(&guc->ct);
-
guc_disable_interrupts(guc);
guc->send = intel_guc_send_nop;
guc->handler = intel_guc_to_host_event_handler_nop;
+
+ intel_guc_ct_disable(&guc->ct);
+
+ DRM_INFO("GuC communication disabled\n");
}
int intel_uc_init_misc(struct drm_i915_private *i915)
--
2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/2] drm/i915/guc: handle GuC messages received with CTB disabled
2019-06-19 21:43 [PATCH 0/2] GuC messaging enable/disable tweaks Daniele Ceraolo Spurio
2019-06-19 21:43 ` [PATCH 1/2] drm/i915/guc: reorder enable/disable communication steps Daniele Ceraolo Spurio
@ 2019-06-19 21:43 ` Daniele Ceraolo Spurio
2019-06-20 13:48 ` Chris Wilson
2019-06-19 23:03 ` ✗ Fi.CI.CHECKPATCH: warning for GuC messaging enable/disable tweaks Patchwork
` (2 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Daniele Ceraolo Spurio @ 2019-06-19 21:43 UTC (permalink / raw)
To: intel-gfx
There is a very small chance of triggering a log flush event when
enabling or disabling CT buffers. Events triggered while CT buffers
are disabled are logged in the SCRATCH_15 register using the same bits
used in the CT message payload. Since our communication channel with
GuC is turned off, we can save the message and handle it after we turn
it back on.
GuC should be idle and not generate more events in the meantime because
we're not talking to it.
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
---
drivers/gpu/drm/i915/intel_guc.h | 5 +++
drivers/gpu/drm/i915/intel_uc.c | 73 ++++++++++++++++++++++++++++++++
2 files changed, 78 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_guc.h b/drivers/gpu/drm/i915/intel_guc.h
index 08c906abdfa2..d6a75bc3d7f4 100644
--- a/drivers/gpu/drm/i915/intel_guc.h
+++ b/drivers/gpu/drm/i915/intel_guc.h
@@ -88,6 +88,9 @@ struct intel_guc {
enum forcewake_domains fw_domains;
} send_regs;
+ /* Store msg (e.g. log flush) that we see while CTBs are disabled */
+ u32 mmio_msg;
+
/* To serialize the intel_guc_send actions */
struct mutex send_mutex;
@@ -181,6 +184,8 @@ static inline bool intel_guc_is_loaded(struct intel_guc *guc)
static inline int intel_guc_sanitize(struct intel_guc *guc)
{
intel_uc_fw_sanitize(&guc->fw);
+ guc->mmio_msg = 0;
+
return 0;
}
diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c
index c7f82c944dd6..38c87885aae3 100644
--- a/drivers/gpu/drm/i915/intel_uc.c
+++ b/drivers/gpu/drm/i915/intel_uc.c
@@ -218,6 +218,54 @@ static void guc_free_load_err_log(struct intel_guc *guc)
i915_gem_object_put(guc->load_err_log);
}
+/*
+ * Events triggered while CT buffers are disabled are logged in the SCRATCH_15
+ * register using the same bits used in the CT message payload. Since our
+ * communication channel with guc is turned off at this point, we can save the
+ * message and handle it after we turn it back on.
+ */
+static void guc_clear_mmio_msg(struct intel_guc *guc)
+{
+ intel_uncore_write(&guc_to_i915(guc)->uncore, SOFT_SCRATCH(15), 0);
+}
+
+static void guc_get_mmio_msg(struct intel_guc *guc)
+{
+ u32 val;
+
+ spin_lock_irq(&guc->irq_lock);
+
+ val = intel_uncore_read(&guc_to_i915(guc)->uncore, SOFT_SCRATCH(15));
+ guc->mmio_msg |= val & guc->msg_enabled_mask;
+
+ /*
+ * clear all events, including the ones we're not currently servicing,
+ * to make sure we don't try to process a stale message if we enable
+ * handling of more events later.
+ */
+ guc_clear_mmio_msg(guc);
+
+ spin_unlock_irq(&guc->irq_lock);
+}
+
+static void guc_handle_mmio_msg(struct intel_guc *guc)
+{
+ struct drm_i915_private *i915 = guc_to_i915(guc);
+
+ /* we need communication to be enabled to reply to GuC */
+ GEM_BUG_ON(guc->handler == intel_guc_to_host_event_handler_nop);
+
+ if (!guc->mmio_msg)
+ return;
+
+ spin_lock_irq(&i915->irq_lock);
+ intel_guc_to_host_process_recv_msg(guc, &guc->mmio_msg, 1);
+ spin_unlock_irq(&i915->irq_lock);
+
+ guc->mmio_msg = 0;
+}
+
+
static void guc_reset_interrupts(struct intel_guc *guc)
{
guc->interrupts.reset(guc_to_i915(guc));
@@ -235,6 +283,7 @@ static void guc_disable_interrupts(struct intel_guc *guc)
static int guc_enable_communication(struct intel_guc *guc)
{
+ struct drm_i915_private *i915 = guc_to_i915(guc);
int ret;
ret = intel_guc_ct_enable(&guc->ct);
@@ -244,8 +293,17 @@ static int guc_enable_communication(struct intel_guc *guc)
guc->send = intel_guc_send_ct;
guc->handler = intel_guc_to_host_event_handler_ct;
+ /* check for mmio messages received before/during the CT enable */
+ guc_get_mmio_msg(guc);
+ guc_handle_mmio_msg(guc);
+
guc_enable_interrupts(guc);
+ /* check for CT messages received before we enabled interrupts */
+ spin_lock_irq(&i915->irq_lock);
+ intel_guc_to_host_event_handler_ct(guc);
+ spin_unlock_irq(&i915->irq_lock);
+
DRM_INFO("GuC communication enabled\n");
return 0;
@@ -261,6 +319,13 @@ static void guc_stop_communication(struct intel_guc *guc)
static void guc_disable_communication(struct intel_guc *guc)
{
+ /*
+ * Events generated during or after CT disable are logged by guc in
+ * via mmio. Make sure the register is clear before disabling CT since
+ * all events we cared about have already been processed via CT.
+ */
+ guc_clear_mmio_msg(guc);
+
guc_disable_interrupts(guc);
guc->send = intel_guc_send_nop;
@@ -268,6 +333,14 @@ static void guc_disable_communication(struct intel_guc *guc)
intel_guc_ct_disable(&guc->ct);
+ /*
+ * Check for messages received during/after the CT disable. We do not
+ * expect any messages to have arrived via CT between the interrupt
+ * disable and the CT disable because GuC should've been idle until we
+ * triggered the CT disable protocol.
+ */
+ guc_get_mmio_msg(guc);
+
DRM_INFO("GuC communication disabled\n");
}
--
2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 10+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for GuC messaging enable/disable tweaks
2019-06-19 21:43 [PATCH 0/2] GuC messaging enable/disable tweaks Daniele Ceraolo Spurio
2019-06-19 21:43 ` [PATCH 1/2] drm/i915/guc: reorder enable/disable communication steps Daniele Ceraolo Spurio
2019-06-19 21:43 ` [PATCH 2/2] drm/i915/guc: handle GuC messages received with CTB disabled Daniele Ceraolo Spurio
@ 2019-06-19 23:03 ` Patchwork
2019-06-19 23:36 ` ✓ Fi.CI.BAT: success " Patchwork
2019-06-20 14:45 ` ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2019-06-19 23:03 UTC (permalink / raw)
To: Daniele Ceraolo Spurio; +Cc: intel-gfx
== Series Details ==
Series: GuC messaging enable/disable tweaks
URL : https://patchwork.freedesktop.org/series/62412/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
b1e56a188163 drm/i915/guc: reorder enable/disable communication steps
99d49d7e5f42 drm/i915/guc: handle GuC messages received with CTB disabled
-:97: CHECK:LINE_SPACING: Please don't use multiple blank lines
#97: FILE: drivers/gpu/drm/i915/intel_uc.c:268:
+
+
total: 0 errors, 0 warnings, 1 checks, 122 lines checked
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] drm/i915/guc: reorder enable/disable communication steps
2019-06-19 21:43 ` [PATCH 1/2] drm/i915/guc: reorder enable/disable communication steps Daniele Ceraolo Spurio
@ 2019-06-19 23:22 ` Matthew Brost
2019-06-20 8:43 ` Michal Wajdeczko
1 sibling, 0 replies; 10+ messages in thread
From: Matthew Brost @ 2019-06-19 23:22 UTC (permalink / raw)
To: Daniele Ceraolo Spurio, intel-gfx
On Wed, Jun 19, 2019 at 02:43:50PM -0700, Daniele Ceraolo Spurio wrote:
>Make sure we always have CT buffers enabled when the interrupts are
>enabled, so we can always handle interrupts from GuC. Also move the
>setting of the guc->send and guc->handler functions to the GuC
>communication control functions for consistency.
>
>The reorder also fixes the onion unwinding of intel_uc_init_hw, because
>guc_enable_communication would've left interrupts enabled when failing
>to enable CTB.
>
>Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110943
>Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
>Cc: Chris Wilson <chris@chris-wilson.co.uk>
>Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
>---
Reviewed-by: Matthew Brost
> drivers/gpu/drm/i915/intel_guc_ct.c | 15 +++------------
> drivers/gpu/drm/i915/intel_guc_ct.h | 4 ++++
> drivers/gpu/drm/i915/intel_uc.c | 19 ++++++++++++++++---
> 3 files changed, 23 insertions(+), 15 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/intel_guc_ct.c b/drivers/gpu/drm/i915/intel_guc_ct.c
>index 3921809f812b..92eb40aadd9b 100644
>--- a/drivers/gpu/drm/i915/intel_guc_ct.c
>+++ b/drivers/gpu/drm/i915/intel_guc_ct.c
>@@ -529,8 +529,8 @@ static int ctch_send(struct intel_guc_ct *ct,
> /*
> * Command Transport (CT) buffer based GuC send function.
> */
>-static int intel_guc_send_ct(struct intel_guc *guc, const u32 *action, u32 len,
>- u32 *response_buf, u32 response_buf_size)
>+int intel_guc_send_ct(struct intel_guc *guc, const u32 *action, u32 len,
>+ u32 *response_buf, u32 response_buf_size)
> {
> struct intel_guc_ct *ct = &guc->ct;
> struct intel_guc_ct_channel *ctch = &ct->host_channel;
>@@ -834,7 +834,7 @@ static void ct_process_host_channel(struct intel_guc_ct *ct)
> * When we're communicating with the GuC over CT, GuC uses events
> * to notify us about new messages being posted on the RECV buffer.
> */
>-static void intel_guc_to_host_event_handler_ct(struct intel_guc *guc)
>+void intel_guc_to_host_event_handler_ct(struct intel_guc *guc)
> {
> struct intel_guc_ct *ct = &guc->ct;
>
>@@ -901,10 +901,6 @@ int intel_guc_ct_enable(struct intel_guc_ct *ct)
> if (unlikely(err))
> return err;
>
>- /* Switch into cmd transport buffer based send() */
>- guc->send = intel_guc_send_ct;
>- guc->handler = intel_guc_to_host_event_handler_ct;
>- DRM_INFO("CT: %s\n", enableddisabled(true));
> return 0;
> }
>
>@@ -921,9 +917,4 @@ void intel_guc_ct_disable(struct intel_guc_ct *ct)
> return;
>
> ctch_disable(guc, ctch);
>-
>- /* Disable send */
>- guc->send = intel_guc_send_nop;
>- guc->handler = intel_guc_to_host_event_handler_nop;
>- DRM_INFO("CT: %s\n", enableddisabled(false));
> }
>diff --git a/drivers/gpu/drm/i915/intel_guc_ct.h b/drivers/gpu/drm/i915/intel_guc_ct.h
>index 41ba593a4df7..0ec17493d83b 100644
>--- a/drivers/gpu/drm/i915/intel_guc_ct.h
>+++ b/drivers/gpu/drm/i915/intel_guc_ct.h
>@@ -101,4 +101,8 @@ static inline void intel_guc_ct_stop(struct intel_guc_ct *ct)
> ct->host_channel.enabled = false;
> }
>
>+int intel_guc_send_ct(struct intel_guc *guc, const u32 *action, u32 len,
>+ u32 *response_buf, u32 response_buf_size);
>+void intel_guc_to_host_event_handler_ct(struct intel_guc *guc);
>+
> #endif /* _INTEL_GUC_CT_H_ */
>diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c
>index ae45651ac73c..c7f82c944dd6 100644
>--- a/drivers/gpu/drm/i915/intel_uc.c
>+++ b/drivers/gpu/drm/i915/intel_uc.c
>@@ -235,9 +235,20 @@ static void guc_disable_interrupts(struct intel_guc *guc)
>
> static int guc_enable_communication(struct intel_guc *guc)
> {
>+ int ret;
>+
>+ ret = intel_guc_ct_enable(&guc->ct);
>+ if (ret)
>+ return ret;
>+
>+ guc->send = intel_guc_send_ct;
>+ guc->handler = intel_guc_to_host_event_handler_ct;
>+
> guc_enable_interrupts(guc);
>
>- return intel_guc_ct_enable(&guc->ct);
>+ DRM_INFO("GuC communication enabled\n");
>+
>+ return 0;
> }
>
> static void guc_stop_communication(struct intel_guc *guc)
>@@ -250,12 +261,14 @@ static void guc_stop_communication(struct intel_guc *guc)
>
> static void guc_disable_communication(struct intel_guc *guc)
> {
>- intel_guc_ct_disable(&guc->ct);
>-
> guc_disable_interrupts(guc);
>
> guc->send = intel_guc_send_nop;
> guc->handler = intel_guc_to_host_event_handler_nop;
>+
>+ intel_guc_ct_disable(&guc->ct);
>+
>+ DRM_INFO("GuC communication disabled\n");
> }
>
> int intel_uc_init_misc(struct drm_i915_private *i915)
>--
>2.20.1
>
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx@lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
* ✓ Fi.CI.BAT: success for GuC messaging enable/disable tweaks
2019-06-19 21:43 [PATCH 0/2] GuC messaging enable/disable tweaks Daniele Ceraolo Spurio
` (2 preceding siblings ...)
2019-06-19 23:03 ` ✗ Fi.CI.CHECKPATCH: warning for GuC messaging enable/disable tweaks Patchwork
@ 2019-06-19 23:36 ` Patchwork
2019-06-20 14:45 ` ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2019-06-19 23:36 UTC (permalink / raw)
To: Daniele Ceraolo Spurio; +Cc: intel-gfx
== Series Details ==
Series: GuC messaging enable/disable tweaks
URL : https://patchwork.freedesktop.org/series/62412/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_6312 -> Patchwork_13354
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/
Known issues
------------
Here are the changes found in Patchwork_13354 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_module_load@reload:
- fi-icl-u3: [PASS][1] -> [DMESG-WARN][2] ([fdo#107724])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/fi-icl-u3/igt@i915_module_load@reload.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/fi-icl-u3/igt@i915_module_load@reload.html
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850: [INCOMPLETE][3] ([fdo#107718]) -> [PASS][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html
* igt@i915_selftest@live_contexts:
- fi-skl-gvtdvm: [DMESG-FAIL][5] ([fdo#110235]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/fi-skl-gvtdvm/igt@i915_selftest@live_contexts.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/fi-skl-gvtdvm/igt@i915_selftest@live_contexts.html
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u: [FAIL][7] ([fdo#109485]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
* igt@kms_frontbuffer_tracking@basic:
- fi-icl-u3: [FAIL][9] ([fdo#103167]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html
- fi-icl-u2: [FAIL][11] ([fdo#103167]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
[fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
[fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
[fdo#110235]: https://bugs.freedesktop.org/show_bug.cgi?id=110235
Participating hosts (49 -> 43)
------------------------------
Additional (4): fi-cml-u2 fi-bxt-j4205 fi-gdg-551 fi-cml-u
Missing (10): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-hsw-peppy fi-byt-squawks fi-bsw-cyan fi-icl-y fi-icl-guc fi-byt-clapper fi-bdw-samus
Build changes
-------------
* Linux: CI_DRM_6312 -> Patchwork_13354
CI_DRM_6312: 034e3ac6a2d180d188da927388b60c7e62c5655b @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5061: c88ced79a7b71aec58f1d9c5c599ac2f431bcf7a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_13354: 99d49d7e5f42e6cfdc78d74d7006705ab044bcb5 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
99d49d7e5f42 drm/i915/guc: handle GuC messages received with CTB disabled
b1e56a188163 drm/i915/guc: reorder enable/disable communication steps
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] drm/i915/guc: reorder enable/disable communication steps
2019-06-19 21:43 ` [PATCH 1/2] drm/i915/guc: reorder enable/disable communication steps Daniele Ceraolo Spurio
2019-06-19 23:22 ` Matthew Brost
@ 2019-06-20 8:43 ` Michal Wajdeczko
1 sibling, 0 replies; 10+ messages in thread
From: Michal Wajdeczko @ 2019-06-20 8:43 UTC (permalink / raw)
To: intel-gfx, Daniele Ceraolo Spurio
On Wed, 19 Jun 2019 23:43:50 +0200, Daniele Ceraolo Spurio
<daniele.ceraolospurio@intel.com> wrote:
> Make sure we always have CT buffers enabled when the interrupts are
> enabled, so we can always handle interrupts from GuC. Also move the
> setting of the guc->send and guc->handler functions to the GuC
> communication control functions for consistency.
>
> The reorder also fixes the onion unwinding of intel_uc_init_hw, because
> guc_enable_communication would've left interrupts enabled when failing
> to enable CTB.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110943
> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
with some nit below
> ---
> drivers/gpu/drm/i915/intel_guc_ct.c | 15 +++------------
> drivers/gpu/drm/i915/intel_guc_ct.h | 4 ++++
> drivers/gpu/drm/i915/intel_uc.c | 19 ++++++++++++++++---
> 3 files changed, 23 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_guc_ct.c
> b/drivers/gpu/drm/i915/intel_guc_ct.c
> index 3921809f812b..92eb40aadd9b 100644
> --- a/drivers/gpu/drm/i915/intel_guc_ct.c
> +++ b/drivers/gpu/drm/i915/intel_guc_ct.c
> @@ -529,8 +529,8 @@ static int ctch_send(struct intel_guc_ct *ct,
> /*
> * Command Transport (CT) buffer based GuC send function.
> */
> -static int intel_guc_send_ct(struct intel_guc *guc, const u32 *action,
> u32 len,
> - u32 *response_buf, u32 response_buf_size)
> +int intel_guc_send_ct(struct intel_guc *guc, const u32 *action, u32 len,
> + u32 *response_buf, u32 response_buf_size)
> {
> struct intel_guc_ct *ct = &guc->ct;
> struct intel_guc_ct_channel *ctch = &ct->host_channel;
> @@ -834,7 +834,7 @@ static void ct_process_host_channel(struct
> intel_guc_ct *ct)
> * When we're communicating with the GuC over CT, GuC uses events
> * to notify us about new messages being posted on the RECV buffer.
> */
> -static void intel_guc_to_host_event_handler_ct(struct intel_guc *guc)
> +void intel_guc_to_host_event_handler_ct(struct intel_guc *guc)
> {
> struct intel_guc_ct *ct = &guc->ct;
> @@ -901,10 +901,6 @@ int intel_guc_ct_enable(struct intel_guc_ct *ct)
> if (unlikely(err))
> return err;
now you can drop above early return and always return err;
> - /* Switch into cmd transport buffer based send() */
> - guc->send = intel_guc_send_ct;
> - guc->handler = intel_guc_to_host_event_handler_ct;
> - DRM_INFO("CT: %s\n", enableddisabled(true));
> return 0;
> }
> @@ -921,9 +917,4 @@ void intel_guc_ct_disable(struct intel_guc_ct *ct)
> return;
> ctch_disable(guc, ctch);
> -
> - /* Disable send */
> - guc->send = intel_guc_send_nop;
> - guc->handler = intel_guc_to_host_event_handler_nop;
> - DRM_INFO("CT: %s\n", enableddisabled(false));
> }
> diff --git a/drivers/gpu/drm/i915/intel_guc_ct.h
> b/drivers/gpu/drm/i915/intel_guc_ct.h
> index 41ba593a4df7..0ec17493d83b 100644
> --- a/drivers/gpu/drm/i915/intel_guc_ct.h
> +++ b/drivers/gpu/drm/i915/intel_guc_ct.h
> @@ -101,4 +101,8 @@ static inline void intel_guc_ct_stop(struct
> intel_guc_ct *ct)
> ct->host_channel.enabled = false;
> }
> +int intel_guc_send_ct(struct intel_guc *guc, const u32 *action, u32 len,
> + u32 *response_buf, u32 response_buf_size);
> +void intel_guc_to_host_event_handler_ct(struct intel_guc *guc);
> +
> #endif /* _INTEL_GUC_CT_H_ */
> diff --git a/drivers/gpu/drm/i915/intel_uc.c
> b/drivers/gpu/drm/i915/intel_uc.c
> index ae45651ac73c..c7f82c944dd6 100644
> --- a/drivers/gpu/drm/i915/intel_uc.c
> +++ b/drivers/gpu/drm/i915/intel_uc.c
> @@ -235,9 +235,20 @@ static void guc_disable_interrupts(struct intel_guc
> *guc)
> static int guc_enable_communication(struct intel_guc *guc)
> {
> + int ret;
> +
> + ret = intel_guc_ct_enable(&guc->ct);
> + if (ret)
> + return ret;
> +
> + guc->send = intel_guc_send_ct;
> + guc->handler = intel_guc_to_host_event_handler_ct;
> +
> guc_enable_interrupts(guc);
> - return intel_guc_ct_enable(&guc->ct);
> + DRM_INFO("GuC communication enabled\n");
> +
> + return 0;
> }
> static void guc_stop_communication(struct intel_guc *guc)
> @@ -250,12 +261,14 @@ static void guc_stop_communication(struct
> intel_guc *guc)
> static void guc_disable_communication(struct intel_guc *guc)
> {
> - intel_guc_ct_disable(&guc->ct);
> -
> guc_disable_interrupts(guc);
> guc->send = intel_guc_send_nop;
> guc->handler = intel_guc_to_host_event_handler_nop;
> +
> + intel_guc_ct_disable(&guc->ct);
> +
> + DRM_INFO("GuC communication disabled\n");
> }
> int intel_uc_init_misc(struct drm_i915_private *i915)
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] drm/i915/guc: handle GuC messages received with CTB disabled
2019-06-19 21:43 ` [PATCH 2/2] drm/i915/guc: handle GuC messages received with CTB disabled Daniele Ceraolo Spurio
@ 2019-06-20 13:48 ` Chris Wilson
2019-06-20 17:55 ` Daniele Ceraolo Spurio
0 siblings, 1 reply; 10+ messages in thread
From: Chris Wilson @ 2019-06-20 13:48 UTC (permalink / raw)
To: Daniele Ceraolo Spurio, intel-gfx
Quoting Daniele Ceraolo Spurio (2019-06-19 22:43:51)
> +/*
> + * Events triggered while CT buffers are disabled are logged in the SCRATCH_15
> + * register using the same bits used in the CT message payload. Since our
> + * communication channel with guc is turned off at this point, we can save the
> + * message and handle it after we turn it back on.
> + */
> +static void guc_clear_mmio_msg(struct intel_guc *guc)
> +{
> + intel_uncore_write(&guc_to_i915(guc)->uncore, SOFT_SCRATCH(15), 0);
Should the register be cleared on intel_guc_reset()? Otherwise, we would
be associating the stale msg from an earlier guc instance with the
current one.
That would mean clear_mmio_msg would want to be called from
guc_stop_communication not just guc_disable_communication.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
* ✓ Fi.CI.IGT: success for GuC messaging enable/disable tweaks
2019-06-19 21:43 [PATCH 0/2] GuC messaging enable/disable tweaks Daniele Ceraolo Spurio
` (3 preceding siblings ...)
2019-06-19 23:36 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2019-06-20 14:45 ` Patchwork
4 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2019-06-20 14:45 UTC (permalink / raw)
To: Daniele Ceraolo Spurio; +Cc: intel-gfx
== Series Details ==
Series: GuC messaging enable/disable tweaks
URL : https://patchwork.freedesktop.org/series/62412/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_6312_full -> Patchwork_13354_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Known issues
------------
Here are the changes found in Patchwork_13354_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_eio@in-flight-suspend:
- shard-kbl: [PASS][1] -> [DMESG-WARN][2] ([fdo#110913 ]) +2 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-kbl3/igt@gem_eio@in-flight-suspend.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-kbl3/igt@gem_eio@in-flight-suspend.html
* igt@gem_persistent_relocs@forked-faulting-reloc-thrashing:
- shard-snb: [PASS][3] -> [DMESG-WARN][4] ([fdo#110789] / [fdo#110913 ])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-snb6/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-snb4/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html
* igt@gem_softpin@noreloc-s3:
- shard-skl: [PASS][5] -> [INCOMPLETE][6] ([fdo#104108] / [fdo#107773])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-skl6/igt@gem_softpin@noreloc-s3.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-skl5/igt@gem_softpin@noreloc-s3.html
* igt@gem_tiled_swapping@non-threaded:
- shard-apl: [PASS][7] -> [DMESG-WARN][8] ([fdo#108686])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-apl8/igt@gem_tiled_swapping@non-threaded.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-apl6/igt@gem_tiled_swapping@non-threaded.html
* igt@i915_pm_rc6_residency@rc6-accuracy:
- shard-snb: [PASS][9] -> [SKIP][10] ([fdo#109271])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-snb1/igt@i915_pm_rc6_residency@rc6-accuracy.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-snb2/igt@i915_pm_rc6_residency@rc6-accuracy.html
* igt@i915_suspend@debugfs-reader:
- shard-apl: [PASS][11] -> [DMESG-WARN][12] ([fdo#108566]) +3 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-apl2/igt@i915_suspend@debugfs-reader.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-apl6/igt@i915_suspend@debugfs-reader.html
* igt@i915_suspend@sysfs-reader:
- shard-kbl: [PASS][13] -> [INCOMPLETE][14] ([fdo#103665] / [fdo#108767])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-kbl4/igt@i915_suspend@sysfs-reader.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-kbl4/igt@i915_suspend@sysfs-reader.html
* igt@kms_frontbuffer_tracking@fbc-2p-rte:
- shard-hsw: [PASS][15] -> [SKIP][16] ([fdo#109271]) +26 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-hsw8/igt@kms_frontbuffer_tracking@fbc-2p-rte.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-hsw1/igt@kms_frontbuffer_tracking@fbc-2p-rte.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-gtt:
- shard-skl: [PASS][17] -> [FAIL][18] ([fdo#103167])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-skl7/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-gtt.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-skl2/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-gtt.html
* igt@kms_pipe_crc_basic@hang-read-crc-pipe-c:
- shard-skl: [PASS][19] -> [FAIL][20] ([fdo#103191])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-skl3/igt@kms_pipe_crc_basic@hang-read-crc-pipe-c.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-skl6/igt@kms_pipe_crc_basic@hang-read-crc-pipe-c.html
* igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
- shard-kbl: [PASS][21] -> [INCOMPLETE][22] ([fdo#103665])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-kbl4/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-kbl4/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
* igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min:
- shard-skl: [PASS][23] -> [FAIL][24] ([fdo#108145]) +1 similar issue
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-skl3/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-skl6/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html
* igt@kms_setmode@basic:
- shard-apl: [PASS][25] -> [FAIL][26] ([fdo#99912])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-apl6/igt@kms_setmode@basic.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-apl1/igt@kms_setmode@basic.html
#### Possible fixes ####
* igt@gem_persistent_relocs@forked-interruptible-thrashing:
- shard-snb: [DMESG-WARN][27] ([fdo#110789] / [fdo#110913 ]) -> [PASS][28]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-snb4/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-snb5/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
* igt@gem_persistent_relocs@forked-thrashing:
- shard-apl: [DMESG-WARN][29] ([fdo#110913 ]) -> [PASS][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-apl5/igt@gem_persistent_relocs@forked-thrashing.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-apl4/igt@gem_persistent_relocs@forked-thrashing.html
* igt@gem_userptr_blits@map-fixed-invalidate-busy-gup:
- shard-kbl: [DMESG-WARN][31] ([fdo#110913 ]) -> [PASS][32] +1 similar issue
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-kbl4/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-kbl4/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html
* igt@kms_cursor_edge_walk@pipe-b-128x128-top-edge:
- shard-snb: [SKIP][33] ([fdo#109271] / [fdo#109278]) -> [PASS][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-snb2/igt@kms_cursor_edge_walk@pipe-b-128x128-top-edge.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-snb2/igt@kms_cursor_edge_walk@pipe-b-128x128-top-edge.html
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
- shard-glk: [FAIL][35] ([fdo#104873]) -> [PASS][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-glk8/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-glk1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-pwrite:
- shard-hsw: [SKIP][37] ([fdo#109271]) -> [PASS][38] +24 similar issues
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-hsw1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-pwrite.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-hsw7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbc-suspend:
- shard-apl: [DMESG-WARN][39] ([fdo#108566]) -> [PASS][40]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-apl3/igt@kms_frontbuffer_tracking@fbc-suspend.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-apl4/igt@kms_frontbuffer_tracking@fbc-suspend.html
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
- shard-skl: [INCOMPLETE][41] ([fdo#104108]) -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-skl4/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-skl10/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html
* igt@kms_plane@plane-panning-bottom-right-pipe-b-planes:
- shard-snb: [SKIP][43] ([fdo#109271]) -> [PASS][44] +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-snb2/igt@kms_plane@plane-panning-bottom-right-pipe-b-planes.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-snb2/igt@kms_plane@plane-panning-bottom-right-pipe-b-planes.html
* igt@kms_setmode@basic:
- shard-hsw: [FAIL][45] ([fdo#99912]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6312/shard-hsw7/igt@kms_setmode@basic.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/shard-hsw1/igt@kms_setmode@basic.html
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
[fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
[fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
[fdo#104873]: https://bugs.freedesktop.org/show_bug.cgi?id=104873
[fdo#107773]: https://bugs.freedesktop.org/show_bug.cgi?id=107773
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
[fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686
[fdo#108767]: https://bugs.freedesktop.org/show_bug.cgi?id=108767
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
[fdo#110913 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110913
[fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
Participating hosts (10 -> 9)
------------------------------
Missing (1): shard-iclb
Build changes
-------------
* Linux: CI_DRM_6312 -> Patchwork_13354
CI_DRM_6312: 034e3ac6a2d180d188da927388b60c7e62c5655b @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5061: c88ced79a7b71aec58f1d9c5c599ac2f431bcf7a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_13354: 99d49d7e5f42e6cfdc78d74d7006705ab044bcb5 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13354/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] drm/i915/guc: handle GuC messages received with CTB disabled
2019-06-20 13:48 ` Chris Wilson
@ 2019-06-20 17:55 ` Daniele Ceraolo Spurio
0 siblings, 0 replies; 10+ messages in thread
From: Daniele Ceraolo Spurio @ 2019-06-20 17:55 UTC (permalink / raw)
To: Chris Wilson, intel-gfx
On 6/20/19 6:48 AM, Chris Wilson wrote:
> Quoting Daniele Ceraolo Spurio (2019-06-19 22:43:51)
>> +/*
>> + * Events triggered while CT buffers are disabled are logged in the SCRATCH_15
>> + * register using the same bits used in the CT message payload. Since our
>> + * communication channel with guc is turned off at this point, we can save the
>> + * message and handle it after we turn it back on.
>> + */
>> +static void guc_clear_mmio_msg(struct intel_guc *guc)
>> +{
>> + intel_uncore_write(&guc_to_i915(guc)->uncore, SOFT_SCRATCH(15), 0);
>
> Should the register be cleared on intel_guc_reset()? Otherwise, we would
> be associating the stale msg from an earlier guc instance with the
> current one.
>
> That would mean clear_mmio_msg would want to be called from
> guc_stop_communication not just guc_disable_communication.
> -Chris
>
The register is reset by the HW as part of GuC reset (I've verified this
on SKL). Still, explicitly clearing it won't hurt and it'll cover us if
HW reset fails, so no problem in adding the call in.
Daniele
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2019-06-20 17:56 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-19 21:43 [PATCH 0/2] GuC messaging enable/disable tweaks Daniele Ceraolo Spurio
2019-06-19 21:43 ` [PATCH 1/2] drm/i915/guc: reorder enable/disable communication steps Daniele Ceraolo Spurio
2019-06-19 23:22 ` Matthew Brost
2019-06-20 8:43 ` Michal Wajdeczko
2019-06-19 21:43 ` [PATCH 2/2] drm/i915/guc: handle GuC messages received with CTB disabled Daniele Ceraolo Spurio
2019-06-20 13:48 ` Chris Wilson
2019-06-20 17:55 ` Daniele Ceraolo Spurio
2019-06-19 23:03 ` ✗ Fi.CI.CHECKPATCH: warning for GuC messaging enable/disable tweaks Patchwork
2019-06-19 23:36 ` ✓ Fi.CI.BAT: success " Patchwork
2019-06-20 14:45 ` ✓ Fi.CI.IGT: " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.