From: "Michael S. Tsirkin" <mst@redhat.com> To: unlisted-recipients:; (no To-header on input) Cc: "Michael S. Tsirkin" <mst@redhat.com>, "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Andrew Morton <akpm@linux-foundation.org>, Alexander Duyck <alexander.h.duyck@intel.com>, Ian Campbell <Ian.Campbell@citrix.com>, kvm@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 4/8] vhost-net: cleanup macros for DMA status tracking Date: Mon, 29 Oct 2012 17:49:56 +0200 [thread overview] Message-ID: <fb1565dcd5203f57c21b6dc8744b4ac768d98702.1351524501.git.mst@redhat.com> (raw) In-Reply-To: <cover.1351524501.git.mst@redhat.com> Better document macros for DMA tracking. Add an explicit one for DMA in progress instead of relying on user supplying len != 1. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> --- drivers/vhost/net.c | 3 ++- drivers/vhost/vhost.c | 2 +- drivers/vhost/vhost.h | 12 +++++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index 072cbba..f80ae5f 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -237,7 +237,8 @@ static void handle_tx(struct vhost_net *net) } else { struct ubuf_info *ubuf = &vq->ubuf_info[head]; - vq->heads[vq->upend_idx].len = len; + vq->heads[vq->upend_idx].len = + VHOST_DMA_IN_PROGRESS; ubuf->callback = vhost_zerocopy_callback; ubuf->ctx = vq->ubufs; ubuf->desc = vq->upend_idx; diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index 92308b6..906fd9f 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -1606,7 +1606,7 @@ void vhost_zerocopy_callback(struct ubuf_info *ubuf, int zerocopy_status) struct vhost_virtqueue *vq = ubufs->vq; vhost_poll_queue(&vq->poll); - /* set len = 1 to mark this desc buffers done DMA */ + /* set len to mark this desc buffers done DMA */ vq->heads[ubuf->desc].len = VHOST_DMA_DONE_LEN; kref_put(&ubufs->kref, vhost_zerocopy_done_signal); } diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h index eb7263c3..ad72a1f 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h @@ -13,9 +13,15 @@ #include <linux/virtio_ring.h> #include <linux/atomic.h> -/* This is for zerocopy, used buffer len is set to 1 when lower device DMA - * done */ -#define VHOST_DMA_DONE_LEN 1 +/* + * For transmit, used buffer len is unused; we override it to track buffer + * status internally; used for zerocopy tx only. + */ +/* Lower device DMA done */ +#define VHOST_DMA_DONE_LEN 2 +/* Lower device DMA in progress */ +#define VHOST_DMA_IN_PROGRESS 1 +/* Buffer unused */ #define VHOST_DMA_CLEAR_LEN 0 struct vhost_device; -- MST
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com> Cc: Alexander Duyck <alexander.h.duyck@intel.com>, Ian Campbell <Ian.Campbell@citrix.com>, kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, Eric Dumazet <edumazet@google.com>, Andrew Morton <akpm@linux-foundation.org>, "David S. Miller" <davem@davemloft.net> Subject: [PATCH net-next 4/8] vhost-net: cleanup macros for DMA status tracking Date: Mon, 29 Oct 2012 17:49:56 +0200 [thread overview] Message-ID: <fb1565dcd5203f57c21b6dc8744b4ac768d98702.1351524501.git.mst@redhat.com> (raw) In-Reply-To: <cover.1351524501.git.mst@redhat.com> Better document macros for DMA tracking. Add an explicit one for DMA in progress instead of relying on user supplying len != 1. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> --- drivers/vhost/net.c | 3 ++- drivers/vhost/vhost.c | 2 +- drivers/vhost/vhost.h | 12 +++++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index 072cbba..f80ae5f 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -237,7 +237,8 @@ static void handle_tx(struct vhost_net *net) } else { struct ubuf_info *ubuf = &vq->ubuf_info[head]; - vq->heads[vq->upend_idx].len = len; + vq->heads[vq->upend_idx].len = + VHOST_DMA_IN_PROGRESS; ubuf->callback = vhost_zerocopy_callback; ubuf->ctx = vq->ubufs; ubuf->desc = vq->upend_idx; diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index 92308b6..906fd9f 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -1606,7 +1606,7 @@ void vhost_zerocopy_callback(struct ubuf_info *ubuf, int zerocopy_status) struct vhost_virtqueue *vq = ubufs->vq; vhost_poll_queue(&vq->poll); - /* set len = 1 to mark this desc buffers done DMA */ + /* set len to mark this desc buffers done DMA */ vq->heads[ubuf->desc].len = VHOST_DMA_DONE_LEN; kref_put(&ubufs->kref, vhost_zerocopy_done_signal); } diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h index eb7263c3..ad72a1f 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h @@ -13,9 +13,15 @@ #include <linux/virtio_ring.h> #include <linux/atomic.h> -/* This is for zerocopy, used buffer len is set to 1 when lower device DMA - * done */ -#define VHOST_DMA_DONE_LEN 1 +/* + * For transmit, used buffer len is unused; we override it to track buffer + * status internally; used for zerocopy tx only. + */ +/* Lower device DMA done */ +#define VHOST_DMA_DONE_LEN 2 +/* Lower device DMA in progress */ +#define VHOST_DMA_IN_PROGRESS 1 +/* Buffer unused */ #define VHOST_DMA_CLEAR_LEN 0 struct vhost_device; -- MST
next prev parent reply other threads:[~2012-10-29 15:47 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-10-29 15:49 [PATCH net-next 0/8] enable/disable zero copy tx dynamically Michael S. Tsirkin 2012-10-29 15:49 ` Michael S. Tsirkin 2012-10-29 15:49 ` [PATCH net-next 1/8] skb: report completion status for zero copy skbs Michael S. Tsirkin 2012-10-29 15:49 ` Michael S. Tsirkin 2012-10-29 15:49 ` [PATCH net-next 2/8] skb: api to report errors " Michael S. Tsirkin 2012-10-29 15:49 ` Michael S. Tsirkin 2012-10-30 15:44 ` Vlad Yasevich 2012-10-30 15:44 ` Vlad Yasevich 2012-10-30 15:54 ` Michael S. Tsirkin 2012-10-30 15:54 ` Michael S. Tsirkin 2012-10-29 15:49 ` [PATCH net-next 3/8] tun: report orphan frags errors to zero copy callback Michael S. Tsirkin 2012-10-29 15:49 ` Michael S. Tsirkin 2012-10-29 15:49 ` [PATCH net-next 8/8] vhost-net: reduce vq polling on tx zerocopy Michael S. Tsirkin 2012-10-29 15:49 ` Michael S. Tsirkin 2012-10-30 15:47 ` Vlad Yasevich 2012-10-30 15:47 ` Vlad Yasevich 2012-10-30 15:54 ` Michael S. Tsirkin 2012-10-30 15:54 ` Michael S. Tsirkin 2012-10-29 15:49 ` Michael S. Tsirkin [this message] 2012-10-29 15:49 ` [PATCH net-next 4/8] vhost-net: cleanup macros for DMA status tracking Michael S. Tsirkin 2012-10-29 15:50 ` [PATCH net-next 5/8] vhost: track zero copy failures using DMA length Michael S. Tsirkin 2012-10-29 15:50 ` Michael S. Tsirkin 2012-10-29 15:50 ` [PATCH net-next 6/8] vhost: move -net specific code out Michael S. Tsirkin 2012-10-29 15:50 ` Michael S. Tsirkin 2012-10-29 15:50 ` [PATCH net-next 7/8] vhost-net: select tx zero copy dynamically Michael S. Tsirkin 2012-10-29 15:50 ` Michael S. Tsirkin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=fb1565dcd5203f57c21b6dc8744b4ac768d98702.1351524501.git.mst@redhat.com \ --to=mst@redhat.com \ --cc=Ian.Campbell@citrix.com \ --cc=akpm@linux-foundation.org \ --cc=alexander.h.duyck@intel.com \ --cc=davem@davemloft.net \ --cc=edumazet@google.com \ --cc=kvm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=virtualization@lists.linux-foundation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.