Test-Label: iol-testing Test-Status: WARNING http://dpdk.org/patch/109569 _apply patch failure_ Submitter: Wenwu Ma Date: Monday, April 11 2022 13:38:36 Applied on: CommitID:1e230b9be8866939ef7ce9f7f16b8c8369b7bc28 Apply patch set 109569 failed: Checking patch lib/vhost/vhost.h... Checking patch lib/vhost/virtio_net.c... error: while searching for: static __rte_always_inline int async_fill_seg(struct virtio_net *dev, struct vhost_virtqueue *vq, struct rte_mbuf *m, uint32_t mbuf_offset, uint64_t buf_iova, uint32_t cpy_len, bool to_desc) { struct vhost_async *async = vq->async; uint64_t mapped_len; uint32_t buf_offset = 0; void *src, *dst; void *host_iova; while (cpy_len) { error: patch failed: lib/vhost/virtio_net.c:999 error: while searching for: return -1; } if (to_desc) { src = (void *)(uintptr_t)rte_pktmbuf_iova_offset(m, mbuf_offset); dst = host_iova; } else { src = host_iova; dst = (void *)(uintptr_t)rte_pktmbuf_iova_offset(m, mbuf_offset); } if (unlikely(async_iter_add_iovec(dev, async, src, dst, (size_t)mapped_len))) return -1; cpy_len -= (uint32_t)mapped_len; error: patch failed: lib/vhost/virtio_net.c:1016 error: while searching for: if (is_async) { if (async_fill_seg(dev, vq, m, mbuf_offset, buf_iova + buf_offset, cpy_len, true) < 0) goto error; } else { error: patch failed: lib/vhost/virtio_net.c:1169 error: while searching for: if (is_async) { if (async_fill_seg(dev, vq, m, mbuf_offset, buf_iova + buf_offset, cpy_len, false) < 0) goto error; } else { error: patch failed: lib/vhost/virtio_net.c:2562 Applied patch lib/vhost/vhost.h cleanly. Applying patch lib/vhost/virtio_net.c with 4 rejects... Hunk #1 applied cleanly. Hunk #2 applied cleanly. Hunk #3 applied cleanly. Hunk #4 applied cleanly. Hunk #5 applied cleanly. Hunk #6 applied cleanly. Rejected hunk #7. Rejected hunk #8. Rejected hunk #9. Rejected hunk #10. diff a/lib/vhost/virtio_net.c b/lib/vhost/virtio_net.c (rejected hunks) @@ -999,12 +1031,13 @@ async_iter_reset(struct vhost_async *async) static __rte_always_inline int async_fill_seg(struct virtio_net *dev, struct vhost_virtqueue *vq, struct rte_mbuf *m, uint32_t mbuf_offset, - uint64_t buf_iova, uint32_t cpy_len, bool to_desc) + uint64_t buf_addr, uint64_t buf_iova, uint32_t cpy_len, bool to_desc) { struct vhost_async *async = vq->async; uint64_t mapped_len; uint32_t buf_offset = 0; - void *src, *dst; + void *io_src, *io_dst; + void *virt_src, *virt_dst; void *host_iova; while (cpy_len) { @@ -1016,16 +1049,23 @@ async_fill_seg(struct virtio_net *dev, struct vhost_virtqueue *vq, return -1; } + if (to_desc) { - src = (void *)(uintptr_t)rte_pktmbuf_iova_offset(m, mbuf_offset); - dst = host_iova; + io_src = (void *)(uintptr_t)rte_pktmbuf_iova_offset(m, mbuf_offset); + io_dst = host_iova; + + virt_src = rte_pktmbuf_mtod_offset(m, void *, mbuf_offset); + virt_dst = (void *)(buf_addr + buf_offset); } else { - src = host_iova; - dst = (void *)(uintptr_t)rte_pktmbuf_iova_offset(m, mbuf_offset); + io_src = host_iova; + io_dst = (void *)(uintptr_t)rte_pktmbuf_iova_offset(m, mbuf_offset); + + virt_src = (void *)(buf_addr + buf_offset); + virt_dst = rte_pktmbuf_mtod_offset(m, void *, mbuf_offset); } - if (unlikely(async_iter_add_iovec(dev, async, src, dst, - (size_t)mapped_len))) + if (unlikely(async_iter_add_iovec(dev, async, io_src, io_dst, + virt_src, virt_dst, (size_t)mapped_len))) return -1; cpy_len -= (uint32_t)mapped_len; @@ -1169,6 +1209,7 @@ mbuf_to_desc(struct virtio_net *dev, struct vhost_virtqueue *vq, if (is_async) { if (async_fill_seg(dev, vq, m, mbuf_offset, + buf_addr + buf_offset, buf_iova + buf_offset, cpy_len, true) < 0) goto error; } else { @@ -2562,6 +2603,7 @@ desc_to_mbuf(struct virtio_net *dev, struct vhost_virtqueue *vq, if (is_async) { if (async_fill_seg(dev, vq, m, mbuf_offset, + buf_addr + buf_offset, buf_iova + buf_offset, cpy_len, false) < 0) goto error; } else { https://lab.dpdk.org/results/dashboard/patchsets/21764/ UNH-IOL DPDK Community Lab