* [PATCH] drm/i915: Limit C-states when waiting for the active request
@ 2018-07-30 11:29 Chris Wilson
2018-07-30 11:31 ` Chris Wilson
` (9 more replies)
0 siblings, 10 replies; 15+ messages in thread
From: Chris Wilson @ 2018-07-30 11:29 UTC (permalink / raw)
To: intel-gfx; +Cc: Eero Tamminen
If we are waiting for the currently executing request, we have a good
idea that it will be completed in the very near future and so want to
cap the CPU_DMA_LATENCY to ensure that we wake up the client quickly.
Testcase: igt/gem_sync/store-default
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Eero Tamminen <eero.t.tamminen@intel.com>
Cc: Francisco Jerez <currojerez@riseup.net>
---
drivers/gpu/drm/i915/i915_request.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index 694269e5b761..dd99eba5ae7c 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -1258,6 +1258,19 @@ static bool __i915_wait_request_check_and_reset(struct i915_request *request)
return true;
}
+struct pm_qos {
+ struct pm_qos_request req;
+ struct work_struct work;
+};
+
+static void pm_qos_del(struct work_struct *work)
+{
+ struct pm_qos *pm_qos = container_of(work, typeof(*pm_qos), work);
+
+ pm_qos_remove_request(&pm_qos->req);
+ kfree(pm_qos);
+}
+
/**
* i915_request_wait - wait until execution of request has finished
* @rq: the request to wait upon
@@ -1286,6 +1299,7 @@ long i915_request_wait(struct i915_request *rq,
wait_queue_head_t *errq = &rq->i915->gpu_error.wait_queue;
DEFINE_WAIT_FUNC(reset, default_wake_function);
DEFINE_WAIT_FUNC(exec, default_wake_function);
+ struct pm_qos *pm_qos = NULL;
struct intel_wait wait;
might_sleep();
@@ -1387,6 +1401,18 @@ long i915_request_wait(struct i915_request *rq,
break;
}
+ if (!pm_qos &&
+ i915_seqno_passed(intel_engine_get_seqno(rq->engine),
+ wait.seqno - 1)) {
+ pm_qos = kzalloc(sizeof(*pm_qos), GFP_KERNEL);
+ if (pm_qos) {
+ pm_qos_add_request(&pm_qos->req,
+ PM_QOS_CPU_DMA_LATENCY,
+ 50);
+ INIT_WORK(&pm_qos->work, pm_qos_del);
+ }
+ }
+
timeout = schedule_timeout(timeout);
if (intel_wait_complete(&wait) &&
@@ -1443,6 +1469,8 @@ long i915_request_wait(struct i915_request *rq,
if (flags & I915_WAIT_LOCKED)
remove_wait_queue(errq, &reset);
remove_wait_queue(&rq->execute, &exec);
+ if (pm_qos)
+ schedule_work(&pm_qos->work);
trace_i915_request_wait_end(rq);
return timeout;
--
2.18.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH] drm/i915: Limit C-states when waiting for the active request
2018-07-30 11:29 [PATCH] drm/i915: Limit C-states when waiting for the active request Chris Wilson
@ 2018-07-30 11:31 ` Chris Wilson
2018-07-30 12:05 ` ✗ Fi.CI.BAT: failure for drm/i915: Limit C-states when waiting for the active request (rev2) Patchwork
` (8 subsequent siblings)
9 siblings, 0 replies; 15+ messages in thread
From: Chris Wilson @ 2018-07-30 11:31 UTC (permalink / raw)
To: intel-gfx; +Cc: Eero Tamminen
If we are waiting for the currently executing request, we have a good
idea that it will be completed in the very near future and so want to
cap the CPU_DMA_LATENCY to ensure that we wake up the client quickly.
Testcase: igt/gem_sync/store-default
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Eero Tamminen <eero.t.tamminen@intel.com>
Cc: Francisco Jerez <currojerez@riseup.net>
---
drivers/gpu/drm/i915/i915_request.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index 5c2c93cbab12..a4de1f0e88f1 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -1258,6 +1258,19 @@ static bool __i915_wait_request_check_and_reset(struct i915_request *request)
return true;
}
+struct pm_qos {
+ struct pm_qos_request req;
+ struct work_struct work;
+};
+
+static void pm_qos_del(struct work_struct *work)
+{
+ struct pm_qos *pm_qos = container_of(work, typeof(*pm_qos), work);
+
+ pm_qos_remove_request(&pm_qos->req);
+ kfree(pm_qos);
+}
+
/**
* i915_request_wait - wait until execution of request has finished
* @rq: the request to wait upon
@@ -1286,6 +1299,7 @@ long i915_request_wait(struct i915_request *rq,
wait_queue_head_t *errq = &rq->i915->gpu_error.wait_queue;
DEFINE_WAIT_FUNC(reset, default_wake_function);
DEFINE_WAIT_FUNC(exec, default_wake_function);
+ struct pm_qos *pm_qos = NULL;
struct intel_wait wait;
might_sleep();
@@ -1363,6 +1377,18 @@ long i915_request_wait(struct i915_request *rq,
break;
}
+ if (!pm_qos &&
+ i915_seqno_passed(intel_engine_get_seqno(rq->engine),
+ wait.seqno - 1)) {
+ pm_qos = kzalloc(sizeof(*pm_qos), GFP_KERNEL);
+ if (pm_qos) {
+ pm_qos_add_request(&pm_qos->req,
+ PM_QOS_CPU_DMA_LATENCY,
+ 50);
+ INIT_WORK(&pm_qos->work, pm_qos_del);
+ }
+ }
+
timeout = io_schedule_timeout(timeout);
if (intel_wait_complete(&wait) &&
@@ -1412,6 +1438,8 @@ long i915_request_wait(struct i915_request *rq,
if (flags & I915_WAIT_LOCKED)
remove_wait_queue(errq, &reset);
remove_wait_queue(&rq->execute, &exec);
+ if (pm_qos)
+ schedule_work(&pm_qos->work);
trace_i915_request_wait_end(rq);
return timeout;
--
2.18.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 15+ messages in thread
* ✗ Fi.CI.BAT: failure for drm/i915: Limit C-states when waiting for the active request (rev2)
2018-07-30 11:29 [PATCH] drm/i915: Limit C-states when waiting for the active request Chris Wilson
2018-07-30 11:31 ` Chris Wilson
@ 2018-07-30 12:05 ` Patchwork
2018-07-30 12:14 ` [PATCH v2] drm/i915: Limit C-states when waiting for the active request Chris Wilson
` (7 subsequent siblings)
9 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2018-07-30 12:05 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Limit C-states when waiting for the active request (rev2)
URL : https://patchwork.freedesktop.org/series/47420/
State : failure
== Summary ==
= CI Bug Log - changes from CI_DRM_4592 -> Patchwork_9805 =
== Summary - FAILURE ==
Serious unknown changes coming with Patchwork_9805 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_9805, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://patchwork.freedesktop.org/api/1.0/series/47420/revisions/2/mbox/
== Possible new issues ==
Here are the unknown changes that may have been introduced in Patchwork_9805:
=== IGT changes ===
==== Possible regressions ====
igt@gem_busy@basic-busy-default:
fi-snb-2600: PASS -> DMESG-WARN
igt@gem_cpu_reloc@basic:
fi-hsw-4770r: PASS -> DMESG-WARN
fi-ivb-3770: PASS -> DMESG-WARN
igt@gem_cs_tlb@basic-default:
fi-whl-u: PASS -> DMESG-WARN
{fi-skl-caroline}: PASS -> DMESG-WARN
fi-skl-6770hq: PASS -> DMESG-WARN
fi-bdw-5557u: PASS -> DMESG-WARN
fi-kbl-7560u: PASS -> DMESG-WARN
fi-cnl-psr: PASS -> DMESG-WARN
fi-kbl-r: PASS -> DMESG-WARN
fi-kbl-x1275: PASS -> DMESG-WARN
{fi-bsw-kefka}: PASS -> DMESG-WARN
fi-snb-2520m: PASS -> DMESG-WARN
fi-bdw-gvtdvm: PASS -> DMESG-WARN
fi-bxt-j4205: PASS -> DMESG-WARN
fi-skl-6700hq: PASS -> DMESG-WARN
fi-cfl-s3: PASS -> DMESG-WARN
{fi-cfl-8109u}: PASS -> DMESG-WARN
fi-kbl-7500u: PASS -> DMESG-WARN
fi-cfl-8700k: PASS -> DMESG-WARN
{fi-bdw-samus}: PASS -> DMESG-WARN
fi-glk-dsi: PASS -> DMESG-WARN
fi-kbl-7567u: PASS -> DMESG-WARN
fi-skl-6600u: PASS -> DMESG-WARN
fi-bsw-n3050: PASS -> DMESG-WARN
fi-skl-gvtdvm: PASS -> DMESG-WARN
fi-glk-j4005: PASS -> DMESG-WARN
{fi-skl-iommu}: PASS -> DMESG-WARN
fi-skl-6260u: PASS -> DMESG-WARN
fi-bxt-dsi: PASS -> DMESG-WARN
fi-skl-6700k2: PASS -> DMESG-WARN
igt@gem_ctx_exec@basic:
fi-hsw-4770: PASS -> DMESG-WARN
igt@gem_ctx_switch@basic-default:
fi-ivb-3520m: PASS -> DMESG-WARN
igt@gem_ctx_switch@basic-default-heavy:
fi-byt-n2820: PASS -> DMESG-WARN
fi-byt-j1900: PASS -> DMESG-WARN
igt@gem_exec_reloc@basic-cpu-active:
fi-gdg-551: PASS -> DMESG-WARN
fi-bwr-2160: PASS -> DMESG-WARN
igt@gem_render_tiled_blits@basic:
fi-elk-e7500: PASS -> DMESG-WARN
fi-ilk-650: PASS -> DMESG-WARN
fi-blb-e6850: PASS -> DMESG-WARN
== Known issues ==
Here are the changes found in Patchwork_9805 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@drv_selftest@live_hangcheck:
fi-kbl-7560u: PASS -> DMESG-FAIL (fdo#106560, fdo#106947)
igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
fi-skl-guc: PASS -> FAIL (fdo#103191)
igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
fi-bxt-dsi: PASS -> INCOMPLETE (fdo#103927)
==== Possible fixes ====
igt@drv_selftest@live_workarounds:
fi-cnl-psr: DMESG-FAIL (fdo#107292) -> PASS
{igt@kms_psr@primary_mmap_gtt}:
fi-cnl-psr: DMESG-WARN (fdo#107372) -> PASS
==== Warnings ====
{igt@kms_psr@primary_page_flip}:
fi-cnl-psr: DMESG-WARN (fdo#107372) -> DMESG-FAIL (fdo#107372)
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
fdo#106947 https://bugs.freedesktop.org/show_bug.cgi?id=106947
fdo#107292 https://bugs.freedesktop.org/show_bug.cgi?id=107292
fdo#107372 https://bugs.freedesktop.org/show_bug.cgi?id=107372
== Participating hosts (52 -> 43) ==
Missing (9): fi-ilk-m540 fi-hsw-4200u fi-hsw-peppy fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-pnv-d510 fi-icl-u fi-byt-clapper
== Build changes ==
* Linux: CI_DRM_4592 -> Patchwork_9805
CI_DRM_4592: ed4b6c987889caf5a4041cf78eacdede85964577 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4580: f1c868dae24056ebc27e4f3c197724ce9b956a8a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9805: 977c48c6d84b75960216e1cc7f98be74dd068eeb @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
977c48c6d84b drm/i915: Limit C-states when waiting for the active request
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9805/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2] drm/i915: Limit C-states when waiting for the active request
2018-07-30 11:29 [PATCH] drm/i915: Limit C-states when waiting for the active request Chris Wilson
2018-07-30 11:31 ` Chris Wilson
2018-07-30 12:05 ` ✗ Fi.CI.BAT: failure for drm/i915: Limit C-states when waiting for the active request (rev2) Patchwork
@ 2018-07-30 12:14 ` Chris Wilson
2018-07-30 12:25 ` Chris Wilson
2018-07-30 12:39 ` [PATCH v3] " Chris Wilson
` (6 subsequent siblings)
9 siblings, 1 reply; 15+ messages in thread
From: Chris Wilson @ 2018-07-30 12:14 UTC (permalink / raw)
To: intel-gfx; +Cc: Eero Tamminen
If we are waiting for the currently executing request, we have a good
idea that it will be completed in the very near future and so want to
cap the CPU_DMA_LATENCY to ensure that we wake up the client quickly.
v2: Not allowed to block in kmalloc after setting TASK_INTERRUPTIBLE.
Testcase: igt/gem_sync/store-default
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Eero Tamminen <eero.t.tamminen@intel.com>
Cc: Francisco Jerez <currojerez@riseup.net>
---
drivers/gpu/drm/i915/i915_request.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index 5c2c93cbab12..de907150664e 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -1258,6 +1258,19 @@ static bool __i915_wait_request_check_and_reset(struct i915_request *request)
return true;
}
+struct pm_qos {
+ struct pm_qos_request req;
+ struct work_struct work;
+};
+
+static void pm_qos_del(struct work_struct *work)
+{
+ struct pm_qos *pm_qos = container_of(work, typeof(*pm_qos), work);
+
+ pm_qos_remove_request(&pm_qos->req);
+ kfree(pm_qos);
+}
+
/**
* i915_request_wait - wait until execution of request has finished
* @rq: the request to wait upon
@@ -1286,6 +1299,7 @@ long i915_request_wait(struct i915_request *rq,
wait_queue_head_t *errq = &rq->i915->gpu_error.wait_queue;
DEFINE_WAIT_FUNC(reset, default_wake_function);
DEFINE_WAIT_FUNC(exec, default_wake_function);
+ struct pm_qos *pm_qos = NULL;
struct intel_wait wait;
might_sleep();
@@ -1363,6 +1377,19 @@ long i915_request_wait(struct i915_request *rq,
break;
}
+ if (!pm_qos &&
+ i915_seqno_passed(intel_engine_get_seqno(rq->engine),
+ wait.seqno - 1)) {
+ pm_qos = kzalloc(sizeof(*pm_qos),
+ GFP_NOWAIT | __GFP_NOWARN);
+ if (pm_qos) {
+ pm_qos_add_request(&pm_qos->req,
+ PM_QOS_CPU_DMA_LATENCY,
+ 50);
+ INIT_WORK(&pm_qos->work, pm_qos_del);
+ }
+ }
+
timeout = io_schedule_timeout(timeout);
if (intel_wait_complete(&wait) &&
@@ -1412,6 +1439,8 @@ long i915_request_wait(struct i915_request *rq,
if (flags & I915_WAIT_LOCKED)
remove_wait_queue(errq, &reset);
remove_wait_queue(&rq->execute, &exec);
+ if (pm_qos)
+ schedule_work(&pm_qos->work);
trace_i915_request_wait_end(rq);
return timeout;
--
2.18.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v2] drm/i915: Limit C-states when waiting for the active request
2018-07-30 12:14 ` [PATCH v2] drm/i915: Limit C-states when waiting for the active request Chris Wilson
@ 2018-07-30 12:25 ` Chris Wilson
2018-07-30 12:27 ` Chris Wilson
0 siblings, 1 reply; 15+ messages in thread
From: Chris Wilson @ 2018-07-30 12:25 UTC (permalink / raw)
To: intel-gfx; +Cc: Eero Tamminen
Quoting Chris Wilson (2018-07-30 13:14:09)
> If we are waiting for the currently executing request, we have a good
> idea that it will be completed in the very near future and so want to
> cap the CPU_DMA_LATENCY to ensure that we wake up the client quickly.
>
> v2: Not allowed to block in kmalloc after setting TASK_INTERRUPTIBLE.
>
> Testcase: igt/gem_sync/store-default
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Eero Tamminen <eero.t.tamminen@intel.com>
> Cc: Francisco Jerez <currojerez@riseup.net>
> ---
> drivers/gpu/drm/i915/i915_request.c | 29 +++++++++++++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
> index 5c2c93cbab12..de907150664e 100644
> --- a/drivers/gpu/drm/i915/i915_request.c
> +++ b/drivers/gpu/drm/i915/i915_request.c
> @@ -1258,6 +1258,19 @@ static bool __i915_wait_request_check_and_reset(struct i915_request *request)
> return true;
> }
>
> +struct pm_qos {
> + struct pm_qos_request req;
> + struct work_struct work;
> +};
> +
> +static void pm_qos_del(struct work_struct *work)
> +{
> + struct pm_qos *pm_qos = container_of(work, typeof(*pm_qos), work);
> +
> + pm_qos_remove_request(&pm_qos->req);
> + kfree(pm_qos);
> +}
> +
> /**
> * i915_request_wait - wait until execution of request has finished
> * @rq: the request to wait upon
> @@ -1286,6 +1299,7 @@ long i915_request_wait(struct i915_request *rq,
> wait_queue_head_t *errq = &rq->i915->gpu_error.wait_queue;
> DEFINE_WAIT_FUNC(reset, default_wake_function);
> DEFINE_WAIT_FUNC(exec, default_wake_function);
> + struct pm_qos *pm_qos = NULL;
> struct intel_wait wait;
>
> might_sleep();
> @@ -1363,6 +1377,19 @@ long i915_request_wait(struct i915_request *rq,
> break;
> }
>
> + if (!pm_qos &&
> + i915_seqno_passed(intel_engine_get_seqno(rq->engine),
> + wait.seqno - 1)) {
> + pm_qos = kzalloc(sizeof(*pm_qos),
> + GFP_NOWAIT | __GFP_NOWARN);
> + if (pm_qos) {
> + pm_qos_add_request(&pm_qos->req,
> + PM_QOS_CPU_DMA_LATENCY,
> + 50);
Ho hum, it should also then complain about the blocking notifier
here. Let's see how observant it is...
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2] drm/i915: Limit C-states when waiting for the active request
2018-07-30 12:25 ` Chris Wilson
@ 2018-07-30 12:27 ` Chris Wilson
0 siblings, 0 replies; 15+ messages in thread
From: Chris Wilson @ 2018-07-30 12:27 UTC (permalink / raw)
To: intel-gfx; +Cc: Eero Tamminen
Quoting Chris Wilson (2018-07-30 13:25:03)
> Quoting Chris Wilson (2018-07-30 13:14:09)
> > + if (!pm_qos &&
> > + i915_seqno_passed(intel_engine_get_seqno(rq->engine),
> > + wait.seqno - 1)) {
> > + pm_qos = kzalloc(sizeof(*pm_qos),
> > + GFP_NOWAIT | __GFP_NOWARN);
> > + if (pm_qos) {
> > + pm_qos_add_request(&pm_qos->req,
> > + PM_QOS_CPU_DMA_LATENCY,
> > + 50);
>
> Ho hum, it should also then complain about the blocking notifier
> here. Let's see how observant it is...
Though that was kind of the intention as we could afford to lose a bit
of time before sleeping, so I don't think the blocking notifier itself
is a big deal... It would be a bit of a nuisance to avoid, the easiest
might be to reuse the work.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v3] drm/i915: Limit C-states when waiting for the active request
2018-07-30 11:29 [PATCH] drm/i915: Limit C-states when waiting for the active request Chris Wilson
` (2 preceding siblings ...)
2018-07-30 12:14 ` [PATCH v2] drm/i915: Limit C-states when waiting for the active request Chris Wilson
@ 2018-07-30 12:39 ` Chris Wilson
2018-07-30 13:07 ` Mika Kuoppala
2018-07-30 13:39 ` [PATCH v4] " Chris Wilson
` (5 subsequent siblings)
9 siblings, 1 reply; 15+ messages in thread
From: Chris Wilson @ 2018-07-30 12:39 UTC (permalink / raw)
To: intel-gfx; +Cc: Eero Tamminen
If we are waiting for the currently executing request, we have a good
idea that it will be completed in the very near future and so want to
cap the CPU_DMA_LATENCY to ensure that we wake up the client quickly.
v2: Not allowed to block in kmalloc after setting TASK_INTERRUPTIBLE.
v3: Avoid the blocking notifier as well for TASK_INTERRUPTIBLE
Testcase: igt/gem_sync/store-default
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Eero Tamminen <eero.t.tamminen@intel.com>
Cc: Francisco Jerez <currojerez@riseup.net>
---
drivers/gpu/drm/i915/i915_request.c | 38 +++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index 5c2c93cbab12..7c7746ef0d1b 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -1258,6 +1258,28 @@ static bool __i915_wait_request_check_and_reset(struct i915_request *request)
return true;
}
+struct pm_qos {
+ struct pm_qos_request req;
+ struct work_struct add, del;
+};
+
+static void pm_qos_add(struct work_struct *work)
+{
+ struct pm_qos *pm_qos = container_of(work, typeof(*pm_qos), add);
+
+ pm_qos_add_request(&pm_qos->req, PM_QOS_CPU_DMA_LATENCY, 50);
+}
+
+static void pm_qos_del(struct work_struct *work)
+{
+ struct pm_qos *pm_qos = container_of(work, typeof(*pm_qos), del);
+
+ if (!cancel_work_sync(&pm_qos->add))
+ pm_qos_remove_request(&pm_qos->req);
+
+ kfree(pm_qos);
+}
+
/**
* i915_request_wait - wait until execution of request has finished
* @rq: the request to wait upon
@@ -1286,6 +1308,7 @@ long i915_request_wait(struct i915_request *rq,
wait_queue_head_t *errq = &rq->i915->gpu_error.wait_queue;
DEFINE_WAIT_FUNC(reset, default_wake_function);
DEFINE_WAIT_FUNC(exec, default_wake_function);
+ struct pm_qos *pm_qos = NULL;
struct intel_wait wait;
might_sleep();
@@ -1363,6 +1386,19 @@ long i915_request_wait(struct i915_request *rq,
break;
}
+ if (!pm_qos &&
+ i915_seqno_passed(intel_engine_get_seqno(rq->engine),
+ wait.seqno - 1)) {
+ pm_qos = kzalloc(sizeof(*pm_qos),
+ GFP_NOWAIT | __GFP_NOWARN);
+ if (pm_qos) {
+ INIT_WORK(&pm_qos->add, pm_qos_add);
+ INIT_WORK(&pm_qos->del, pm_qos_del);
+ schedule_work_on(smp_processor_id(),
+ &pm_qos->add);
+ }
+ }
+
timeout = io_schedule_timeout(timeout);
if (intel_wait_complete(&wait) &&
@@ -1412,6 +1448,8 @@ long i915_request_wait(struct i915_request *rq,
if (flags & I915_WAIT_LOCKED)
remove_wait_queue(errq, &reset);
remove_wait_queue(&rq->execute, &exec);
+ if (pm_qos)
+ schedule_work(&pm_qos->del);
trace_i915_request_wait_end(rq);
return timeout;
--
2.18.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v3] drm/i915: Limit C-states when waiting for the active request
2018-07-30 12:39 ` [PATCH v3] " Chris Wilson
@ 2018-07-30 13:07 ` Mika Kuoppala
2018-07-30 13:27 ` Chris Wilson
0 siblings, 1 reply; 15+ messages in thread
From: Mika Kuoppala @ 2018-07-30 13:07 UTC (permalink / raw)
To: Chris Wilson, intel-gfx; +Cc: Eero Tamminen
Chris Wilson <chris@chris-wilson.co.uk> writes:
> If we are waiting for the currently executing request, we have a good
> idea that it will be completed in the very near future and so want to
> cap the CPU_DMA_LATENCY to ensure that we wake up the client quickly.
>
> v2: Not allowed to block in kmalloc after setting TASK_INTERRUPTIBLE.
> v3: Avoid the blocking notifier as well for TASK_INTERRUPTIBLE
>
> Testcase: igt/gem_sync/store-default
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Eero Tamminen <eero.t.tamminen@intel.com>
> Cc: Francisco Jerez <currojerez@riseup.net>
> ---
> drivers/gpu/drm/i915/i915_request.c | 38 +++++++++++++++++++++++++++++
> 1 file changed, 38 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
> index 5c2c93cbab12..7c7746ef0d1b 100644
> --- a/drivers/gpu/drm/i915/i915_request.c
> +++ b/drivers/gpu/drm/i915/i915_request.c
> @@ -1258,6 +1258,28 @@ static bool __i915_wait_request_check_and_reset(struct i915_request *request)
> return true;
> }
>
> +struct pm_qos {
> + struct pm_qos_request req;
> + struct work_struct add, del;
> +};
> +
> +static void pm_qos_add(struct work_struct *work)
> +{
> + struct pm_qos *pm_qos = container_of(work, typeof(*pm_qos), add);
> +
> + pm_qos_add_request(&pm_qos->req, PM_QOS_CPU_DMA_LATENCY, 50);
> +}
> +
> +static void pm_qos_del(struct work_struct *work)
> +{
> + struct pm_qos *pm_qos = container_of(work, typeof(*pm_qos), del);
> +
> + if (!cancel_work_sync(&pm_qos->add))
> + pm_qos_remove_request(&pm_qos->req);
> +
> + kfree(pm_qos);
> +}
> +
> /**
> * i915_request_wait - wait until execution of request has finished
> * @rq: the request to wait upon
> @@ -1286,6 +1308,7 @@ long i915_request_wait(struct i915_request *rq,
> wait_queue_head_t *errq = &rq->i915->gpu_error.wait_queue;
> DEFINE_WAIT_FUNC(reset, default_wake_function);
> DEFINE_WAIT_FUNC(exec, default_wake_function);
> + struct pm_qos *pm_qos = NULL;
> struct intel_wait wait;
>
> might_sleep();
> @@ -1363,6 +1386,19 @@ long i915_request_wait(struct i915_request *rq,
> break;
> }
>
> + if (!pm_qos &&
> + i915_seqno_passed(intel_engine_get_seqno(rq->engine),
> + wait.seqno - 1)) {
> + pm_qos = kzalloc(sizeof(*pm_qos),
> + GFP_NOWAIT | __GFP_NOWARN);
> + if (pm_qos) {
> + INIT_WORK(&pm_qos->add, pm_qos_add);
> + INIT_WORK(&pm_qos->del, pm_qos_del);
> + schedule_work_on(smp_processor_id(),
> + &pm_qos->add);
> + }
My immediate thoughts are on why this and not preallocate pm_qos
on init/fini and just add/remove requests on suitable spots?
-Mika
> + }
> +
> timeout = io_schedule_timeout(timeout);
>
> if (intel_wait_complete(&wait) &&
> @@ -1412,6 +1448,8 @@ long i915_request_wait(struct i915_request *rq,
> if (flags & I915_WAIT_LOCKED)
> remove_wait_queue(errq, &reset);
> remove_wait_queue(&rq->execute, &exec);
> + if (pm_qos)
> + schedule_work(&pm_qos->del);
> trace_i915_request_wait_end(rq);
>
> return timeout;
> --
> 2.18.0
>
> _______________________________________________
> 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] 15+ messages in thread
* Re: [PATCH v3] drm/i915: Limit C-states when waiting for the active request
2018-07-30 13:07 ` Mika Kuoppala
@ 2018-07-30 13:27 ` Chris Wilson
0 siblings, 0 replies; 15+ messages in thread
From: Chris Wilson @ 2018-07-30 13:27 UTC (permalink / raw)
To: Mika Kuoppala, intel-gfx; +Cc: Eero Tamminen
Quoting Mika Kuoppala (2018-07-30 14:07:07)
> Chris Wilson <chris@chris-wilson.co.uk> writes:
>
> > If we are waiting for the currently executing request, we have a good
> > idea that it will be completed in the very near future and so want to
> > cap the CPU_DMA_LATENCY to ensure that we wake up the client quickly.
> >
> > v2: Not allowed to block in kmalloc after setting TASK_INTERRUPTIBLE.
> > v3: Avoid the blocking notifier as well for TASK_INTERRUPTIBLE
> >
> > Testcase: igt/gem_sync/store-default
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> > Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> > Cc: Eero Tamminen <eero.t.tamminen@intel.com>
> > Cc: Francisco Jerez <currojerez@riseup.net>
> > ---
> > drivers/gpu/drm/i915/i915_request.c | 38 +++++++++++++++++++++++++++++
> > 1 file changed, 38 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
> > index 5c2c93cbab12..7c7746ef0d1b 100644
> > --- a/drivers/gpu/drm/i915/i915_request.c
> > +++ b/drivers/gpu/drm/i915/i915_request.c
> > @@ -1258,6 +1258,28 @@ static bool __i915_wait_request_check_and_reset(struct i915_request *request)
> > return true;
> > }
> >
> > +struct pm_qos {
> > + struct pm_qos_request req;
> > + struct work_struct add, del;
> > +};
> > +
> > +static void pm_qos_add(struct work_struct *work)
> > +{
> > + struct pm_qos *pm_qos = container_of(work, typeof(*pm_qos), add);
> > +
> > + pm_qos_add_request(&pm_qos->req, PM_QOS_CPU_DMA_LATENCY, 50);
> > +}
> > +
> > +static void pm_qos_del(struct work_struct *work)
> > +{
> > + struct pm_qos *pm_qos = container_of(work, typeof(*pm_qos), del);
> > +
> > + if (!cancel_work_sync(&pm_qos->add))
> > + pm_qos_remove_request(&pm_qos->req);
> > +
> > + kfree(pm_qos);
> > +}
> > +
> > /**
> > * i915_request_wait - wait until execution of request has finished
> > * @rq: the request to wait upon
> > @@ -1286,6 +1308,7 @@ long i915_request_wait(struct i915_request *rq,
> > wait_queue_head_t *errq = &rq->i915->gpu_error.wait_queue;
> > DEFINE_WAIT_FUNC(reset, default_wake_function);
> > DEFINE_WAIT_FUNC(exec, default_wake_function);
> > + struct pm_qos *pm_qos = NULL;
> > struct intel_wait wait;
> >
> > might_sleep();
> > @@ -1363,6 +1386,19 @@ long i915_request_wait(struct i915_request *rq,
> > break;
> > }
> >
> > + if (!pm_qos &&
> > + i915_seqno_passed(intel_engine_get_seqno(rq->engine),
> > + wait.seqno - 1)) {
> > + pm_qos = kzalloc(sizeof(*pm_qos),
> > + GFP_NOWAIT | __GFP_NOWARN);
> > + if (pm_qos) {
> > + INIT_WORK(&pm_qos->add, pm_qos_add);
> > + INIT_WORK(&pm_qos->del, pm_qos_del);
> > + schedule_work_on(smp_processor_id(),
> > + &pm_qos->add);
> > + }
>
> My immediate thoughts are on why this and not preallocate pm_qos
> on init/fini and just add/remove requests on suitable spots?
For simplicity, we want multiple requests. Now we could go the global
route, to save on the kmalloc/kfree; I wasn't sure if that was worth it.
The principle cost is on the kmalloc from the per-cpu slab, which we
only need before sleeping after having already checked with a short spin
that the request isn't likely to complete immediately. We would still
need to use workers to avoid the blocking notifier, especially in client
wakeup.
The way it is structured should mean that only one waiter at a time on
each engine will need to allocate, so shouldn't be frequent enough to
worry about (certainly gem_sync --run store-default isn't too alarming,
that's the test case that goes from 900us to 170us on bxt, and is
hitting the kmalloc on every iteration, and has no more latency than if
we purely busy-waited.)
The only critical factor then is readability. Is it terrible? Maybe a
small pm_qos = pm_qos_create(). And a better name than pm_qos so that we
associate it with the wait: struct wait_dma_qos?
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v4] drm/i915: Limit C-states when waiting for the active request
2018-07-30 11:29 [PATCH] drm/i915: Limit C-states when waiting for the active request Chris Wilson
` (3 preceding siblings ...)
2018-07-30 12:39 ` [PATCH v3] " Chris Wilson
@ 2018-07-30 13:39 ` Chris Wilson
2018-07-30 13:51 ` ✗ Fi.CI.BAT: failure for drm/i915: Limit C-states when waiting for the active request (rev4) Patchwork
` (4 subsequent siblings)
9 siblings, 0 replies; 15+ messages in thread
From: Chris Wilson @ 2018-07-30 13:39 UTC (permalink / raw)
To: intel-gfx; +Cc: Eero Tamminen
If we are waiting for the currently executing request, we have a good
idea that it will be completed in the very near future and so want to
cap the CPU_DMA_LATENCY to ensure that we wake up the client quickly.
v2: Not allowed to block in kmalloc after setting TASK_INTERRUPTIBLE.
v3: Avoid the blocking notifier as well for TASK_INTERRUPTIBLE
v4: Beautification?
Testcase: igt/gem_sync/store-default
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Eero Tamminen <eero.t.tamminen@intel.com>
Cc: Francisco Jerez <currojerez@riseup.net>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
---
drivers/gpu/drm/i915/i915_request.c | 52 +++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index 5c2c93cbab12..0e47facaad70 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -1258,6 +1258,51 @@ static bool __i915_wait_request_check_and_reset(struct i915_request *request)
return true;
}
+struct wait_dma_qos {
+ struct pm_qos_request req;
+ struct work_struct add, del;
+};
+
+static void __wait_dma_qos_add(struct work_struct *work)
+{
+ struct wait_dma_qos *qos = container_of(work, typeof(*qos), add);
+
+ pm_qos_add_request(&qos->req, PM_QOS_CPU_DMA_LATENCY, 50);
+}
+
+static void __wait_dma_qos_del(struct work_struct *work)
+{
+ struct wait_dma_qos *qos = container_of(work, typeof(*qos), del);
+
+ if (!cancel_work_sync(&qos->add))
+ pm_qos_remove_request(&qos->req);
+
+ kfree(qos);
+}
+
+static struct wait_dma_qos *wait_dma_qos_add(void)
+{
+ struct wait_dma_qos *qos;
+
+ /* Called under TASK_INTERRUPTIBLE, so not allowed to sleep/block. */
+ qos = kzalloc(sizeof(*qos), GFP_NOWAIT | __GFP_NOWARN);
+ if (!qos)
+ return NULL;
+
+ INIT_WORK(&qos->add, __wait_dma_qos_add);
+ INIT_WORK(&qos->del, __wait_dma_qos_del);
+ schedule_work_on(smp_processor_id(), &qos->add);
+
+ return qos;
+}
+
+static void wait_dma_qos_del(struct wait_dma_qos *qos)
+{
+ /* Defer to worker so not incur extra latency for our woken client. */
+ if (qos)
+ schedule_work(&qos->del);
+}
+
/**
* i915_request_wait - wait until execution of request has finished
* @rq: the request to wait upon
@@ -1286,6 +1331,7 @@ long i915_request_wait(struct i915_request *rq,
wait_queue_head_t *errq = &rq->i915->gpu_error.wait_queue;
DEFINE_WAIT_FUNC(reset, default_wake_function);
DEFINE_WAIT_FUNC(exec, default_wake_function);
+ struct wait_dma_qos *qos = NULL;
struct intel_wait wait;
might_sleep();
@@ -1363,6 +1409,11 @@ long i915_request_wait(struct i915_request *rq,
break;
}
+ if (!qos &&
+ i915_seqno_passed(intel_engine_get_seqno(rq->engine),
+ wait.seqno - 1))
+ qos = wait_dma_qos_add();
+
timeout = io_schedule_timeout(timeout);
if (intel_wait_complete(&wait) &&
@@ -1412,6 +1463,7 @@ long i915_request_wait(struct i915_request *rq,
if (flags & I915_WAIT_LOCKED)
remove_wait_queue(errq, &reset);
remove_wait_queue(&rq->execute, &exec);
+ wait_dma_qos_del(qos);
trace_i915_request_wait_end(rq);
return timeout;
--
2.18.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 15+ messages in thread
* ✗ Fi.CI.BAT: failure for drm/i915: Limit C-states when waiting for the active request (rev4)
2018-07-30 11:29 [PATCH] drm/i915: Limit C-states when waiting for the active request Chris Wilson
` (4 preceding siblings ...)
2018-07-30 13:39 ` [PATCH v4] " Chris Wilson
@ 2018-07-30 13:51 ` Patchwork
2018-07-30 13:55 ` [PATCH v5] drm/i915: Limit C-states when waiting for the active request Chris Wilson
` (3 subsequent siblings)
9 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2018-07-30 13:51 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Limit C-states when waiting for the active request (rev4)
URL : https://patchwork.freedesktop.org/series/47420/
State : failure
== Summary ==
= CI Bug Log - changes from CI_DRM_4594 -> Patchwork_9808 =
== Summary - FAILURE ==
Serious unknown changes coming with Patchwork_9808 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_9808, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://patchwork.freedesktop.org/api/1.0/series/47420/revisions/4/mbox/
== Possible new issues ==
Here are the unknown changes that may have been introduced in Patchwork_9808:
=== IGT changes ===
==== Possible regressions ====
igt@drv_module_reload@basic-reload:
fi-skl-guc: PASS -> DMESG-WARN +51
igt@drv_selftest@live_coherency:
fi-cnl-psr: PASS -> DMESG-WARN +53
fi-bdw-5557u: PASS -> DMESG-WARN +37
igt@drv_selftest@live_evict:
fi-kbl-guc: PASS -> DMESG-WARN +65
igt@drv_selftest@live_hangcheck:
fi-snb-2520m: PASS -> DMESG-WARN +47
{fi-bdw-samus}: PASS -> DMESG-WARN +36
{fi-kbl-8809g}: NOTRUN -> DMESG-WARN +51
fi-skl-gvtdvm: PASS -> DMESG-WARN
fi-bdw-gvtdvm: PASS -> DMESG-WARN
igt@drv_selftest@live_hugepages:
fi-cfl-s3: PASS -> DMESG-WARN +52
igt@drv_selftest@live_requests:
fi-whl-u: PASS -> DMESG-WARN +51
igt@drv_selftest@live_workarounds:
fi-kbl-r: PASS -> DMESG-WARN +51
igt@drv_selftest@mock_requests:
fi-bwr-2160: PASS -> DMESG-WARN +8
igt@gem_ctx_exec@basic:
fi-bxt-j4205: PASS -> DMESG-WARN +60
fi-skl-6700hq: PASS -> DMESG-WARN +49
igt@gem_exec_create@basic:
{fi-bsw-kefka}: PASS -> DMESG-WARN +44
igt@gem_exec_fence@basic-await-default:
fi-skl-6700k2: PASS -> DMESG-WARN +53
igt@gem_exec_flush@basic-batch-kernel-default-wb:
fi-kbl-7567u: PASS -> DMESG-WARN +59
fi-kbl-x1275: PASS -> DMESG-WARN +54
igt@gem_exec_flush@basic-uc-prw-default:
{fi-icl-u}: NOTRUN -> DMESG-WARN +50
igt@gem_exec_flush@basic-uc-ro-default:
fi-cfl-guc: PASS -> DMESG-WARN +59
igt@gem_exec_flush@basic-uc-rw-default:
fi-hsw-4770: PASS -> DMESG-WARN +40
igt@gem_exec_flush@basic-wb-pro-default:
fi-skl-6600u: PASS -> DMESG-WARN +49
fi-skl-6770hq: PASS -> DMESG-WARN +42
igt@gem_exec_flush@basic-wb-ro-default:
{fi-skl-caroline}: PASS -> DMESG-WARN +33
igt@gem_exec_flush@basic-wb-set-default:
fi-snb-2600: PASS -> DMESG-WARN +45
igt@gem_exec_reloc@basic-cpu-gtt-active:
fi-bsw-n3050: PASS -> DMESG-WARN +38
fi-ivb-3770: PASS -> DMESG-WARN +34
igt@gem_exec_reloc@basic-cpu-read:
{fi-skl-iommu}: PASS -> DMESG-WARN +47
fi-cfl-8700k: PASS -> DMESG-WARN +54
igt@gem_exec_reloc@basic-cpu-read-noreloc:
fi-glk-dsi: PASS -> DMESG-WARN +52
igt@gem_exec_reloc@basic-gtt-noreloc:
fi-glk-j4005: PASS -> DMESG-WARN +60
igt@gem_linear_blits@basic:
fi-hsw-4770r: PASS -> DMESG-WARN +34
fi-gdg-551: PASS -> DMESG-WARN +6
igt@gem_render_linear_blits@basic:
fi-hsw-peppy: PASS -> DMESG-WARN +35
fi-byt-n2820: PASS -> DMESG-WARN +33
igt@gem_render_tiled_blits@basic:
fi-ivb-3520m: PASS -> DMESG-WARN +21
fi-elk-e7500: PASS -> DMESG-WARN +6
fi-ilk-650: PASS -> DMESG-WARN +9
fi-pnv-d510: PASS -> DMESG-WARN +7
igt@gem_sync@basic-many-each:
fi-bxt-dsi: PASS -> DMESG-WARN +60
igt@gem_sync@basic-store-all:
fi-kbl-7500u: PASS -> DMESG-WARN +55
igt@gem_sync@basic-store-each:
fi-blb-e6850: PASS -> DMESG-WARN +5
fi-skl-6260u: PASS -> DMESG-WARN +47
igt@prime_vgem@basic-fence-wait-default:
{fi-cfl-8109u}: PASS -> DMESG-WARN +52
== Known issues ==
Here are the changes found in Patchwork_9808 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@debugfs_test@read_all_entries:
{fi-icl-u}: NOTRUN -> DMESG-WARN (fdo#107396)
igt@drv_module_reload@basic-reload-inject:
fi-hsw-4770r: PASS -> DMESG-WARN (fdo#107425)
igt@drv_selftest@live_coherency:
fi-skl-6770hq: PASS -> DMESG-WARN (fdo#107175) +3
fi-skl-6260u: PASS -> DMESG-WARN (fdo#107175) +3
igt@drv_selftest@live_hangcheck:
{fi-icl-u}: NOTRUN -> INCOMPLETE (fdo#107399)
fi-kbl-7567u: PASS -> DMESG-FAIL (fdo#106560, fdo#106947)
igt@drv_selftest@live_hugepages:
fi-skl-6600u: PASS -> DMESG-WARN (fdo#107175) +4
fi-skl-6700k2: PASS -> DMESG-WARN (fdo#107175) +4
igt@drv_selftest@live_objects:
{fi-icl-u}: NOTRUN -> DMESG-FAIL (fdo#107398)
igt@drv_selftest@live_requests:
fi-skl-6700hq: PASS -> DMESG-WARN (fdo#107175) +4
{fi-skl-iommu}: PASS -> DMESG-WARN (fdo#107175) +3
fi-skl-guc: PASS -> DMESG-WARN (fdo#107175) +8
igt@drv_selftest@live_workarounds:
{fi-cfl-8109u}: PASS -> DMESG-FAIL (fdo#107292)
igt@gem_exec_suspend@basic-s4-devices:
fi-kbl-guc: PASS -> DMESG-WARN (fdo#107139)
igt@gem_workarounds@basic-read:
{fi-icl-u}: NOTRUN -> FAIL (fdo#107338)
igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
{fi-icl-u}: NOTRUN -> DMESG-WARN (fdo#107382) +4
{igt@kms_psr@primary_page_flip}:
{fi-icl-u}: NOTRUN -> FAIL (fdo#107383) +3
==== Possible fixes ====
igt@drv_selftest@live_coherency:
fi-gdg-551: DMESG-FAIL (fdo#107164) -> PASS
igt@kms_chamelium@hdmi-edid-read:
fi-kbl-7500u: FAIL (fdo#103841) -> SKIP
igt@kms_chamelium@hdmi-hpd-fast:
fi-kbl-7500u: FAIL (fdo#103841, fdo#102672) -> SKIP
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
fdo#102672 https://bugs.freedesktop.org/show_bug.cgi?id=102672
fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841
fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
fdo#106947 https://bugs.freedesktop.org/show_bug.cgi?id=106947
fdo#107139 https://bugs.freedesktop.org/show_bug.cgi?id=107139
fdo#107164 https://bugs.freedesktop.org/show_bug.cgi?id=107164
fdo#107175 https://bugs.freedesktop.org/show_bug.cgi?id=107175
fdo#107292 https://bugs.freedesktop.org/show_bug.cgi?id=107292
fdo#107338 https://bugs.freedesktop.org/show_bug.cgi?id=107338
fdo#107382 https://bugs.freedesktop.org/show_bug.cgi?id=107382
fdo#107383 https://bugs.freedesktop.org/show_bug.cgi?id=107383
fdo#107396 https://bugs.freedesktop.org/show_bug.cgi?id=107396
fdo#107398 https://bugs.freedesktop.org/show_bug.cgi?id=107398
fdo#107399 https://bugs.freedesktop.org/show_bug.cgi?id=107399
fdo#107425 https://bugs.freedesktop.org/show_bug.cgi?id=107425
== Participating hosts (51 -> 45) ==
Additional (2): fi-icl-u fi-kbl-8809g
Missing (8): fi-ilk-m540 fi-hsw-4200u fi-byt-j1900 fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-kbl-7560u fi-byt-clapper
== Build changes ==
* Linux: CI_DRM_4594 -> Patchwork_9808
CI_DRM_4594: bebee8b5e1691b4b0a356a9b6443f9793e7f15d9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4581: f1c868dae24056ebc27e4f3c197724ce9b956a8a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9808: 253c03d6968553feccbef93c8850609bac2fe343 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
253c03d69685 drm/i915: Limit C-states when waiting for the active request
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9808/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v5] drm/i915: Limit C-states when waiting for the active request
2018-07-30 11:29 [PATCH] drm/i915: Limit C-states when waiting for the active request Chris Wilson
` (5 preceding siblings ...)
2018-07-30 13:51 ` ✗ Fi.CI.BAT: failure for drm/i915: Limit C-states when waiting for the active request (rev4) Patchwork
@ 2018-07-30 13:55 ` Chris Wilson
2018-07-30 14:19 ` ✗ Fi.CI.BAT: failure for drm/i915: Limit C-states when waiting for the active request (rev5) Patchwork
` (2 subsequent siblings)
9 siblings, 0 replies; 15+ messages in thread
From: Chris Wilson @ 2018-07-30 13:55 UTC (permalink / raw)
To: intel-gfx; +Cc: Eero Tamminen
If we are waiting for the currently executing request, we have a good
idea that it will be completed in the very near future and so want to
cap the CPU_DMA_LATENCY to ensure that we wake up the client quickly.
v2: Not allowed to block in kmalloc after setting TASK_INTERRUPTIBLE.
v3: Avoid the blocking notifier as well for TASK_INTERRUPTIBLE
v4: Beautification?
v5: And ignore the preemptibility of queue_work before schedule.
Testcase: igt/gem_sync/store-default
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Eero Tamminen <eero.t.tamminen@intel.com>
Cc: Francisco Jerez <currojerez@riseup.net>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
---
drivers/gpu/drm/i915/i915_request.c | 52 +++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index 5c2c93cbab12..f3ff8dbe363d 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -1258,6 +1258,51 @@ static bool __i915_wait_request_check_and_reset(struct i915_request *request)
return true;
}
+struct wait_dma_qos {
+ struct pm_qos_request req;
+ struct work_struct add, del;
+};
+
+static void __wait_dma_qos_add(struct work_struct *work)
+{
+ struct wait_dma_qos *qos = container_of(work, typeof(*qos), add);
+
+ pm_qos_add_request(&qos->req, PM_QOS_CPU_DMA_LATENCY, 50);
+}
+
+static void __wait_dma_qos_del(struct work_struct *work)
+{
+ struct wait_dma_qos *qos = container_of(work, typeof(*qos), del);
+
+ if (!cancel_work_sync(&qos->add))
+ pm_qos_remove_request(&qos->req);
+
+ kfree(qos);
+}
+
+static struct wait_dma_qos *wait_dma_qos_add(void)
+{
+ struct wait_dma_qos *qos;
+
+ /* Called under TASK_INTERRUPTIBLE, so not allowed to sleep/block. */
+ qos = kzalloc(sizeof(*qos), GFP_NOWAIT | __GFP_NOWARN);
+ if (!qos)
+ return NULL;
+
+ INIT_WORK(&qos->add, __wait_dma_qos_add);
+ INIT_WORK(&qos->del, __wait_dma_qos_del);
+ schedule_work_on(raw_smp_processor_id(), &qos->add);
+
+ return qos;
+}
+
+static void wait_dma_qos_del(struct wait_dma_qos *qos)
+{
+ /* Defer to worker so not incur extra latency for our woken client. */
+ if (qos)
+ schedule_work(&qos->del);
+}
+
/**
* i915_request_wait - wait until execution of request has finished
* @rq: the request to wait upon
@@ -1286,6 +1331,7 @@ long i915_request_wait(struct i915_request *rq,
wait_queue_head_t *errq = &rq->i915->gpu_error.wait_queue;
DEFINE_WAIT_FUNC(reset, default_wake_function);
DEFINE_WAIT_FUNC(exec, default_wake_function);
+ struct wait_dma_qos *qos = NULL;
struct intel_wait wait;
might_sleep();
@@ -1363,6 +1409,11 @@ long i915_request_wait(struct i915_request *rq,
break;
}
+ if (!qos &&
+ i915_seqno_passed(intel_engine_get_seqno(rq->engine),
+ wait.seqno - 1))
+ qos = wait_dma_qos_add();
+
timeout = io_schedule_timeout(timeout);
if (intel_wait_complete(&wait) &&
@@ -1412,6 +1463,7 @@ long i915_request_wait(struct i915_request *rq,
if (flags & I915_WAIT_LOCKED)
remove_wait_queue(errq, &reset);
remove_wait_queue(&rq->execute, &exec);
+ wait_dma_qos_del(qos);
trace_i915_request_wait_end(rq);
return timeout;
--
2.18.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 15+ messages in thread
* ✗ Fi.CI.BAT: failure for drm/i915: Limit C-states when waiting for the active request (rev5)
2018-07-30 11:29 [PATCH] drm/i915: Limit C-states when waiting for the active request Chris Wilson
` (6 preceding siblings ...)
2018-07-30 13:55 ` [PATCH v5] drm/i915: Limit C-states when waiting for the active request Chris Wilson
@ 2018-07-30 14:19 ` Patchwork
2018-07-30 14:44 ` ✓ Fi.CI.BAT: success for drm/i915: Limit C-states when waiting for the active request (rev6) Patchwork
2018-07-30 15:42 ` ✓ Fi.CI.IGT: " Patchwork
9 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2018-07-30 14:19 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Limit C-states when waiting for the active request (rev5)
URL : https://patchwork.freedesktop.org/series/47420/
State : failure
== Summary ==
= CI Bug Log - changes from CI_DRM_4594 -> Patchwork_9809 =
== Summary - FAILURE ==
Serious unknown changes coming with Patchwork_9809 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_9809, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://patchwork.freedesktop.org/api/1.0/series/47420/revisions/5/mbox/
== Possible new issues ==
Here are the unknown changes that may have been introduced in Patchwork_9809:
=== IGT changes ===
==== Possible regressions ====
igt@drv_module_reload@basic-reload:
fi-skl-guc: PASS -> DMESG-WARN +57
igt@drv_selftest@live_coherency:
fi-cnl-psr: PASS -> DMESG-WARN +48
fi-bdw-5557u: PASS -> DMESG-WARN +35
igt@drv_selftest@live_evict:
fi-kbl-guc: PASS -> DMESG-WARN +64
igt@drv_selftest@live_hangcheck:
{fi-bdw-samus}: PASS -> DMESG-WARN +36
fi-skl-gvtdvm: PASS -> DMESG-WARN
fi-bdw-gvtdvm: PASS -> DMESG-WARN
igt@drv_selftest@live_hugepages:
fi-glk-dsi: PASS -> DMESG-WARN +48
fi-cfl-s3: PASS -> DMESG-WARN +50
{fi-cfl-8109u}: PASS -> DMESG-WARN +52
igt@drv_selftest@live_requests:
fi-whl-u: PASS -> DMESG-WARN +49
igt@drv_selftest@live_workarounds:
fi-kbl-r: PASS -> DMESG-WARN +49
igt@drv_selftest@mock_requests:
fi-bwr-2160: PASS -> DMESG-WARN +7
igt@gem_ctx_exec@basic:
fi-bxt-j4205: PASS -> DMESG-WARN +58
fi-skl-6700hq: PASS -> DMESG-WARN +48
igt@gem_ctx_switch@basic-default-heavy:
fi-glk-j4005: PASS -> DMESG-WARN +56
igt@gem_exec_basic@gtt-default:
fi-byt-n2820: PASS -> DMESG-WARN +38
igt@gem_exec_basic@readonly-render:
{fi-kbl-8809g}: NOTRUN -> DMESG-WARN +59
igt@gem_exec_fence@basic-await-default:
fi-skl-6700k2: PASS -> DMESG-WARN +47
igt@gem_exec_flush@basic-batch-kernel-default-wb:
fi-kbl-7567u: PASS -> DMESG-WARN +63
igt@gem_exec_flush@basic-uc-prw-default:
{fi-icl-u}: NOTRUN -> DMESG-WARN +53
igt@gem_exec_flush@basic-uc-ro-default:
fi-cfl-guc: PASS -> DMESG-WARN +64
igt@gem_exec_flush@basic-uc-rw-default:
fi-hsw-4770: PASS -> DMESG-WARN +40
fi-byt-j1900: PASS -> DMESG-WARN +35
igt@gem_exec_flush@basic-wb-pro-default:
fi-skl-6600u: PASS -> DMESG-WARN +54
fi-skl-6770hq: PASS -> DMESG-WARN +46
igt@gem_exec_flush@basic-wb-ro-default:
{fi-skl-caroline}: PASS -> DMESG-WARN +33
igt@gem_exec_flush@basic-wb-set-default:
fi-snb-2600: PASS -> DMESG-WARN +45
igt@gem_exec_gttfill@basic:
fi-kbl-x1275: PASS -> DMESG-WARN +54
igt@gem_exec_reloc@basic-cpu-active:
{fi-bsw-kefka}: PASS -> DMESG-WARN +43
igt@gem_exec_reloc@basic-cpu-gtt-active:
fi-bsw-n3050: PASS -> DMESG-WARN +38
igt@gem_exec_reloc@basic-cpu-read:
{fi-skl-iommu}: PASS -> DMESG-WARN +45
fi-cfl-8700k: PASS -> DMESG-WARN +54
fi-snb-2520m: PASS -> DMESG-WARN +44
igt@gem_linear_blits@basic:
fi-hsw-4770r: PASS -> DMESG-WARN +37
fi-gdg-551: PASS -> DMESG-WARN +6
igt@gem_render_linear_blits@basic:
fi-hsw-peppy: PASS -> DMESG-WARN +32
igt@gem_render_tiled_blits@basic:
fi-ivb-3520m: PASS -> DMESG-WARN +23
fi-elk-e7500: PASS -> DMESG-WARN +7
fi-ilk-650: PASS -> DMESG-WARN +8
fi-pnv-d510: PASS -> DMESG-WARN +7
igt@gem_sync@basic-all:
fi-ivb-3770: PASS -> DMESG-WARN +31
igt@gem_sync@basic-many-each:
fi-kbl-7560u: PASS -> DMESG-WARN +52
fi-bxt-dsi: PASS -> DMESG-WARN +50
igt@gem_sync@basic-store-all:
fi-kbl-7500u: PASS -> DMESG-WARN +57
igt@gem_sync@basic-store-each:
fi-blb-e6850: PASS -> DMESG-WARN +6
fi-skl-6260u: PASS -> DMESG-WARN +43
== Known issues ==
Here are the changes found in Patchwork_9809 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@debugfs_test@read_all_entries:
{fi-icl-u}: NOTRUN -> DMESG-WARN (fdo#107396)
igt@drv_selftest@live_coherency:
fi-skl-6770hq: PASS -> DMESG-WARN (fdo#107175) +4
fi-skl-6260u: PASS -> DMESG-WARN (fdo#107175) +3
igt@drv_selftest@live_hangcheck:
{fi-icl-u}: NOTRUN -> INCOMPLETE (fdo#107399)
igt@drv_selftest@live_hugepages:
fi-skl-6600u: PASS -> DMESG-WARN (fdo#107175) +3
fi-skl-6700k2: PASS -> DMESG-WARN (fdo#107175) +3
igt@drv_selftest@live_objects:
{fi-icl-u}: NOTRUN -> DMESG-FAIL (fdo#107398)
igt@drv_selftest@live_requests:
fi-skl-6700hq: PASS -> DMESG-WARN (fdo#107175) +4
{fi-skl-iommu}: PASS -> DMESG-WARN (fdo#107175) +4
fi-skl-guc: PASS -> DMESG-WARN (fdo#107175) +8
igt@drv_selftest@live_workarounds:
fi-cnl-psr: PASS -> DMESG-FAIL (fdo#107292)
igt@gem_exec_suspend@basic-s4-devices:
fi-kbl-7567u: PASS -> DMESG-WARN (fdo#107139)
fi-kbl-guc: PASS -> DMESG-WARN (fdo#107139)
fi-kbl-7560u: PASS -> DMESG-WARN (fdo#107139)
igt@gem_workarounds@basic-read:
{fi-icl-u}: NOTRUN -> FAIL (fdo#107338)
igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
fi-snb-2520m: PASS -> INCOMPLETE (fdo#103713)
igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
fi-bxt-dsi: PASS -> INCOMPLETE (fdo#103927)
{fi-icl-u}: NOTRUN -> DMESG-WARN (fdo#107382) +4
{igt@kms_psr@primary_mmap_gtt}:
fi-cnl-psr: PASS -> DMESG-WARN (fdo#107372)
{igt@kms_psr@primary_page_flip}:
{fi-icl-u}: NOTRUN -> FAIL (fdo#107383) +3
==== Possible fixes ====
igt@drv_selftest@live_coherency:
fi-gdg-551: DMESG-FAIL (fdo#107164) -> PASS
igt@kms_chamelium@hdmi-edid-read:
fi-kbl-7500u: FAIL (fdo#103841) -> SKIP
igt@kms_chamelium@hdmi-hpd-fast:
fi-kbl-7500u: FAIL (fdo#102672, fdo#103841) -> SKIP
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
fdo#102672 https://bugs.freedesktop.org/show_bug.cgi?id=102672
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841
fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
fdo#107139 https://bugs.freedesktop.org/show_bug.cgi?id=107139
fdo#107164 https://bugs.freedesktop.org/show_bug.cgi?id=107164
fdo#107175 https://bugs.freedesktop.org/show_bug.cgi?id=107175
fdo#107292 https://bugs.freedesktop.org/show_bug.cgi?id=107292
fdo#107338 https://bugs.freedesktop.org/show_bug.cgi?id=107338
fdo#107372 https://bugs.freedesktop.org/show_bug.cgi?id=107372
fdo#107382 https://bugs.freedesktop.org/show_bug.cgi?id=107382
fdo#107383 https://bugs.freedesktop.org/show_bug.cgi?id=107383
fdo#107396 https://bugs.freedesktop.org/show_bug.cgi?id=107396
fdo#107398 https://bugs.freedesktop.org/show_bug.cgi?id=107398
fdo#107399 https://bugs.freedesktop.org/show_bug.cgi?id=107399
== Participating hosts (51 -> 47) ==
Additional (2): fi-icl-u fi-kbl-8809g
Missing (6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper
== Build changes ==
* Linux: CI_DRM_4594 -> Patchwork_9809
CI_DRM_4594: bebee8b5e1691b4b0a356a9b6443f9793e7f15d9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4581: f1c868dae24056ebc27e4f3c197724ce9b956a8a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9809: 5c886b0bbf62ffa82d5ffec47c63f72deb501ff7 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
5c886b0bbf62 drm/i915: Limit C-states when waiting for the active request
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9809/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 15+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: Limit C-states when waiting for the active request (rev6)
2018-07-30 11:29 [PATCH] drm/i915: Limit C-states when waiting for the active request Chris Wilson
` (7 preceding siblings ...)
2018-07-30 14:19 ` ✗ Fi.CI.BAT: failure for drm/i915: Limit C-states when waiting for the active request (rev5) Patchwork
@ 2018-07-30 14:44 ` Patchwork
2018-07-30 15:42 ` ✓ Fi.CI.IGT: " Patchwork
9 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2018-07-30 14:44 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Limit C-states when waiting for the active request (rev6)
URL : https://patchwork.freedesktop.org/series/47420/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4594 -> Patchwork_9810 =
== Summary - SUCCESS ==
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/47420/revisions/6/mbox/
== Known issues ==
Here are the changes found in Patchwork_9810 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@debugfs_test@read_all_entries:
{fi-icl-u}: NOTRUN -> DMESG-WARN (fdo#107396)
igt@drv_selftest@live_hangcheck:
{fi-icl-u}: NOTRUN -> INCOMPLETE (fdo#107399)
igt@drv_selftest@live_objects:
{fi-icl-u}: NOTRUN -> DMESG-FAIL (fdo#107398)
igt@drv_selftest@live_workarounds:
fi-cnl-psr: PASS -> DMESG-FAIL (fdo#107292)
igt@gem_workarounds@basic-read:
{fi-icl-u}: NOTRUN -> FAIL (fdo#107338)
igt@kms_pipe_crc_basic@hang-read-crc-pipe-c:
fi-skl-guc: PASS -> FAIL (fdo#103191)
igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
{fi-icl-u}: NOTRUN -> DMESG-WARN (fdo#107382) +4
{igt@kms_psr@primary_mmap_gtt}:
fi-cnl-psr: PASS -> DMESG-WARN (fdo#107372)
{igt@kms_psr@primary_page_flip}:
{fi-icl-u}: NOTRUN -> FAIL (fdo#107383) +3
==== Possible fixes ====
igt@drv_selftest@live_coherency:
fi-gdg-551: DMESG-FAIL (fdo#107164) -> PASS
igt@kms_chamelium@hdmi-edid-read:
fi-kbl-7500u: FAIL (fdo#103841) -> SKIP
igt@kms_chamelium@hdmi-hpd-fast:
fi-kbl-7500u: FAIL (fdo#103841, fdo#102672) -> SKIP
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
fdo#102672 https://bugs.freedesktop.org/show_bug.cgi?id=102672
fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841
fdo#107164 https://bugs.freedesktop.org/show_bug.cgi?id=107164
fdo#107292 https://bugs.freedesktop.org/show_bug.cgi?id=107292
fdo#107338 https://bugs.freedesktop.org/show_bug.cgi?id=107338
fdo#107372 https://bugs.freedesktop.org/show_bug.cgi?id=107372
fdo#107382 https://bugs.freedesktop.org/show_bug.cgi?id=107382
fdo#107383 https://bugs.freedesktop.org/show_bug.cgi?id=107383
fdo#107396 https://bugs.freedesktop.org/show_bug.cgi?id=107396
fdo#107398 https://bugs.freedesktop.org/show_bug.cgi?id=107398
fdo#107399 https://bugs.freedesktop.org/show_bug.cgi?id=107399
== Participating hosts (51 -> 47) ==
Additional (2): fi-icl-u fi-kbl-8809g
Missing (6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper
== Build changes ==
* Linux: CI_DRM_4594 -> Patchwork_9810
CI_DRM_4594: bebee8b5e1691b4b0a356a9b6443f9793e7f15d9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4581: f1c868dae24056ebc27e4f3c197724ce9b956a8a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9810: 8dcc8345d926af6aac913a1dbac18010c8891b9a @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
8dcc8345d926 drm/i915: Limit C-states when waiting for the active request
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9810/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 15+ messages in thread
* ✓ Fi.CI.IGT: success for drm/i915: Limit C-states when waiting for the active request (rev6)
2018-07-30 11:29 [PATCH] drm/i915: Limit C-states when waiting for the active request Chris Wilson
` (8 preceding siblings ...)
2018-07-30 14:44 ` ✓ Fi.CI.BAT: success for drm/i915: Limit C-states when waiting for the active request (rev6) Patchwork
@ 2018-07-30 15:42 ` Patchwork
9 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2018-07-30 15:42 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Limit C-states when waiting for the active request (rev6)
URL : https://patchwork.freedesktop.org/series/47420/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4594_full -> Patchwork_9810_full =
== Summary - SUCCESS ==
No regressions found.
== Known issues ==
Here are the changes found in Patchwork_9810_full that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@kms_rotation_crc@sprite-rotation-180:
shard-hsw: PASS -> FAIL (fdo#103925)
igt@perf@gen8-unprivileged-single-ctx-counters:
shard-kbl: PASS -> INCOMPLETE (fdo#103665)
==== Possible fixes ====
igt@drv_selftest@live_hangcheck:
shard-kbl: DMESG-FAIL (fdo#106560, fdo#106947) -> PASS
igt@kms_flip@dpms-vs-vblank-race:
shard-glk: FAIL (fdo#103060) -> PASS
igt@kms_universal_plane@cursor-fb-leak-pipe-b:
shard-apl: FAIL (fdo#107241) -> PASS
fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
fdo#103925 https://bugs.freedesktop.org/show_bug.cgi?id=103925
fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
fdo#106947 https://bugs.freedesktop.org/show_bug.cgi?id=106947
fdo#107241 https://bugs.freedesktop.org/show_bug.cgi?id=107241
== Participating hosts (5 -> 5) ==
No changes in participating hosts
== Build changes ==
* Linux: CI_DRM_4594 -> Patchwork_9810
CI_DRM_4594: bebee8b5e1691b4b0a356a9b6443f9793e7f15d9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4581: f1c868dae24056ebc27e4f3c197724ce9b956a8a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9810: 8dcc8345d926af6aac913a1dbac18010c8891b9a @ 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_9810/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2018-07-30 15:42 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-30 11:29 [PATCH] drm/i915: Limit C-states when waiting for the active request Chris Wilson
2018-07-30 11:31 ` Chris Wilson
2018-07-30 12:05 ` ✗ Fi.CI.BAT: failure for drm/i915: Limit C-states when waiting for the active request (rev2) Patchwork
2018-07-30 12:14 ` [PATCH v2] drm/i915: Limit C-states when waiting for the active request Chris Wilson
2018-07-30 12:25 ` Chris Wilson
2018-07-30 12:27 ` Chris Wilson
2018-07-30 12:39 ` [PATCH v3] " Chris Wilson
2018-07-30 13:07 ` Mika Kuoppala
2018-07-30 13:27 ` Chris Wilson
2018-07-30 13:39 ` [PATCH v4] " Chris Wilson
2018-07-30 13:51 ` ✗ Fi.CI.BAT: failure for drm/i915: Limit C-states when waiting for the active request (rev4) Patchwork
2018-07-30 13:55 ` [PATCH v5] drm/i915: Limit C-states when waiting for the active request Chris Wilson
2018-07-30 14:19 ` ✗ Fi.CI.BAT: failure for drm/i915: Limit C-states when waiting for the active request (rev5) Patchwork
2018-07-30 14:44 ` ✓ Fi.CI.BAT: success for drm/i915: Limit C-states when waiting for the active request (rev6) Patchwork
2018-07-30 15:42 ` ✓ 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.