From: Stefan Hajnoczi <stefanha@gmail.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 4/5] net: add offloadings support to netmap backend
Date: Mon, 13 Jan 2014 15:28:52 +0800 [thread overview]
Message-ID: <20140113072852.GE14770@stefanha-thinkpad.redhat.com> (raw)
In-Reply-To: <1386936303-7697-5-git-send-email-v.maffione@gmail.com>
On Fri, Dec 13, 2013 at 01:05:02PM +0100, Vincenzo Maffione wrote:
> +static void netmap_using_vnet_hdr(NetClientState *nc, bool enable)
> +{
> +}
I was trying to figure out whether it's okay for this function to be a
nop. I've come to the conclusion that it's okay:
If the netdev supports vnet_hdr then we enable vnet_hdr. If not, it
will not enable it.
Other NICs never enable vnet_hdr even if the netdev supports it.
This interface is basically useless because set_vnet_hdr_len() is
also needed and provides the same information, i.e. that we are
transitioning from vnet_hdr off -> on.
The bool argument is misleading since we never use this function to
disable vnet_hdr. It's impossible to transition on -> off.
I suggest removing using_vnet_hdr() and instead relying solely on
set_vnet_hdr_len(). Do this as the first patch in the series before
introducing the function pointers, that way all your following patches
become simpler.
> +static void netmap_set_offload(NetClientState *nc, int csum, int tso4, int tso6,
> + int ecn, int ufo)
> +{
> +}
This interface is necessary for toggling offload features at runtime,
e.g. because ethtool was used inside the guest. Offloads can impact
performance and sometimes expose bugs. Therefore users may wish to
disable certain offloads.
Please consider supporting set_offload()!
> +static void netmap_set_vnet_hdr_len(NetClientState *nc, int len)
> +{
> + NetmapState *s = DO_UPCAST(NetmapState, nc, nc);
> + int err;
> + struct nmreq req;
> +
> + /* Issue a NETMAP_BDG_OFFSET command to change the netmap adapter
> + offset of 'me->ifname'. */
> + memset(&req, 0, sizeof(req));
> + pstrcpy(req.nr_name, sizeof(req.nr_name), s->me.ifname);
> + req.nr_version = NETMAP_API;
> + req.nr_cmd = NETMAP_BDG_OFFSET;
> + req.nr_arg1 = len;
> + err = ioctl(s->me.fd, NIOCREGIF, &req);
> + if (err) {
> + error_report("Unable to execute NETMAP_BDG_OFFSET on %s: %s",
> + s->me.ifname, strerror(errno));
> + } else {
> + /* Keep track of the current length, may be usefule in the future. */
s/usefule/useful/
next prev parent reply other threads:[~2014-01-13 7:29 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-13 12:04 [Qemu-devel] [PATCH 0/5] Add netmap backend offloadings support Vincenzo Maffione
2013-12-13 12:04 ` [Qemu-devel] [PATCH 1/5] net: extend NetClientInfo for offloading manipulations Vincenzo Maffione
2014-01-13 6:58 ` Stefan Hajnoczi
2014-01-13 14:07 ` Vincenzo Maffione
2013-12-13 12:05 ` [Qemu-devel] [PATCH 2/5] net: TAP uses NetClientInfo offloading callbacks Vincenzo Maffione
2013-12-13 12:05 ` [Qemu-devel] [PATCH 3/5] net: virtio-net and vmxnet3 use offloading API Vincenzo Maffione
2013-12-13 12:05 ` [Qemu-devel] [PATCH 4/5] net: add offloadings support to netmap backend Vincenzo Maffione
2014-01-13 7:28 ` Stefan Hajnoczi [this message]
2014-01-13 15:11 ` Vincenzo Maffione
2014-01-14 3:46 ` Stefan Hajnoczi
2013-12-13 12:05 ` [Qemu-devel] [PATCH 5/5] net: virtio-net and vmxnet3 can use netmap offloadings Vincenzo Maffione
2014-01-13 7:33 ` [Qemu-devel] [PATCH 0/5] Add netmap backend offloadings support 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=20140113072852.GE14770@stefanha-thinkpad.redhat.com \
--to=stefanha@gmail.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 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).