automatic DPDK test reports
 help / color / mirror / Atom feed
* |WARNING| pw109569 [PATCH] vhost: support sync copy when data buffer is small
@ 2022-04-11  5:59 dpdklab
  0 siblings, 0 replies; only message in thread
From: dpdklab @ 2022-04-11  5:59 UTC (permalink / raw)
  To: test-report; +Cc: dpdk-test-reports

[-- Attachment #1: Type: text/plain, Size: 4220 bytes --]

Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/109569

_apply patch failure_

Submitter: Wenwu Ma <wenwux.ma@intel.com>
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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-04-11  5:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-11  5:59 |WARNING| pw109569 [PATCH] vhost: support sync copy when data buffer is small dpdklab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).