* [PATCH 1/3] dma-buf: Prettify typecasts for dma-fence-chain
@ 2019-10-20 16:43 Chris Wilson
2019-10-20 16:43 ` [PATCH 2/3] dma-buf: Report signaled links inside dma-fence-chain Chris Wilson
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Chris Wilson @ 2019-10-20 16:43 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx
Inside dma-fence-chain, we use a cmpxchg on an RCU-protected pointer. To
avoid the sparse warning for using the RCU pointer directly, we have to
cast away the __rcu annotation. However, we don't need to use void*
everywhere and can stick to the dma_fence*.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
drivers/dma-buf/dma-fence-chain.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/dma-buf/dma-fence-chain.c b/drivers/dma-buf/dma-fence-chain.c
index 44a741677d25..3d123502ff12 100644
--- a/drivers/dma-buf/dma-fence-chain.c
+++ b/drivers/dma-buf/dma-fence-chain.c
@@ -62,7 +62,8 @@ struct dma_fence *dma_fence_chain_walk(struct dma_fence *fence)
replacement = NULL;
}
- tmp = cmpxchg((void **)&chain->prev, (void *)prev, (void *)replacement);
+ tmp = cmpxchg((struct dma_fence __force **)&chain->prev,
+ prev, replacement);
if (tmp == prev)
dma_fence_put(tmp);
else
--
2.24.0.rc0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] dma-buf: Report signaled links inside dma-fence-chain
2019-10-20 16:43 [PATCH 1/3] dma-buf: Prettify typecasts for dma-fence-chain Chris Wilson
@ 2019-10-20 16:43 ` Chris Wilson
2019-10-20 16:43 ` [PATCH 3/3] dma-buf: Exercise dma-fence-chain under selftests Chris Wilson
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Chris Wilson @ 2019-10-20 16:43 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx
Whenever we walk along the dma-fence-chain, we prune signaled links to
keep the chain nice and tidy. This leads to situations where we can
prune a link and report the earlier fence as the target seqno --
violating our own consistency checks that the seqno is not more advanced
than the last element in a dma-fence-chain.
Report a NULL fence and success if the seqno has already been signaled.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
drivers/dma-buf/dma-fence-chain.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/dma-buf/dma-fence-chain.c b/drivers/dma-buf/dma-fence-chain.c
index 3d123502ff12..5dd4e9a6dded 100644
--- a/drivers/dma-buf/dma-fence-chain.c
+++ b/drivers/dma-buf/dma-fence-chain.c
@@ -99,6 +99,12 @@ int dma_fence_chain_find_seqno(struct dma_fence **pfence, uint64_t seqno)
return -EINVAL;
dma_fence_chain_for_each(*pfence, &chain->base) {
+ if ((*pfence)->seqno < seqno) { /* already signaled */
+ dma_fence_put(*pfence);
+ *pfence = NULL;
+ break;
+ }
+
if ((*pfence)->context != chain->base.context ||
to_dma_fence_chain(*pfence)->prev_seqno < seqno)
break;
--
2.24.0.rc0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] dma-buf: Exercise dma-fence-chain under selftests
2019-10-20 16:43 [PATCH 1/3] dma-buf: Prettify typecasts for dma-fence-chain Chris Wilson
2019-10-20 16:43 ` [PATCH 2/3] dma-buf: Report signaled links inside dma-fence-chain Chris Wilson
@ 2019-10-20 16:43 ` Chris Wilson
2019-10-20 17:00 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] dma-buf: Prettify typecasts for dma-fence-chain Patchwork
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Chris Wilson @ 2019-10-20 16:43 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx
A few very simple testcases to exercise the dma-fence-chain API.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
drivers/dma-buf/Makefile | 3 +-
drivers/dma-buf/selftests.h | 1 +
drivers/dma-buf/st-dma-fence-chain.c | 713 +++++++++++++++++++++++++++
3 files changed, 716 insertions(+), 1 deletion(-)
create mode 100644 drivers/dma-buf/st-dma-fence-chain.c
diff --git a/drivers/dma-buf/Makefile b/drivers/dma-buf/Makefile
index 03479da06422..09f90da840a8 100644
--- a/drivers/dma-buf/Makefile
+++ b/drivers/dma-buf/Makefile
@@ -7,6 +7,7 @@ obj-$(CONFIG_UDMABUF) += udmabuf.o
dmabuf_selftests-y := \
selftest.o \
- st-dma-fence.o
+ st-dma-fence.o \
+ st-dma-fence-chain.o
obj-$(CONFIG_DMABUF_SELFTESTS) += dmabuf_selftests.o
diff --git a/drivers/dma-buf/selftests.h b/drivers/dma-buf/selftests.h
index 5320386f02e5..55918ef9adab 100644
--- a/drivers/dma-buf/selftests.h
+++ b/drivers/dma-buf/selftests.h
@@ -11,3 +11,4 @@
*/
selftest(sanitycheck, __sanitycheck__) /* keep first (igt selfcheck) */
selftest(dma_fence, dma_fence)
+selftest(dma_fence_chain, dma_fence_chain)
diff --git a/drivers/dma-buf/st-dma-fence-chain.c b/drivers/dma-buf/st-dma-fence-chain.c
new file mode 100644
index 000000000000..bd08ba67b03b
--- /dev/null
+++ b/drivers/dma-buf/st-dma-fence-chain.c
@@ -0,0 +1,713 @@
+// SPDX-License-Identifier: MIT
+
+/*
+ * Copyright © 2019 Intel Corporation
+ */
+
+#include <linux/delay.h>
+#include <linux/dma-fence.h>
+#include <linux/dma-fence-chain.h>
+#include <linux/kernel.h>
+#include <linux/kthread.h>
+#include <linux/mm.h>
+#include <linux/sched/signal.h>
+#include <linux/slab.h>
+#include <linux/spinlock.h>
+#include <linux/random.h>
+
+#include "selftest.h"
+
+static struct kmem_cache *slab_fences;
+
+static inline struct mock_fence {
+ struct dma_fence base;
+ spinlock_t lock;
+} *to_mock_fence(struct dma_fence *f) {
+ return container_of(f, struct mock_fence, base);
+}
+
+static const char *mock_name(struct dma_fence *f)
+{
+ return "mock";
+}
+
+static void mock_fence_release(struct dma_fence *f)
+{
+ kmem_cache_free(slab_fences, to_mock_fence(f));
+}
+
+static const struct dma_fence_ops mock_ops = {
+ .get_driver_name = mock_name,
+ .get_timeline_name = mock_name,
+ .release = mock_fence_release,
+};
+
+static struct dma_fence *mock_fence(void)
+{
+ struct mock_fence *f;
+
+ f = kmem_cache_alloc(slab_fences, GFP_KERNEL);
+ if (!f)
+ return NULL;
+
+ spin_lock_init(&f->lock);
+ dma_fence_init(&f->base, &mock_ops, &f->lock, 0, 0);
+
+ return &f->base;
+}
+
+static inline struct mock_chain {
+ struct dma_fence_chain base;
+} *to_mock_chain(struct dma_fence *f) {
+ return container_of(f, struct mock_chain, base.base);
+}
+
+static struct dma_fence *mock_chain(struct dma_fence *prev,
+ struct dma_fence *fence,
+ u64 seqno)
+{
+ struct mock_chain *f;
+
+ f = kmalloc(sizeof(*f), GFP_KERNEL);
+ if (!f)
+ return NULL;
+
+ dma_fence_chain_init(&f->base,
+ dma_fence_get(prev),
+ dma_fence_get(fence),
+ seqno);
+
+ return &f->base.base;
+}
+
+static int sanitycheck(void *arg)
+{
+ struct dma_fence *f, *chain;
+ int err = 0;
+
+ f = mock_fence();
+ if (!f)
+ return -ENOMEM;
+
+ chain = mock_chain(NULL, f, 1);
+ if (!chain)
+ err = -ENOMEM;
+
+ dma_fence_signal(f);
+ dma_fence_put(f);
+
+ dma_fence_put(chain);
+
+ return err;
+}
+
+struct fence_chains {
+ unsigned int chain_length;
+ struct dma_fence **fences;
+ struct dma_fence **chains;
+
+ struct dma_fence *tail;
+};
+
+static uint64_t seqno_inc(unsigned int i)
+{
+ return i + 1;
+}
+
+static int fence_chains_init(struct fence_chains *fc, unsigned int count,
+ uint64_t (*seqno_fn)(unsigned int))
+{
+ unsigned int i;
+ int err = 0;
+
+ fc->chains = kvmalloc_array(count, sizeof(*fc->chains),
+ GFP_KERNEL | __GFP_ZERO);
+ if (!fc->chains)
+ return -ENOMEM;
+
+ fc->fences = kvmalloc_array(count, sizeof(*fc->fences),
+ GFP_KERNEL | __GFP_ZERO);
+ if (!fc->fences) {
+ err = -ENOMEM;
+ goto err_chains;
+ }
+
+ fc->tail = NULL;
+ for (i = 0; i < count; i++) {
+ fc->fences[i] = mock_fence();
+ if (!fc->fences[i]) {
+ err = -ENOMEM;
+ goto unwind;
+ }
+
+ fc->chains[i] = mock_chain(fc->tail,
+ fc->fences[i],
+ seqno_fn(i));
+ if (!fc->chains[i]) {
+ err = -ENOMEM;
+ goto unwind;
+ }
+
+ fc->tail = fc->chains[i];
+ }
+
+ fc->chain_length = i;
+ return 0;
+
+unwind:
+ for (i = 0; i < count; i++) {
+ dma_fence_put(fc->fences[i]);
+ dma_fence_put(fc->chains[i]);
+ }
+ kvfree(fc->fences);
+err_chains:
+ kvfree(fc->chains);
+ return err;
+}
+
+static void fence_chains_fini(struct fence_chains *fc)
+{
+ unsigned int i;
+
+ for (i = 0; i < fc->chain_length; i++) {
+ dma_fence_signal(fc->fences[i]);
+ dma_fence_put(fc->fences[i]);
+ }
+ kvfree(fc->fences);
+
+ for (i = 0; i < fc->chain_length; i++)
+ dma_fence_put(fc->chains[i]);
+ kvfree(fc->chains);
+}
+
+static int find_seqno(void *arg)
+{
+ struct fence_chains fc;
+ struct dma_fence *fence;
+ int err;
+ int i;
+
+ err = fence_chains_init(&fc, 64, seqno_inc);
+ if (err)
+ return err;
+
+ fence = dma_fence_get(fc.tail);
+ err = dma_fence_chain_find_seqno(&fence, 0);
+ dma_fence_put(fence);
+ if (err) {
+ pr_err("Reported %d for find_seqno(0)!\n", err);
+ goto err;
+ }
+
+ for (i = 0; i < fc.chain_length; i++) {
+ fence = dma_fence_get(fc.tail);
+ err = dma_fence_chain_find_seqno(&fence, i + 1);
+ dma_fence_put(fence);
+ if (err) {
+ pr_err("Reported %d for find_seqno(%d:%d)!\n",
+ err, fc.chain_length + 1, i + 1);
+ goto err;
+ }
+ if (fence != fc.chains[i]) {
+ pr_err("Incorrect fence reported by find_seqno(%d:%d)\n",
+ fc.chain_length + 1, i + 1);
+ err = -EINVAL;
+ goto err;
+ }
+
+ dma_fence_get(fence);
+ err = dma_fence_chain_find_seqno(&fence, i + 1);
+ dma_fence_put(fence);
+ if (err) {
+ pr_err("Error reported for finding self\n");
+ goto err;
+ }
+ if (fence != fc.chains[i]) {
+ pr_err("Incorrect fence reported by find self\n");
+ err = -EINVAL;
+ goto err;
+ }
+
+ dma_fence_get(fence);
+ err = dma_fence_chain_find_seqno(&fence, i + 2);
+ dma_fence_put(fence);
+ if (!err) {
+ pr_err("Error not reported for future fence: find_seqno(%d:%d)!\n",
+ i + 1, i + 2);
+ err = -EINVAL;
+ goto err;
+ }
+
+ dma_fence_get(fence);
+ err = dma_fence_chain_find_seqno(&fence, i);
+ dma_fence_put(fence);
+ if (err) {
+ pr_err("Error reported for previous fence!\n");
+ goto err;
+ }
+ if (i > 0 && fence != fc.chains[i - 1]) {
+ pr_err("Incorrect fence reported by find_seqno(%d:%d)\n",
+ i + 1, i);
+ err = -EINVAL;
+ goto err;
+ }
+ }
+
+err:
+ fence_chains_fini(&fc);
+ return err;
+}
+
+static int find_signaled(void *arg)
+{
+ struct fence_chains fc;
+ struct dma_fence *fence;
+ int err;
+
+ err = fence_chains_init(&fc, 2, seqno_inc);
+ if (err)
+ return err;
+
+ dma_fence_signal(fc.fences[0]);
+
+ fence = dma_fence_get(fc.tail);
+ err = dma_fence_chain_find_seqno(&fence, 1);
+ dma_fence_put(fence);
+ if (err) {
+ pr_err("Reported %d for find_seqno()!\n", err);
+ goto err;
+ }
+
+ if (fence && fence != fc.chains[0]) {
+ pr_err("Incorrect chain-fence.seqno:%lld reported for completed seqno:1\n",
+ fence->seqno);
+
+ dma_fence_get(fence);
+ err = dma_fence_chain_find_seqno(&fence, 1);
+ dma_fence_put(fence);
+ if (err)
+ pr_err("Reported %d for finding self!\n", err);
+
+ err = -EINVAL;
+ }
+
+err:
+ fence_chains_fini(&fc);
+ return err;
+}
+
+static int find_out_of_order(void *arg)
+{
+ struct fence_chains fc;
+ struct dma_fence *fence;
+ int err;
+
+ err = fence_chains_init(&fc, 3, seqno_inc);
+ if (err)
+ return err;
+
+ dma_fence_signal(fc.fences[1]);
+
+ fence = dma_fence_get(fc.tail);
+ err = dma_fence_chain_find_seqno(&fence, 2);
+ dma_fence_put(fence);
+ if (err) {
+ pr_err("Reported %d for find_seqno()!\n", err);
+ goto err;
+ }
+
+ if (fence && fence != fc.chains[1]) {
+ pr_err("Incorrect chain-fence.seqno:%lld reported for completed seqno:2\n",
+ fence->seqno);
+
+ dma_fence_get(fence);
+ err = dma_fence_chain_find_seqno(&fence, 2);
+ dma_fence_put(fence);
+ if (err)
+ pr_err("Reported %d for finding self!\n", err);
+
+ err = -EINVAL;
+ }
+
+err:
+ fence_chains_fini(&fc);
+ return err;
+}
+
+static uint64_t seqno_inc2(unsigned int i)
+{
+ return 2 * i + 2;
+}
+
+static int find_gap(void *arg)
+{
+ struct fence_chains fc;
+ struct dma_fence *fence;
+ int err;
+ int i;
+
+ err = fence_chains_init(&fc, 64, seqno_inc2);
+ if (err)
+ return err;
+
+ for (i = 0; i < fc.chain_length; i++) {
+ fence = dma_fence_get(fc.tail);
+ err = dma_fence_chain_find_seqno(&fence, 2 * i + 1);
+ dma_fence_put(fence);
+ if (err) {
+ pr_err("Reported %d for find_seqno(%d:%d)!\n",
+ err, fc.chain_length + 1, 2 * i + 1);
+ goto err;
+ }
+ if (fence != fc.chains[i]) {
+ pr_err("Incorrect fence.seqno:%lld reported by find_seqno(%d:%d)\n",
+ fence->seqno,
+ fc.chain_length + 1,
+ 2 * i + 1);
+ err = -EINVAL;
+ goto err;
+ }
+
+ dma_fence_get(fence);
+ err = dma_fence_chain_find_seqno(&fence, 2 * i + 2);
+ dma_fence_put(fence);
+ if (err) {
+ pr_err("Error reported for finding self\n");
+ goto err;
+ }
+ if (fence != fc.chains[i]) {
+ pr_err("Incorrect fence reported by find self\n");
+ err = -EINVAL;
+ goto err;
+ }
+ }
+
+err:
+ fence_chains_fini(&fc);
+ return err;
+}
+
+struct find_race {
+ struct fence_chains fc;
+ atomic_t children;
+};
+
+static int __find_race(void *arg)
+{
+ struct find_race *data = arg;
+ int err = 0;
+
+ while (!kthread_should_stop()) {
+ struct dma_fence *fence = dma_fence_get(data->fc.tail);
+ int seqno;
+
+ seqno = prandom_u32_max(data->fc.chain_length) + 1;
+
+ err = dma_fence_chain_find_seqno(&fence, seqno);
+ if (err) {
+ pr_err("Failed to find fence seqno:%d\n",
+ seqno);
+ dma_fence_put(fence);
+ break;
+ }
+ if (!fence)
+ goto signal;
+
+ err = dma_fence_chain_find_seqno(&fence, seqno);
+ if (err) {
+ pr_err("Reported an invalid fence for find-self:%d\n",
+ seqno);
+ dma_fence_put(fence);
+ break;
+ }
+
+ if (fence->seqno < seqno) {
+ pr_err("Reported an earlier fence.seqno:%lld for seqno:%d\n",
+ fence->seqno, seqno);
+ err = -EINVAL;
+ dma_fence_put(fence);
+ break;
+ }
+
+ dma_fence_put(fence);
+
+signal:
+ seqno = prandom_u32_max(data->fc.chain_length - 1);
+ dma_fence_signal(data->fc.fences[seqno]);
+ cond_resched();
+ }
+
+ if (atomic_dec_and_test(&data->children))
+ wake_up_var(&data->children);
+ return err;
+}
+
+static int find_race(void *arg)
+{
+ struct find_race data;
+ int ncpus = num_online_cpus();
+ struct task_struct **threads;
+ unsigned long count;
+ int err;
+ int i;
+
+ err = fence_chains_init(&data.fc, 64 << 10, seqno_inc);
+ if (err)
+ return err;
+
+ threads = kmalloc_array(ncpus, sizeof(*threads), GFP_KERNEL);
+ if (!threads) {
+ err = -ENOMEM;
+ goto err;
+ }
+
+ atomic_set(&data.children, 0);
+ for (i = 0; i < ncpus; i++) {
+ threads[i] = kthread_run(__find_race, &data, "dmabuf/%d", i);
+ if (IS_ERR(threads[i])) {
+ ncpus = i;
+ break;
+ }
+ atomic_inc(&data.children);
+ get_task_struct(threads[i]);
+ }
+
+ wait_var_event_timeout(&data.children,
+ !atomic_read(&data.children),
+ 5 * HZ);
+
+ for (i = 0; i < ncpus; i++) {
+ int ret;
+
+ ret = kthread_stop(threads[i]);
+ if (ret && !err)
+ err = ret;
+ put_task_struct(threads[i]);
+ }
+ kfree(threads);
+
+ count = 0;
+ for (i = 0; i < data.fc.chain_length; i++)
+ if (dma_fence_is_signaled(data.fc.fences[i]))
+ count++;
+ pr_info("Completed %lu cycles\n", count);
+
+err:
+ fence_chains_fini(&data.fc);
+ return err;
+}
+
+static int signal_forward(void *arg)
+{
+ struct fence_chains fc;
+ int err;
+ int i;
+
+ err = fence_chains_init(&fc, 64, seqno_inc);
+ if (err)
+ return err;
+
+ for (i = 0; i < fc.chain_length; i++) {
+ dma_fence_signal(fc.fences[i]);
+
+ if (!dma_fence_is_signaled(fc.chains[i])) {
+ pr_err("chain[%d] not signaled!\n", i);
+ err = -EINVAL;
+ goto err;
+ }
+
+ if (i + 1 < fc.chain_length &&
+ dma_fence_is_signaled(fc.chains[i + 1])) {
+ pr_err("chain[%d] is signaled!\n", i);
+ err = -EINVAL;
+ goto err;
+ }
+ }
+
+err:
+ fence_chains_fini(&fc);
+ return err;
+}
+
+static int signal_backward(void *arg)
+{
+ struct fence_chains fc;
+ int err;
+ int i;
+
+ err = fence_chains_init(&fc, 64, seqno_inc);
+ if (err)
+ return err;
+
+ for (i = fc.chain_length; i--; ) {
+ dma_fence_signal(fc.fences[i]);
+
+ if (i > 0 && dma_fence_is_signaled(fc.chains[i])) {
+ pr_err("chain[%d] is signaled!\n", i);
+ err = -EINVAL;
+ goto err;
+ }
+ }
+
+ for (i = 0; i < fc.chain_length; i++) {
+ if (!dma_fence_is_signaled(fc.chains[i])) {
+ pr_err("chain[%d] was not signaled!\n", i);
+ err = -EINVAL;
+ goto err;
+ }
+ }
+
+err:
+ fence_chains_fini(&fc);
+ return err;
+}
+
+static int __wait_fence_chains(void *arg)
+{
+ struct fence_chains *fc = arg;
+
+ if (dma_fence_wait(fc->tail, false))
+ return -EIO;
+
+ return 0;
+}
+
+static int wait_forward(void *arg)
+{
+ struct fence_chains fc;
+ struct task_struct *tsk;
+ int err;
+ int i;
+
+ err = fence_chains_init(&fc, 64 << 10, seqno_inc);
+ if (err)
+ return err;
+
+ tsk = kthread_run(__wait_fence_chains, &fc, "dmabuf/wait");
+ if (IS_ERR(tsk)) {
+ err = PTR_ERR(tsk);
+ goto err;
+ }
+ get_task_struct(tsk);
+ yield_to(tsk, true);
+
+ for (i = 0; i < fc.chain_length; i++)
+ dma_fence_signal(fc.fences[i]);
+
+ err = kthread_stop(tsk);
+ put_task_struct(tsk);
+
+err:
+ fence_chains_fini(&fc);
+ return err;
+}
+
+static int wait_backward(void *arg)
+{
+ struct fence_chains fc;
+ struct task_struct *tsk;
+ int err;
+ int i;
+
+ err = fence_chains_init(&fc, 64 << 10, seqno_inc);
+ if (err)
+ return err;
+
+ tsk = kthread_run(__wait_fence_chains, &fc, "dmabuf/wait");
+ if (IS_ERR(tsk)) {
+ err = PTR_ERR(tsk);
+ goto err;
+ }
+ get_task_struct(tsk);
+ yield_to(tsk, true);
+
+ for (i = fc.chain_length; i--; )
+ dma_fence_signal(fc.fences[i]);
+
+ err = kthread_stop(tsk);
+ put_task_struct(tsk);
+
+err:
+ fence_chains_fini(&fc);
+ return err;
+}
+
+static void randomise_fences(struct fence_chains *fc)
+{
+ unsigned int count = fc->chain_length;
+
+ /* Fisher-Yates shuffle courtesy of Knuth */
+ while (--count) {
+ unsigned int swp;
+
+ swp = prandom_u32_max(count + 1);
+ if (swp == count)
+ continue;
+
+ swap(fc->fences[count], fc->fences[swp]);
+ }
+}
+
+static int wait_random(void *arg)
+{
+ struct fence_chains fc;
+ struct task_struct *tsk;
+ int err;
+ int i;
+
+ err = fence_chains_init(&fc, 64 << 10, seqno_inc);
+ if (err)
+ return err;
+
+ randomise_fences(&fc);
+
+ tsk = kthread_run(__wait_fence_chains, &fc, "dmabuf/wait");
+ if (IS_ERR(tsk)) {
+ err = PTR_ERR(tsk);
+ goto err;
+ }
+ get_task_struct(tsk);
+ yield_to(tsk, true);
+
+ for (i = 0; i < fc.chain_length; i++)
+ dma_fence_signal(fc.fences[i]);
+
+ err = kthread_stop(tsk);
+ put_task_struct(tsk);
+
+err:
+ fence_chains_fini(&fc);
+ return err;
+}
+
+int dma_fence_chain(void)
+{
+ static const struct subtest tests[] = {
+ SUBTEST(sanitycheck),
+ SUBTEST(find_seqno),
+ SUBTEST(find_signaled),
+ SUBTEST(find_out_of_order),
+ SUBTEST(find_gap),
+ SUBTEST(find_race),
+ SUBTEST(signal_forward),
+ SUBTEST(signal_backward),
+ SUBTEST(wait_forward),
+ SUBTEST(wait_backward),
+ SUBTEST(wait_random),
+ };
+ int ret;
+
+ pr_info("sizeof(dma_fence_chain)=%zu\n",
+ sizeof(struct dma_fence_chain));
+
+ slab_fences = KMEM_CACHE(mock_fence,
+ SLAB_TYPESAFE_BY_RCU |
+ SLAB_HWCACHE_ALIGN);
+ if (!slab_fences)
+ return -ENOMEM;
+
+ ret = subtests(tests, NULL);
+
+ kmem_cache_destroy(slab_fences);
+ return ret;
+}
--
2.24.0.rc0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] dma-buf: Prettify typecasts for dma-fence-chain
2019-10-20 16:43 [PATCH 1/3] dma-buf: Prettify typecasts for dma-fence-chain Chris Wilson
2019-10-20 16:43 ` [PATCH 2/3] dma-buf: Report signaled links inside dma-fence-chain Chris Wilson
2019-10-20 16:43 ` [PATCH 3/3] dma-buf: Exercise dma-fence-chain under selftests Chris Wilson
@ 2019-10-20 17:00 ` Patchwork
2019-10-20 17:28 ` ✓ Fi.CI.BAT: success " Patchwork
2019-10-20 18:53 ` ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2019-10-20 17:00 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/3] dma-buf: Prettify typecasts for dma-fence-chain
URL : https://patchwork.freedesktop.org/series/68274/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
2de26a630d27 dma-buf: Prettify typecasts for dma-fence-chain
aa2250c9512d dma-buf: Report signaled links inside dma-fence-chain
a476a0bf6866 dma-buf: Exercise dma-fence-chain under selftests
-:33: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#33:
new file mode 100644
-:61: CHECK:UNCOMMENTED_DEFINITION: spinlock_t definition without comment
#61: FILE: drivers/dma-buf/st-dma-fence-chain.c:24:
+ spinlock_t lock;
-:235: WARNING:EMBEDDED_FUNCTION_NAME: Prefer using '"%s...", __func__' to using 'find_seqno', this function's name, in a string
#235: FILE: drivers/dma-buf/st-dma-fence-chain.c:198:
+ pr_err("Reported %d for find_seqno(0)!\n", err);
-:244: WARNING:EMBEDDED_FUNCTION_NAME: Prefer using '"%s...", __func__' to using 'find_seqno', this function's name, in a string
#244: FILE: drivers/dma-buf/st-dma-fence-chain.c:207:
+ pr_err("Reported %d for find_seqno(%d:%d)!\n",
-:249: WARNING:EMBEDDED_FUNCTION_NAME: Prefer using '"%s...", __func__' to using 'find_seqno', this function's name, in a string
#249: FILE: drivers/dma-buf/st-dma-fence-chain.c:212:
+ pr_err("Incorrect fence reported by find_seqno(%d:%d)\n",
-:272: WARNING:EMBEDDED_FUNCTION_NAME: Prefer using '"%s...", __func__' to using 'find_seqno', this function's name, in a string
#272: FILE: drivers/dma-buf/st-dma-fence-chain.c:235:
+ pr_err("Error not reported for future fence: find_seqno(%d:%d)!\n",
-:286: WARNING:EMBEDDED_FUNCTION_NAME: Prefer using '"%s...", __func__' to using 'find_seqno', this function's name, in a string
#286: FILE: drivers/dma-buf/st-dma-fence-chain.c:249:
+ pr_err("Incorrect fence reported by find_seqno(%d:%d)\n",
-:737: WARNING:EMBEDDED_FUNCTION_NAME: Prefer using '"%s...", __func__' to using 'dma_fence_chain', this function's name, in a string
#737: FILE: drivers/dma-buf/st-dma-fence-chain.c:700:
+ pr_info("sizeof(dma_fence_chain)=%zu\n",
total: 0 errors, 7 warnings, 1 checks, 725 lines checked
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* ✓ Fi.CI.BAT: success for series starting with [1/3] dma-buf: Prettify typecasts for dma-fence-chain
2019-10-20 16:43 [PATCH 1/3] dma-buf: Prettify typecasts for dma-fence-chain Chris Wilson
` (2 preceding siblings ...)
2019-10-20 17:00 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] dma-buf: Prettify typecasts for dma-fence-chain Patchwork
@ 2019-10-20 17:28 ` Patchwork
2019-10-20 18:53 ` ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2019-10-20 17:28 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/3] dma-buf: Prettify typecasts for dma-fence-chain
URL : https://patchwork.freedesktop.org/series/68274/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_7136 -> Patchwork_14895
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/index.html
New tests
---------
New tests have been introduced between CI_DRM_7136 and Patchwork_14895:
### New IGT tests (1) ###
* igt@dmabuf@dma_fence_chain:
- Statuses : 35 pass(s)
- Exec time: [7.40, 32.31] s
Known issues
------------
Here are the changes found in Patchwork_14895 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_ctx_create@basic-files:
- fi-bdw-gvtdvm: [PASS][1] -> [INCOMPLETE][2] ([fdo#112063])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/fi-bdw-gvtdvm/igt@gem_ctx_create@basic-files.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/fi-bdw-gvtdvm/igt@gem_ctx_create@basic-files.html
* igt@i915_selftest@live_execlists:
- fi-whl-u: [PASS][3] -> [INCOMPLETE][4] ([fdo#112065] / [fdo#112066])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/fi-whl-u/igt@i915_selftest@live_execlists.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/fi-whl-u/igt@i915_selftest@live_execlists.html
- fi-kbl-guc: [PASS][5] -> [INCOMPLETE][6] ([fdo#112065])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/fi-kbl-guc/igt@i915_selftest@live_execlists.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/fi-kbl-guc/igt@i915_selftest@live_execlists.html
- fi-skl-6260u: [PASS][7] -> [INCOMPLETE][8] ([fdo#111934])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/fi-skl-6260u/igt@i915_selftest@live_execlists.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/fi-skl-6260u/igt@i915_selftest@live_execlists.html
* igt@i915_selftest@live_gem_contexts:
- fi-cfl-8109u: [PASS][9] -> [DMESG-FAIL][10] ([fdo#112050 ])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/fi-cfl-8109u/igt@i915_selftest@live_gem_contexts.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/fi-cfl-8109u/igt@i915_selftest@live_gem_contexts.html
* igt@kms_frontbuffer_tracking@basic:
- fi-hsw-peppy: [PASS][11] -> [DMESG-WARN][12] ([fdo#102614])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
#### Possible fixes ####
* igt@gem_ctx_create@basic:
- fi-icl-u3: [DMESG-WARN][13] ([fdo#107724]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/fi-icl-u3/igt@gem_ctx_create@basic.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/fi-icl-u3/igt@gem_ctx_create@basic.html
* igt@gem_ctx_switch@legacy-render:
- fi-icl-u3: [INCOMPLETE][15] ([fdo#107713] / [fdo#111381]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/fi-icl-u3/igt@gem_ctx_switch@legacy-render.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/fi-icl-u3/igt@gem_ctx_switch@legacy-render.html
* igt@i915_selftest@live_coherency:
- fi-kbl-soraka: [TIMEOUT][17] ([fdo#111944]) -> [PASS][18]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/fi-kbl-soraka/igt@i915_selftest@live_coherency.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/fi-kbl-soraka/igt@i915_selftest@live_coherency.html
* igt@i915_selftest@live_hangcheck:
- {fi-icl-u4}: [INCOMPLETE][19] ([fdo#107713] / [fdo#108569]) -> [PASS][20]
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/fi-icl-u4/igt@i915_selftest@live_hangcheck.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/fi-icl-u4/igt@i915_selftest@live_hangcheck.html
* igt@kms_busy@basic-flip-a:
- {fi-tgl-u2}: [DMESG-WARN][21] ([fdo#111600]) -> [PASS][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/fi-tgl-u2/igt@kms_busy@basic-flip-a.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/fi-tgl-u2/igt@kms_busy@basic-flip-a.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
[fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
[fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100
[fdo#111381]: https://bugs.freedesktop.org/show_bug.cgi?id=111381
[fdo#111600]: https://bugs.freedesktop.org/show_bug.cgi?id=111600
[fdo#111934]: https://bugs.freedesktop.org/show_bug.cgi?id=111934
[fdo#111944]: https://bugs.freedesktop.org/show_bug.cgi?id=111944
[fdo#112050 ]: https://bugs.freedesktop.org/show_bug.cgi?id=112050
[fdo#112063]: https://bugs.freedesktop.org/show_bug.cgi?id=112063
[fdo#112065]: https://bugs.freedesktop.org/show_bug.cgi?id=112065
[fdo#112066]: https://bugs.freedesktop.org/show_bug.cgi?id=112066
Participating hosts (51 -> 42)
------------------------------
Missing (9): fi-ilk-m540 fi-bxt-dsi fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus fi-cml-u
Build changes
-------------
* CI: CI-20190529 -> None
* Linux: CI_DRM_7136 -> Patchwork_14895
CI-20190529: 20190529
CI_DRM_7136: 6f7e6926bb09b1ec80c5a3d44a930d690dd09d9c @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5234: 1205552397bd8a19dc6e5abdaa727cc091dabbfe @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_14895: a476a0bf6866be3a794a11b82bd994485fa9c8c8 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
a476a0bf6866 dma-buf: Exercise dma-fence-chain under selftests
aa2250c9512d dma-buf: Report signaled links inside dma-fence-chain
2de26a630d27 dma-buf: Prettify typecasts for dma-fence-chain
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* ✓ Fi.CI.IGT: success for series starting with [1/3] dma-buf: Prettify typecasts for dma-fence-chain
2019-10-20 16:43 [PATCH 1/3] dma-buf: Prettify typecasts for dma-fence-chain Chris Wilson
` (3 preceding siblings ...)
2019-10-20 17:28 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2019-10-20 18:53 ` Patchwork
4 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2019-10-20 18:53 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/3] dma-buf: Prettify typecasts for dma-fence-chain
URL : https://patchwork.freedesktop.org/series/68274/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_7136_full -> Patchwork_14895_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
New tests
---------
New tests have been introduced between CI_DRM_7136_full and Patchwork_14895_full:
### New IGT tests (1) ###
* igt@dmabuf@dma_fence_chain:
- Statuses : 7 pass(s)
- Exec time: [7.58, 32.34] s
Known issues
------------
Here are the changes found in Patchwork_14895_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_ctx_isolation@bcs0-s3:
- shard-apl: [PASS][1] -> [DMESG-WARN][2] ([fdo#108566]) +4 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-apl6/igt@gem_ctx_isolation@bcs0-s3.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-apl8/igt@gem_ctx_isolation@bcs0-s3.html
* igt@gem_eio@in-flight-contexts-immediate:
- shard-snb: [PASS][3] -> [FAIL][4] ([fdo#111925])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-snb2/igt@gem_eio@in-flight-contexts-immediate.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-snb1/igt@gem_eio@in-flight-contexts-immediate.html
* igt@gem_eio@unwedge-stress:
- shard-snb: [PASS][5] -> [FAIL][6] ([fdo#109661])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-snb6/igt@gem_eio@unwedge-stress.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-snb7/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_balancer@smoke:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#110854])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb4/igt@gem_exec_balancer@smoke.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb7/igt@gem_exec_balancer@smoke.html
* igt@gem_exec_schedule@preempt-other-chain-bsd:
- shard-iclb: [PASS][9] -> [SKIP][10] ([fdo#111325]) +8 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb5/igt@gem_exec_schedule@preempt-other-chain-bsd.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb4/igt@gem_exec_schedule@preempt-other-chain-bsd.html
* igt@gem_exec_schedule@promotion-bsd1:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#109276]) +20 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb4/igt@gem_exec_schedule@promotion-bsd1.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb7/igt@gem_exec_schedule@promotion-bsd1.html
* igt@gem_persistent_relocs@forked-interruptible-thrashing:
- shard-snb: [PASS][13] -> [FAIL][14] ([fdo#112037])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-snb5/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-snb5/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
* igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup:
- shard-hsw: [PASS][15] -> [DMESG-WARN][16] ([fdo#111870])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-hsw1/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-hsw1/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
- shard-snb: [PASS][17] -> [DMESG-WARN][18] ([fdo#111870]) +1 similar issue
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-snb4/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-snb4/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
* igt@kms_cursor_crc@pipe-a-cursor-suspend:
- shard-skl: [PASS][19] -> [INCOMPLETE][20] ([fdo#110741])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-skl8/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-skl4/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
* igt@kms_cursor_legacy@cursor-vs-flip-atomic:
- shard-hsw: [PASS][21] -> [FAIL][22] ([fdo#103355])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-hsw1/igt@kms_cursor_legacy@cursor-vs-flip-atomic.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-hsw1/igt@kms_cursor_legacy@cursor-vs-flip-atomic.html
* igt@kms_flip@flip-vs-expired-vblank:
- shard-skl: [PASS][23] -> [FAIL][24] ([fdo#105363])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-skl6/igt@kms_flip@flip-vs-expired-vblank.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-skl9/igt@kms_flip@flip-vs-expired-vblank.html
* igt@kms_flip_tiling@flip-y-tiled:
- shard-skl: [PASS][25] -> [FAIL][26] ([fdo#108303])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-skl10/igt@kms_flip_tiling@flip-y-tiled.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-skl7/igt@kms_flip_tiling@flip-y-tiled.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-pwrite:
- shard-iclb: [PASS][27] -> [FAIL][28] ([fdo#103167]) +4 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-pwrite.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-pwrite.html
* igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
- shard-skl: [PASS][29] -> [INCOMPLETE][30] ([fdo#104108])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-skl5/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-skl6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html
* igt@kms_psr@psr2_sprite_mmap_gtt:
- shard-iclb: [PASS][31] -> [SKIP][32] ([fdo#109441]) +1 similar issue
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_gtt.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb1/igt@kms_psr@psr2_sprite_mmap_gtt.html
* igt@kms_setmode@basic:
- shard-hsw: [PASS][33] -> [FAIL][34] ([fdo#99912])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-hsw5/igt@kms_setmode@basic.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-hsw4/igt@kms_setmode@basic.html
#### Possible fixes ####
* igt@gem_ctx_shared@exec-single-timeline-bsd:
- shard-iclb: [SKIP][35] ([fdo#110841]) -> [PASS][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb2/igt@gem_ctx_shared@exec-single-timeline-bsd.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb6/igt@gem_ctx_shared@exec-single-timeline-bsd.html
* igt@gem_exec_flush@basic-batch-kernel-default-uc:
- shard-iclb: [INCOMPLETE][37] ([fdo#107713]) -> [PASS][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb1/igt@gem_exec_flush@basic-batch-kernel-default-uc.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb4/igt@gem_exec_flush@basic-batch-kernel-default-uc.html
* igt@gem_exec_schedule@out-order-bsd2:
- shard-iclb: [SKIP][39] ([fdo#109276]) -> [PASS][40] +19 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb7/igt@gem_exec_schedule@out-order-bsd2.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb2/igt@gem_exec_schedule@out-order-bsd2.html
* igt@gem_exec_schedule@reorder-wide-bsd:
- shard-iclb: [SKIP][41] ([fdo#111325]) -> [PASS][42] +4 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb1/igt@gem_exec_schedule@reorder-wide-bsd.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb6/igt@gem_exec_schedule@reorder-wide-bsd.html
* igt@gem_exec_whisper@normal:
- {shard-tglb}: [INCOMPLETE][43] -> [PASS][44] +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-tglb8/igt@gem_exec_whisper@normal.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-tglb1/igt@gem_exec_whisper@normal.html
* igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing:
- {shard-tglb}: [TIMEOUT][45] ([fdo#112068 ]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-tglb4/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-tglb7/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
* igt@gem_userptr_blits@sync-unmap-after-close:
- shard-snb: [DMESG-WARN][47] ([fdo#111870]) -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-snb6/igt@gem_userptr_blits@sync-unmap-after-close.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-snb1/igt@gem_userptr_blits@sync-unmap-after-close.html
* igt@gem_workarounds@suspend-resume-context:
- shard-apl: [DMESG-WARN][49] ([fdo#108566]) -> [PASS][50] +4 similar issues
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-apl4/igt@gem_workarounds@suspend-resume-context.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-apl1/igt@gem_workarounds@suspend-resume-context.html
* igt@i915_pm_backlight@fade_with_suspend:
- shard-skl: [INCOMPLETE][51] ([fdo#104108]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-skl7/igt@i915_pm_backlight@fade_with_suspend.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-skl7/igt@i915_pm_backlight@fade_with_suspend.html
* igt@i915_pm_rpm@system-suspend:
- shard-skl: [INCOMPLETE][53] ([fdo#104108] / [fdo#107807]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-skl10/igt@i915_pm_rpm@system-suspend.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-skl2/igt@i915_pm_rpm@system-suspend.html
* igt@i915_selftest@live_execlists:
- shard-skl: [INCOMPLETE][55] ([fdo#111934]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-skl10/igt@i915_selftest@live_execlists.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-skl4/igt@i915_selftest@live_execlists.html
- shard-apl: [INCOMPLETE][57] ([fdo#103927] / [fdo#112065]) -> [PASS][58]
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-apl7/igt@i915_selftest@live_execlists.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-apl7/igt@i915_selftest@live_execlists.html
* igt@kms_big_fb@yf-tiled-32bpp-rotate-90:
- shard-apl: [INCOMPLETE][59] ([fdo#103927]) -> [PASS][60]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-apl3/igt@kms_big_fb@yf-tiled-32bpp-rotate-90.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-apl8/igt@kms_big_fb@yf-tiled-32bpp-rotate-90.html
* igt@kms_flip@2x-flip-vs-expired-vblank:
- shard-glk: [FAIL][61] ([fdo#105363]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-glk9/igt@kms_flip@2x-flip-vs-expired-vblank.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- {shard-tglb}: [INCOMPLETE][63] ([fdo#111832] / [fdo#111850]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-tglb1/igt@kms_flip@flip-vs-suspend-interruptible.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-tglb6/igt@kms_flip@flip-vs-suspend-interruptible.html
- shard-skl: [INCOMPLETE][65] ([fdo#109507]) -> [PASS][66]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-skl9/igt@kms_flip@flip-vs-suspend-interruptible.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-skl7/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite:
- shard-iclb: [FAIL][67] ([fdo#103167]) -> [PASS][68] +8 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt:
- {shard-tglb}: [FAIL][69] ([fdo#103167]) -> [PASS][70] +2 similar issues
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-tglb7/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt.html
* igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
- shard-skl: [FAIL][71] ([fdo#108145]) -> [PASS][72]
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-skl5/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-skl8/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
* igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl: [FAIL][73] ([fdo#108145] / [fdo#110403]) -> [PASS][74]
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-skl1/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-skl1/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
* igt@kms_plane_lowres@pipe-a-tiling-x:
- shard-iclb: [FAIL][75] ([fdo#103166]) -> [PASS][76]
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb6/igt@kms_plane_lowres@pipe-a-tiling-x.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb2/igt@kms_plane_lowres@pipe-a-tiling-x.html
* igt@kms_psr@psr2_sprite_plane_move:
- shard-iclb: [SKIP][77] ([fdo#109441]) -> [PASS][78] +3 similar issues
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb6/igt@kms_psr@psr2_sprite_plane_move.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
* igt@kms_universal_plane@universal-plane-pipe-c-functional:
- shard-skl: [FAIL][79] ([fdo#111134]) -> [PASS][80]
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-skl1/igt@kms_universal_plane@universal-plane-pipe-c-functional.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-skl1/igt@kms_universal_plane@universal-plane-pipe-c-functional.html
* igt@kms_vblank@pipe-d-ts-continuation-suspend:
- {shard-tglb}: [INCOMPLETE][81] ([fdo#111850]) -> [PASS][82]
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-tglb7/igt@kms_vblank@pipe-d-ts-continuation-suspend.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-tglb5/igt@kms_vblank@pipe-d-ts-continuation-suspend.html
* igt@perf@oa-exponents:
- shard-glk: [FAIL][83] ([fdo#105483]) -> [PASS][84]
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-glk5/igt@perf@oa-exponents.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-glk6/igt@perf@oa-exponents.html
#### Warnings ####
* igt@gem_ctx_isolation@vcs1-nonpriv:
- shard-iclb: [SKIP][85] ([fdo#109276]) -> [FAIL][86] ([fdo#111329])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb5/igt@gem_ctx_isolation@vcs1-nonpriv.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb4/igt@gem_ctx_isolation@vcs1-nonpriv.html
* igt@gem_mocs_settings@mocs-reset-bsd2:
- shard-iclb: [SKIP][87] ([fdo#109276]) -> [FAIL][88] ([fdo#111330]) +1 similar issue
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb3/igt@gem_mocs_settings@mocs-reset-bsd2.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb1/igt@gem_mocs_settings@mocs-reset-bsd2.html
* igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [DMESG-WARN][89] ([fdo#107724]) -> [SKIP][90] ([fdo#109349])
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb1/igt@kms_dp_dsc@basic-dsc-enable-edp.html
* igt@kms_psr@psr2_suspend:
- shard-iclb: [SKIP][91] ([fdo#109441]) -> [DMESG-WARN][92] ([fdo#107724])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7136/shard-iclb5/igt@kms_psr@psr2_suspend.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/shard-iclb2/igt@kms_psr@psr2_suspend.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo# 112000 ]: https://bugs.freedesktop.org/show_bug.cgi?id= 112000
[fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
[fdo#103355]: https://bugs.freedesktop.org/show_bug.cgi?id=103355
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
[fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
[fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
[fdo#105483]: https://bugs.freedesktop.org/show_bug.cgi?id=105483
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
[fdo#107807]: https://bugs.freedesktop.org/show_bug.cgi?id=107807
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#108303]: https://bugs.freedesktop.org/show_bug.cgi?id=108303
[fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
[fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
[fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109507]: https://bugs.freedesktop.org/show_bug.cgi?id=109507
[fdo#109661]: https://bugs.freedesktop.org/show_bug.cgi?id=109661
[fdo#110403]: https://bugs.freedesktop.org/show_bug.cgi?id=110403
[fdo#110741]: https://bugs.freedesktop.org/show_bug.cgi?id=110741
[fdo#110841]: https://bugs.freedesktop.org/show_bug.cgi?id=110841
[fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
[fdo#111134]: https://bugs.freedesktop.org/show_bug.cgi?id=111134
[fdo#111325]: https://bugs.freedesktop.org/show_bug.cgi?id=111325
[fdo#111329]: https://bugs.freedesktop.org/show_bug.cgi?id=111329
[fdo#111330]: https://bugs.freedesktop.org/show_bug.cgi?id=111330
[fdo#111597]: https://bugs.freedesktop.org/show_bug.cgi?id=111597
[fdo#111646]: https://bugs.freedesktop.org/show_bug.cgi?id=111646
[fdo#111703]: https://bugs.freedesktop.org/show_bug.cgi?id=111703
[fdo#111747]: https://bugs.freedesktop.org/show_bug.cgi?id=111747
[fdo#111781]: https://bugs.freedesktop.org/show_bug.cgi?id=111781
[fdo#111830 ]: https://bugs.freedesktop.org/show_bug.cgi?id=111830
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14895/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-10-20 18:53 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-20 16:43 [PATCH 1/3] dma-buf: Prettify typecasts for dma-fence-chain Chris Wilson
2019-10-20 16:43 ` [PATCH 2/3] dma-buf: Report signaled links inside dma-fence-chain Chris Wilson
2019-10-20 16:43 ` [PATCH 3/3] dma-buf: Exercise dma-fence-chain under selftests Chris Wilson
2019-10-20 17:00 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] dma-buf: Prettify typecasts for dma-fence-chain Patchwork
2019-10-20 17:28 ` ✓ Fi.CI.BAT: success " Patchwork
2019-10-20 18:53 ` ✓ 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.