* [PATCH] dma-buf: Implement simple read/write vfs ops @ 2019-09-19 15:08 Chris Wilson 2019-09-19 15:28 ` Daniel Vetter 2019-09-19 20:22 ` ✗ Fi.CI.BAT: failure for " Patchwork 0 siblings, 2 replies; 5+ messages in thread From: Chris Wilson @ 2019-09-19 15:08 UTC (permalink / raw) To: dri-devel; +Cc: Daniel Vetter, intel-gfx, Sean Paul, Laura Abbott, Sumit Semwal It is expected that processes will pass dma-buf fd between drivers, and only using the fd themselves for mmaping and synchronisation ioctls. However, it may be convenient for an application to read/write into the dma-buf, for instance a test case to check the internal dma_buf->ops->kmap interface. There may also be a small advantage to avoiding the mmap() for very simple/small operations. Note in particular, synchronisation with the device is left to the caller with an explicit DMA_BUF_IOCTL_SYNC, rather than done implicitly inside the read/write, so that the user can avoid synchronisation if they so choose. "It is easier to add synchronisation later, than it is to take it away." v2: Lots of little fixes, plus a real llseek() implements so that the first basic little test cases work! Testcase: igt/prime_rw Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Laura Abbott <labbott@redhat.com> Cc: Sumit Semwal <sumit.semwal@linaro.org> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Sean Paul <seanpaul@chromium.org> Cc: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> Tested-by: Laura Abbott <labbott@redhat.com> --- Dusting this off again as it would be nice as a user to operate on dmabuf agnostic to the underyling driver. We have mmap, so naturally we would like to have read/write as well! --- drivers/dma-buf/dma-buf.c | 108 ++++++++++++++++++++++++++++++++------ 1 file changed, 93 insertions(+), 15 deletions(-) diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c index 433d91d710e4..a19fc881a99c 100644 --- a/drivers/dma-buf/dma-buf.c +++ b/drivers/dma-buf/dma-buf.c @@ -135,28 +135,104 @@ static int dma_buf_mmap_internal(struct file *file, struct vm_area_struct *vma) static loff_t dma_buf_llseek(struct file *file, loff_t offset, int whence) { - struct dma_buf *dmabuf; - loff_t base; + struct dma_buf *dmabuf = file->private_data; if (!is_dma_buf_file(file)) return -EBADF; - dmabuf = file->private_data; + return fixed_size_llseek(file, offset, whence, dmabuf->size); +} - /* only support discovering the end of the buffer, - but also allow SEEK_SET to maintain the idiomatic - SEEK_END(0), SEEK_CUR(0) pattern */ - if (whence == SEEK_END) - base = dmabuf->size; - else if (whence == SEEK_SET) - base = 0; - else - return -EINVAL; +static ssize_t dma_buf_read(struct file *file, + char __user *ubuf, size_t remain, + loff_t *offset) +{ + struct dma_buf *dmabuf = file->private_data; + unsigned long idx; + unsigned int start; + size_t total; - if (offset != 0) - return -EINVAL; + if (!is_dma_buf_file(file)) + return -EBADF; + + total = 0; + idx = *offset >> PAGE_SHIFT; + start = offset_in_page(*offset); + while (remain) { + unsigned int len = min_t(size_t, remain, PAGE_SIZE - start); + unsigned int copied; + void *vaddr; + + if (*offset >= dmabuf->size) + return total; + + vaddr = dma_buf_kmap(dmabuf, idx); + if (!vaddr) + return total ?: -EIO; + + copied = copy_to_user(ubuf, vaddr + start, len); + dma_buf_kunmap(dmabuf, idx, vaddr); + + total += copied ?: len; + if (copied) { + *offset += copied; + return total ?: -EFAULT; + } + + remain -= len; + *offset += len; + ubuf += len; + start = 0; + idx++; + } + + return total; +} + +static ssize_t dma_buf_write(struct file *file, + const char __user *ubuf, size_t remain, + loff_t *offset) +{ + struct dma_buf *dmabuf = file->private_data; + unsigned long idx; + unsigned int start; + size_t total; + + if (!is_dma_buf_file(file)) + return -EBADF; + + total = 0; + idx = *offset >> PAGE_SHIFT; + start = offset_in_page(*offset); + while (remain) { + unsigned int len = min_t(size_t, remain, PAGE_SIZE - start); + unsigned int copied; + void *vaddr; + + if (*offset >= dmabuf->size) + return total; + + vaddr = dma_buf_kmap(dmabuf, idx); + if (!vaddr) + return total ?: -EIO; + + copied = copy_from_user(vaddr + start, ubuf, len); + dma_buf_kunmap(dmabuf, idx, vaddr); + + total += copied ?: len; + if (copied) { + *offset += copied; + return total ?: -EFAULT; + } + + remain -= len; + *offset += len; + ubuf += len; + start = 0; + idx++; + } - return base + offset; + return total; } /** @@ -413,6 +489,8 @@ static const struct file_operations dma_buf_fops = { .release = dma_buf_release, .mmap = dma_buf_mmap_internal, .llseek = dma_buf_llseek, + .read = dma_buf_read, + .write = dma_buf_write, .poll = dma_buf_poll, .unlocked_ioctl = dma_buf_ioctl, #ifdef CONFIG_COMPAT -- 2.23.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] dma-buf: Implement simple read/write vfs ops 2019-09-19 15:08 [PATCH] dma-buf: Implement simple read/write vfs ops Chris Wilson @ 2019-09-19 15:28 ` Daniel Vetter 2019-09-19 15:52 ` Chris Wilson 2019-09-19 20:22 ` ✗ Fi.CI.BAT: failure for " Patchwork 1 sibling, 1 reply; 5+ messages in thread From: Daniel Vetter @ 2019-09-19 15:28 UTC (permalink / raw) To: Chris Wilson; +Cc: intel-gfx, dri-devel, Sean Paul, Laura Abbott, Sumit Semwal On Thu, Sep 19, 2019 at 5:09 PM Chris Wilson <chris@chris-wilson.co.uk> wrote: > > It is expected that processes will pass dma-buf fd between drivers, and > only using the fd themselves for mmaping and synchronisation ioctls. > However, it may be convenient for an application to read/write into the > dma-buf, for instance a test case to check the internal > dma_buf->ops->kmap interface. There may also be a small advantage to > avoiding the mmap() for very simple/small operations. > > Note in particular, synchronisation with the device is left to the > caller with an explicit DMA_BUF_IOCTL_SYNC, rather than done implicitly > inside the read/write, so that the user can avoid synchronisation if > they so choose. > > "It is easier to add synchronisation later, than it is to take it away." Hm for mmap I think the explicit sync makes sense (we might even want to do it in userspace). Not so sure it's a great idea for read/write ... I guess we'd need to see what people have/had in mind for the userspace for this to decide. Only other thought I have on this is that many dma-buf exporters don't bother with the kmap/kunmap interface (probably fewer than those who bother with kernel vmap and mmap), maybe we want at least a vmap fallback for this. Or maybe just use that as an excuse to get more people to wire up the kmap stuff :-) -Daniel > v2: Lots of little fixes, plus a real llseek() implements so that the > first basic little test cases work! > > Testcase: igt/prime_rw > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Laura Abbott <labbott@redhat.com> > Cc: Sumit Semwal <sumit.semwal@linaro.org> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > Cc: Sean Paul <seanpaul@chromium.org> > Cc: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> > Tested-by: Laura Abbott <labbott@redhat.com> > --- > Dusting this off again as it would be nice as a user to operate on dmabuf > agnostic to the underyling driver. We have mmap, so naturally we would > like to have read/write as well! > > --- > drivers/dma-buf/dma-buf.c | 108 ++++++++++++++++++++++++++++++++------ > 1 file changed, 93 insertions(+), 15 deletions(-) > > diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c > index 433d91d710e4..a19fc881a99c 100644 > --- a/drivers/dma-buf/dma-buf.c > +++ b/drivers/dma-buf/dma-buf.c > @@ -135,28 +135,104 @@ static int dma_buf_mmap_internal(struct file *file, struct vm_area_struct *vma) > > static loff_t dma_buf_llseek(struct file *file, loff_t offset, int whence) > { > - struct dma_buf *dmabuf; > - loff_t base; > + struct dma_buf *dmabuf = file->private_data; > > if (!is_dma_buf_file(file)) > return -EBADF; > > - dmabuf = file->private_data; > + return fixed_size_llseek(file, offset, whence, dmabuf->size); > +} > > - /* only support discovering the end of the buffer, > - but also allow SEEK_SET to maintain the idiomatic > - SEEK_END(0), SEEK_CUR(0) pattern */ > - if (whence == SEEK_END) > - base = dmabuf->size; > - else if (whence == SEEK_SET) > - base = 0; > - else > - return -EINVAL; > +static ssize_t dma_buf_read(struct file *file, > + char __user *ubuf, size_t remain, > + loff_t *offset) > +{ > + struct dma_buf *dmabuf = file->private_data; > + unsigned long idx; > + unsigned int start; > + size_t total; > > - if (offset != 0) > - return -EINVAL; > + if (!is_dma_buf_file(file)) > + return -EBADF; > + > + total = 0; > + idx = *offset >> PAGE_SHIFT; > + start = offset_in_page(*offset); > + while (remain) { > + unsigned int len = min_t(size_t, remain, PAGE_SIZE - start); > + unsigned int copied; > + void *vaddr; > + > + if (*offset >= dmabuf->size) > + return total; > + > + vaddr = dma_buf_kmap(dmabuf, idx); > + if (!vaddr) > + return total ?: -EIO; > + > + copied = copy_to_user(ubuf, vaddr + start, len); > + dma_buf_kunmap(dmabuf, idx, vaddr); > + > + total += copied ?: len; > + if (copied) { > + *offset += copied; > + return total ?: -EFAULT; > + } > + > + remain -= len; > + *offset += len; > + ubuf += len; > + start = 0; > + idx++; > + } > + > + return total; > +} > + > +static ssize_t dma_buf_write(struct file *file, > + const char __user *ubuf, size_t remain, > + loff_t *offset) > +{ > + struct dma_buf *dmabuf = file->private_data; > + unsigned long idx; > + unsigned int start; > + size_t total; > + > + if (!is_dma_buf_file(file)) > + return -EBADF; > + > + total = 0; > + idx = *offset >> PAGE_SHIFT; > + start = offset_in_page(*offset); > + while (remain) { > + unsigned int len = min_t(size_t, remain, PAGE_SIZE - start); > + unsigned int copied; > + void *vaddr; > + > + if (*offset >= dmabuf->size) > + return total; > + > + vaddr = dma_buf_kmap(dmabuf, idx); > + if (!vaddr) > + return total ?: -EIO; > + > + copied = copy_from_user(vaddr + start, ubuf, len); > + dma_buf_kunmap(dmabuf, idx, vaddr); > + > + total += copied ?: len; > + if (copied) { > + *offset += copied; > + return total ?: -EFAULT; > + } > + > + remain -= len; > + *offset += len; > + ubuf += len; > + start = 0; > + idx++; > + } > > - return base + offset; > + return total; > } > > /** > @@ -413,6 +489,8 @@ static const struct file_operations dma_buf_fops = { > .release = dma_buf_release, > .mmap = dma_buf_mmap_internal, > .llseek = dma_buf_llseek, > + .read = dma_buf_read, > + .write = dma_buf_write, > .poll = dma_buf_poll, > .unlocked_ioctl = dma_buf_ioctl, > #ifdef CONFIG_COMPAT > -- > 2.23.0 > -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] dma-buf: Implement simple read/write vfs ops 2019-09-19 15:28 ` Daniel Vetter @ 2019-09-19 15:52 ` Chris Wilson 2019-09-19 16:18 ` Daniel Vetter 0 siblings, 1 reply; 5+ messages in thread From: Chris Wilson @ 2019-09-19 15:52 UTC (permalink / raw) To: Daniel Vetter; +Cc: intel-gfx, dri-devel, Sean Paul, Laura Abbott, Sumit Semwal Quoting Daniel Vetter (2019-09-19 16:28:41) > On Thu, Sep 19, 2019 at 5:09 PM Chris Wilson <chris@chris-wilson.co.uk> wrote: > > > > It is expected that processes will pass dma-buf fd between drivers, and > > only using the fd themselves for mmaping and synchronisation ioctls. > > However, it may be convenient for an application to read/write into the > > dma-buf, for instance a test case to check the internal > > dma_buf->ops->kmap interface. There may also be a small advantage to > > avoiding the mmap() for very simple/small operations. > > > > Note in particular, synchronisation with the device is left to the > > caller with an explicit DMA_BUF_IOCTL_SYNC, rather than done implicitly > > inside the read/write, so that the user can avoid synchronisation if > > they so choose. > > > > "It is easier to add synchronisation later, than it is to take it away." > > Hm for mmap I think the explicit sync makes sense (we might even want > to do it in userspace). Not so sure it's a great idea for read/write > ... I guess we'd need to see what people have/had in mind for the > userspace for this to decide. There's an O_SYNC flag for open(2): O_SYNC Write operations on the file will complete according to the requirements of synchronized I/O file integrity completion (by contrast with the synchronized I/O data integrity completion provided by O_DSYNC.) By the time write(2) (or similar) returns, the output data and associated file metadata have been transferred to the underly‐ ing hardware (i.e., as though each write(2) was followed by a call to fsync(2)). That seems applicable here? -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] dma-buf: Implement simple read/write vfs ops 2019-09-19 15:52 ` Chris Wilson @ 2019-09-19 16:18 ` Daniel Vetter 0 siblings, 0 replies; 5+ messages in thread From: Daniel Vetter @ 2019-09-19 16:18 UTC (permalink / raw) To: Chris Wilson; +Cc: intel-gfx, Laura Abbott, Sean Paul, Sumit Semwal, dri-devel On Thu, Sep 19, 2019 at 5:53 PM Chris Wilson <chris@chris-wilson.co.uk> wrote: > > Quoting Daniel Vetter (2019-09-19 16:28:41) > > On Thu, Sep 19, 2019 at 5:09 PM Chris Wilson <chris@chris-wilson.co.uk> wrote: > > > > > > It is expected that processes will pass dma-buf fd between drivers, and > > > only using the fd themselves for mmaping and synchronisation ioctls. > > > However, it may be convenient for an application to read/write into the > > > dma-buf, for instance a test case to check the internal > > > dma_buf->ops->kmap interface. There may also be a small advantage to > > > avoiding the mmap() for very simple/small operations. > > > > > > Note in particular, synchronisation with the device is left to the > > > caller with an explicit DMA_BUF_IOCTL_SYNC, rather than done implicitly > > > inside the read/write, so that the user can avoid synchronisation if > > > they so choose. > > > > > > "It is easier to add synchronisation later, than it is to take it away." > > > > Hm for mmap I think the explicit sync makes sense (we might even want > > to do it in userspace). Not so sure it's a great idea for read/write > > ... I guess we'd need to see what people have/had in mind for the > > userspace for this to decide. > > There's an O_SYNC flag for open(2): > > O_SYNC Write operations on the file will complete according to the > requirements of synchronized I/O file integrity completion (by > contrast with the synchronized I/O data integrity completion > provided by O_DSYNC.) > > By the time write(2) (or similar) returns, the output data and > associated file metadata have been transferred to the underly‐ > ing hardware (i.e., as though each write(2) was followed by a > call to fsync(2)). > > That seems applicable here? Hm yeah, sounds like a neat idea to use O_SYNC to decide whether writes/reads flushes or not. It's a bit a stretch since !O_SYNC would also give you un-coherent reads (or could at least). -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
* ✗ Fi.CI.BAT: failure for dma-buf: Implement simple read/write vfs ops 2019-09-19 15:08 [PATCH] dma-buf: Implement simple read/write vfs ops Chris Wilson 2019-09-19 15:28 ` Daniel Vetter @ 2019-09-19 20:22 ` Patchwork 1 sibling, 0 replies; 5+ messages in thread From: Patchwork @ 2019-09-19 20:22 UTC (permalink / raw) To: Chris Wilson; +Cc: intel-gfx == Series Details == Series: dma-buf: Implement simple read/write vfs ops URL : https://patchwork.freedesktop.org/series/66941/ State : failure == Summary == CI Bug Log - changes from CI_DRM_6925 -> Patchwork_14460 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_14460 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_14460, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/ Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_14460: ### IGT changes ### #### Possible regressions #### * igt@prime_self_import@basic-llseek-bad: - fi-skl-guc: [PASS][1] -> [FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-skl-guc/igt@prime_self_import@basic-llseek-bad.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-skl-guc/igt@prime_self_import@basic-llseek-bad.html - fi-cfl-guc: [PASS][3] -> [FAIL][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-cfl-guc/igt@prime_self_import@basic-llseek-bad.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-cfl-guc/igt@prime_self_import@basic-llseek-bad.html - fi-ivb-3770: [PASS][5] -> [FAIL][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-ivb-3770/igt@prime_self_import@basic-llseek-bad.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-ivb-3770/igt@prime_self_import@basic-llseek-bad.html - fi-cml-u2: [PASS][7] -> [FAIL][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-cml-u2/igt@prime_self_import@basic-llseek-bad.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-cml-u2/igt@prime_self_import@basic-llseek-bad.html - fi-kbl-7500u: [PASS][9] -> [FAIL][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-kbl-7500u/igt@prime_self_import@basic-llseek-bad.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-kbl-7500u/igt@prime_self_import@basic-llseek-bad.html - fi-hsw-4770: [PASS][11] -> [FAIL][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-hsw-4770/igt@prime_self_import@basic-llseek-bad.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-hsw-4770/igt@prime_self_import@basic-llseek-bad.html - fi-kbl-guc: [PASS][13] -> [FAIL][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-kbl-guc/igt@prime_self_import@basic-llseek-bad.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-kbl-guc/igt@prime_self_import@basic-llseek-bad.html - fi-glk-dsi: [PASS][15] -> [FAIL][16] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-glk-dsi/igt@prime_self_import@basic-llseek-bad.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-glk-dsi/igt@prime_self_import@basic-llseek-bad.html - fi-bdw-5557u: [PASS][17] -> [FAIL][18] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-bdw-5557u/igt@prime_self_import@basic-llseek-bad.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-bdw-5557u/igt@prime_self_import@basic-llseek-bad.html - fi-apl-guc: [PASS][19] -> [FAIL][20] [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-apl-guc/igt@prime_self_import@basic-llseek-bad.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-apl-guc/igt@prime_self_import@basic-llseek-bad.html - fi-cfl-8109u: [PASS][21] -> [FAIL][22] [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-cfl-8109u/igt@prime_self_import@basic-llseek-bad.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-cfl-8109u/igt@prime_self_import@basic-llseek-bad.html - fi-skl-6600u: [PASS][23] -> [FAIL][24] [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-skl-6600u/igt@prime_self_import@basic-llseek-bad.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-skl-6600u/igt@prime_self_import@basic-llseek-bad.html - fi-pnv-d510: NOTRUN -> [FAIL][25] [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-pnv-d510/igt@prime_self_import@basic-llseek-bad.html - fi-bsw-kefka: [PASS][26] -> [FAIL][27] [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-bsw-kefka/igt@prime_self_import@basic-llseek-bad.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-bsw-kefka/igt@prime_self_import@basic-llseek-bad.html - fi-blb-e6850: [PASS][28] -> [FAIL][29] [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-blb-e6850/igt@prime_self_import@basic-llseek-bad.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-blb-e6850/igt@prime_self_import@basic-llseek-bad.html - fi-skl-6700k2: [PASS][30] -> [FAIL][31] [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-skl-6700k2/igt@prime_self_import@basic-llseek-bad.html [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-skl-6700k2/igt@prime_self_import@basic-llseek-bad.html - fi-elk-e7500: [PASS][32] -> [FAIL][33] [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-elk-e7500/igt@prime_self_import@basic-llseek-bad.html [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-elk-e7500/igt@prime_self_import@basic-llseek-bad.html - fi-skl-iommu: [PASS][34] -> [FAIL][35] [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-skl-iommu/igt@prime_self_import@basic-llseek-bad.html [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-skl-iommu/igt@prime_self_import@basic-llseek-bad.html - fi-skl-6260u: [PASS][36] -> [FAIL][37] [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-skl-6260u/igt@prime_self_import@basic-llseek-bad.html [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-skl-6260u/igt@prime_self_import@basic-llseek-bad.html - fi-snb-2600: [PASS][38] -> [FAIL][39] [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-snb-2600/igt@prime_self_import@basic-llseek-bad.html [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-snb-2600/igt@prime_self_import@basic-llseek-bad.html - fi-whl-u: [PASS][40] -> [FAIL][41] [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-whl-u/igt@prime_self_import@basic-llseek-bad.html [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-whl-u/igt@prime_self_import@basic-llseek-bad.html - fi-skl-6770hq: [PASS][42] -> [FAIL][43] [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-skl-6770hq/igt@prime_self_import@basic-llseek-bad.html [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-skl-6770hq/igt@prime_self_import@basic-llseek-bad.html - fi-byt-n2820: [PASS][44] -> [FAIL][45] [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-byt-n2820/igt@prime_self_import@basic-llseek-bad.html [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-byt-n2820/igt@prime_self_import@basic-llseek-bad.html - fi-bwr-2160: [PASS][46] -> [FAIL][47] [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-bwr-2160/igt@prime_self_import@basic-llseek-bad.html [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-bwr-2160/igt@prime_self_import@basic-llseek-bad.html - fi-kbl-r: [PASS][48] -> [FAIL][49] [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-kbl-r/igt@prime_self_import@basic-llseek-bad.html [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-kbl-r/igt@prime_self_import@basic-llseek-bad.html - fi-skl-lmem: [PASS][50] -> [FAIL][51] [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-skl-lmem/igt@prime_self_import@basic-llseek-bad.html [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-skl-lmem/igt@prime_self_import@basic-llseek-bad.html - fi-kbl-8809g: [PASS][52] -> [FAIL][53] [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-kbl-8809g/igt@prime_self_import@basic-llseek-bad.html [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-kbl-8809g/igt@prime_self_import@basic-llseek-bad.html - fi-snb-2520m: [PASS][54] -> [FAIL][55] [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-snb-2520m/igt@prime_self_import@basic-llseek-bad.html [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-snb-2520m/igt@prime_self_import@basic-llseek-bad.html - fi-gdg-551: [PASS][56] -> [FAIL][57] [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-gdg-551/igt@prime_self_import@basic-llseek-bad.html [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-gdg-551/igt@prime_self_import@basic-llseek-bad.html - fi-cfl-8700k: [PASS][58] -> [FAIL][59] [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-cfl-8700k/igt@prime_self_import@basic-llseek-bad.html [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-cfl-8700k/igt@prime_self_import@basic-llseek-bad.html - fi-icl-u2: [PASS][60] -> [FAIL][61] [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-icl-u2/igt@prime_self_import@basic-llseek-bad.html [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-icl-u2/igt@prime_self_import@basic-llseek-bad.html - fi-hsw-peppy: [PASS][62] -> [FAIL][63] [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-hsw-peppy/igt@prime_self_import@basic-llseek-bad.html [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-hsw-peppy/igt@prime_self_import@basic-llseek-bad.html - fi-kbl-x1275: [PASS][64] -> [FAIL][65] [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-kbl-x1275/igt@prime_self_import@basic-llseek-bad.html [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-kbl-x1275/igt@prime_self_import@basic-llseek-bad.html - fi-bdw-gvtdvm: [PASS][66] -> [FAIL][67] [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-bdw-gvtdvm/igt@prime_self_import@basic-llseek-bad.html [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-bdw-gvtdvm/igt@prime_self_import@basic-llseek-bad.html - fi-ilk-650: [PASS][68] -> [FAIL][69] [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-ilk-650/igt@prime_self_import@basic-llseek-bad.html [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-ilk-650/igt@prime_self_import@basic-llseek-bad.html - fi-bsw-n3050: [PASS][70] -> [FAIL][71] [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-bsw-n3050/igt@prime_self_import@basic-llseek-bad.html [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-bsw-n3050/igt@prime_self_import@basic-llseek-bad.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@prime_self_import@basic-llseek-bad: - {fi-cml-s}: [PASS][72] -> [FAIL][73] [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-cml-s/igt@prime_self_import@basic-llseek-bad.html [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-cml-s/igt@prime_self_import@basic-llseek-bad.html - {fi-icl-guc}: [PASS][74] -> [FAIL][75] [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-icl-guc/igt@prime_self_import@basic-llseek-bad.html [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-icl-guc/igt@prime_self_import@basic-llseek-bad.html - {fi-icl-u4}: [PASS][76] -> [FAIL][77] [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-icl-u4/igt@prime_self_import@basic-llseek-bad.html [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-icl-u4/igt@prime_self_import@basic-llseek-bad.html - {fi-icl-dsi}: [PASS][78] -> [FAIL][79] [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-icl-dsi/igt@prime_self_import@basic-llseek-bad.html [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-icl-dsi/igt@prime_self_import@basic-llseek-bad.html - {fi-tgl-u2}: [PASS][80] -> [FAIL][81] [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-tgl-u2/igt@prime_self_import@basic-llseek-bad.html [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-tgl-u2/igt@prime_self_import@basic-llseek-bad.html - {fi-tgl-u}: [PASS][82] -> [FAIL][83] [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-tgl-u/igt@prime_self_import@basic-llseek-bad.html [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-tgl-u/igt@prime_self_import@basic-llseek-bad.html - {fi-kbl-soraka}: [PASS][84] -> [FAIL][85] [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-kbl-soraka/igt@prime_self_import@basic-llseek-bad.html [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-kbl-soraka/igt@prime_self_import@basic-llseek-bad.html - {fi-cml-h}: [PASS][86] -> [FAIL][87] [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-cml-h/igt@prime_self_import@basic-llseek-bad.html [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-cml-h/igt@prime_self_import@basic-llseek-bad.html Known issues ------------ Here are the changes found in Patchwork_14460 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_linear_blits@basic: - fi-icl-u3: [PASS][88] -> [DMESG-WARN][89] ([fdo#107724]) [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-icl-u3/igt@gem_linear_blits@basic.html [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-icl-u3/igt@gem_linear_blits@basic.html * igt@prime_self_import@basic-llseek-bad: - fi-icl-u3: [PASS][90] -> [DMESG-FAIL][91] ([fdo#107724]) [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-icl-u3/igt@prime_self_import@basic-llseek-bad.html [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-icl-u3/igt@prime_self_import@basic-llseek-bad.html #### Possible fixes #### * igt@gem_cpu_reloc@basic: - fi-bxt-dsi: [INCOMPLETE][92] ([fdo#103927]) -> [PASS][93] [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-bxt-dsi/igt@gem_cpu_reloc@basic.html [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-bxt-dsi/igt@gem_cpu_reloc@basic.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-icl-u2: [FAIL][94] ([fdo#109483]) -> [PASS][95] +1 similar issue [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html * igt@kms_frontbuffer_tracking@basic: - fi-icl-u2: [FAIL][96] ([fdo#103167]) -> [PASS][97] [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html * igt@prime_vgem@basic-busy-default: - fi-icl-u3: [DMESG-WARN][98] ([fdo#107724]) -> [PASS][99] +2 similar issues [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-icl-u3/igt@prime_vgem@basic-busy-default.html [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-icl-u3/igt@prime_vgem@basic-busy-default.html #### Warnings #### * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-7500u: [FAIL][100] ([fdo#111407]) -> [FAIL][101] ([fdo#111096]) [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6925/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927 [fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602 [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107 [fdo#106350]: https://bugs.freedesktop.org/show_bug.cgi?id=106350 [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724 [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309 [fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483 [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045 [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096 [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407 Participating hosts (53 -> 46) ------------------------------ Additional (1): fi-pnv-d510 Missing (8): fi-ilk-m540 fi-hsw-4200u fi-byt-j1900 fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus Build changes ------------- * CI: CI-20190529 -> None * Linux: CI_DRM_6925 -> Patchwork_14460 CI-20190529: 20190529 CI_DRM_6925: ccd2c9cb3fd35f9654cdf6743bdecfb489fba70a @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5193: 924e5c59dbb82938e743efd6b0812eeb5760b70d @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_14460: 7507ac39469e1ee1cced85d6f115d795375c7730 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 7507ac39469e dma-buf: Implement simple read/write vfs ops == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14460/index.html _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-09-19 20:22 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-09-19 15:08 [PATCH] dma-buf: Implement simple read/write vfs ops Chris Wilson 2019-09-19 15:28 ` Daniel Vetter 2019-09-19 15:52 ` Chris Wilson 2019-09-19 16:18 ` Daniel Vetter 2019-09-19 20:22 ` ✗ Fi.CI.BAT: failure for " 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.