From: "Michael S. Tsirkin" <mst@redhat.com>
To: Vincenzo Maffione <v.maffione@gmail.com>
Cc: aliguori@amazon.com, marcel.a@redhat.com, jasowang@redhat.com,
qemu-devel@nongnu.org, lcapitulino@redhat.com,
stefanha@redhat.com, dmitry@daynix.com, pbonzini@redhat.com,
g.lettieri@iet.unipi.it, rizzo@iet.unipi.it
Subject: Re: [Qemu-devel] [PATCH v2 2/6] net: removing tap_using_vnet_hdr() function
Date: Thu, 16 Jan 2014 11:29:34 +0200 [thread overview]
Message-ID: <20140116092933.GA21761@redhat.com> (raw)
In-Reply-To: <1389697190-6198-3-git-send-email-v.maffione@gmail.com>
On Tue, Jan 14, 2014 at 11:59:46AM +0100, Vincenzo Maffione wrote:
> This function was used to set the using_vnet_hdr field into the
> TAPState struct. However, it is always called immediately before
> (see virtio-net.c) or immediately after (see vmxnet3.c) the function
> tap_set_vnet_hdr_len(). It's therefore possible to set the
> using_vnet_hdr field directly in tap_set_vnet_hdr_len() and remove
> tap_using_vnet_hdr(), making the code simpler.
>
> Signed-off-by: Vincenzo Maffione <v.maffione@gmail.com>
virtio net only calls tap_set_vnet_hdr_len if tap_has_vnet_hdr_len
returns true.
I think this patch will break old linux hosts which don't support
modifying vnet_hdr_len.
Also, the current API is quite ugly, but I don't think adding side
effects to tap_set_vnet_hdr_len is an improvement.
> ---
> hw/net/virtio-net.c | 4 ----
> hw/net/vmxnet3.c | 2 --
> include/net/tap.h | 1 -
> net/tap-win32.c | 4 ----
> net/tap.c | 11 +----------
> 5 files changed, 1 insertion(+), 21 deletions(-)
>
> diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
> index 3626608..ac8322d 100644
> --- a/hw/net/virtio-net.c
> +++ b/hw/net/virtio-net.c
> @@ -1496,7 +1496,6 @@ static void virtio_net_device_realize(DeviceState *dev, Error **errp)
> VirtIODevice *vdev = VIRTIO_DEVICE(dev);
> VirtIONet *n = VIRTIO_NET(dev);
> NetClientState *nc;
> - int i;
>
> virtio_init(vdev, "virtio-net", VIRTIO_ID_NET, n->config_size);
>
> @@ -1543,9 +1542,6 @@ static void virtio_net_device_realize(DeviceState *dev, Error **errp)
>
> peer_test_vnet_hdr(n);
> if (peer_has_vnet_hdr(n)) {
> - for (i = 0; i < n->max_queues; i++) {
> - tap_using_vnet_hdr(qemu_get_subqueue(n->nic, i)->peer, true);
> - }
> n->host_hdr_len = sizeof(struct virtio_net_hdr);
> } else {
> n->host_hdr_len = 0;
> diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
> index 19687aa..096b598 100644
> --- a/hw/net/vmxnet3.c
> +++ b/hw/net/vmxnet3.c
> @@ -1937,8 +1937,6 @@ static void vmxnet3_net_init(VMXNET3State *s)
> if (s->peer_has_vhdr) {
> tap_set_vnet_hdr_len(qemu_get_queue(s->nic)->peer,
> sizeof(struct virtio_net_hdr));
> -
> - tap_using_vnet_hdr(qemu_get_queue(s->nic)->peer, 1);
> }
>
> qemu_format_nic_info_str(qemu_get_queue(s->nic), s->conf.macaddr.a);
> diff --git a/include/net/tap.h b/include/net/tap.h
> index a3490a9..54974dc 100644
> --- a/include/net/tap.h
> +++ b/include/net/tap.h
> @@ -32,7 +32,6 @@
> bool tap_has_ufo(NetClientState *nc);
> bool tap_has_vnet_hdr(NetClientState *nc);
> bool tap_has_vnet_hdr_len(NetClientState *nc, int len);
> -void tap_using_vnet_hdr(NetClientState *nc, bool using_vnet_hdr);
> void tap_set_offload(NetClientState *nc, int csum, int tso4, int tso6, int ecn, int ufo);
> void tap_set_vnet_hdr_len(NetClientState *nc, int len);
> int tap_enable(NetClientState *nc);
> diff --git a/net/tap-win32.c b/net/tap-win32.c
> index edf26c4..f4cd002 100644
> --- a/net/tap-win32.c
> +++ b/net/tap-win32.c
> @@ -741,10 +741,6 @@ void tap_fd_set_vnet_hdr_len(int fd, int len)
> {
> }
>
> -void tap_using_vnet_hdr(NetClientState *nc, bool using_vnet_hdr)
> -{
> -}
> -
> void tap_set_offload(NetClientState *nc, int csum, int tso4,
> int tso6, int ecn, int ufo)
> {
> diff --git a/net/tap.c b/net/tap.c
> index c805f3c..42f768c 100644
> --- a/net/tap.c
> +++ b/net/tap.c
> @@ -247,16 +247,7 @@ void tap_set_vnet_hdr_len(NetClientState *nc, int len)
>
> tap_fd_set_vnet_hdr_len(s->fd, len);
> s->host_vnet_hdr_len = len;
> -}
> -
> -void tap_using_vnet_hdr(NetClientState *nc, bool using_vnet_hdr)
> -{
> - TAPState *s = DO_UPCAST(TAPState, nc, nc);
> -
> - assert(nc->info->type == NET_CLIENT_OPTIONS_KIND_TAP);
> - assert(!!s->host_vnet_hdr_len == using_vnet_hdr);
> -
> - s->using_vnet_hdr = using_vnet_hdr;
> + s->using_vnet_hdr = true;
> }
>
> void tap_set_offload(NetClientState *nc, int csum, int tso4,
> --
> 1.8.5.2
>
next prev parent reply other threads:[~2014-01-16 9:29 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-14 10:59 [Qemu-devel] [PATCH v2 0/6] Add netmap backend offloadings support Vincenzo Maffione
2014-01-14 10:59 ` [Qemu-devel] [PATCH v2 1/6] net: change vnet-hdr TAP prototypes Vincenzo Maffione
2014-01-14 10:59 ` [Qemu-devel] [PATCH v2 2/6] net: removing tap_using_vnet_hdr() function Vincenzo Maffione
2014-01-16 8:39 ` Stefan Hajnoczi
2014-01-16 9:29 ` Michael S. Tsirkin [this message]
2014-01-17 3:29 ` Stefan Hajnoczi
2014-01-14 10:59 ` [Qemu-devel] [PATCH v2 3/6] net: extend NetClientInfo for offloading manipulations Vincenzo Maffione
2014-01-14 10:59 ` [Qemu-devel] [PATCH v2 4/6] net: TAP uses NetClientInfo offloading callbacks Vincenzo Maffione
2014-01-14 10:59 ` [Qemu-devel] [PATCH v2 5/6] net: virtio-net and vmxnet3 use offloading API Vincenzo Maffione
2014-01-14 10:59 ` [Qemu-devel] [PATCH v2 6/6] net: add offloadings support to netmap backend Vincenzo Maffione
2014-01-15 6:49 ` [Qemu-devel] [PATCH v2 0/6] Add netmap backend offloadings support Barak Wasserstrom
2014-01-16 9:08 ` Stefan Hajnoczi
2014-01-16 15:00 ` Vincenzo Maffione
2014-01-17 3:28 ` Stefan Hajnoczi
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=20140116092933.GA21761@redhat.com \
--to=mst@redhat.com \
--cc=aliguori@amazon.com \
--cc=dmitry@daynix.com \
--cc=g.lettieri@iet.unipi.it \
--cc=jasowang@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=marcel.a@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rizzo@iet.unipi.it \
--cc=stefanha@redhat.com \
--cc=v.maffione@gmail.com \
/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: link
Be 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.