All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Alexander Duyck <alexander.duyck@gmail.com>
Cc: Stephen Hemminger <stephen@networkplumber.org>,
	Jakub Kicinski <kubakici@wp.pl>,
	"Samudrala, Sridhar" <sridhar.samudrala@intel.com>,
	Siwei Liu <loseweigh@gmail.com>,
	David Miller <davem@davemloft.net>,
	Netdev <netdev@vger.kernel.org>,
	virtualization@lists.linux-foundation.org,
	virtio-dev@lists.oasis-open.org, "Brandeburg,
	Jesse" <jesse.brandeburg@intel.com>,
	Alexander Duyck <alexander.h.duyck@intel.com>
Subject: Re: [virtio-dev] Re: [RFC PATCH net-next v2 2/2] virtio_net: Extend virtio to use VF datapath when available
Date: Mon, 29 Jan 2018 20:24:43 +0200	[thread overview]
Message-ID: <20180129202113-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <CAKgT0UfEHc6T4MbAwFjx4c2TK1hL-_eGDpSiBEY_ryN_4UaPoQ@mail.gmail.com>

On Sun, Jan 28, 2018 at 08:26:53PM -0800, Alexander Duyck wrote:
> >> > For live migration with advanced usecases that Siwei is suggesting, i
> >> > think we need a new driver with a new device type that can track the
> >> > VF specific feature settings even when the VF driver is unloaded.
> >
> > I see no added value of the 3 netdev model, there is no need for a bond
> > device.
> 
> I agree a full-blown bond isn't what is needed. However, just forking
> traffic out from virtio to a VF doesn't really solve things either.
> 
> One of the issues as I see it is the fact that the qdisc model with
> the merged device gets to be pretty ugly. There is the fact that every
> packet that goes to the VF has to pass through the qdisc code twice.
> There is the dual nature of the 2 netdev solution that also introduces
> the potential for head-of-line blocking since the virtio could put
> back pressure on the upper qdisc layer which could stall the VF
> traffic when switching over. I hope we could avoid issues like that by
> maintaining qdiscs per device queue instead of on an upper device that
> is half software interface and half not. Ideally the virtio-bond
> device could operate without a qdisc and without needing any
> additional locks so there shouldn't be head of line blocking occurring
> between the two interfaces and overhead could be kept minimal.
> 
> Also in the case of virtio there is support for in-driver XDP. As
> Sridhar stated, when using the 2 netdev model "we cannot support XDP
> in this model and it needs to be disabled". That sounds like a step
> backwards instead of forwards. I would much rather leave the XDP
> enabled at the lower dev level, and then if we want we can use the
> generic XDP at the virtio-bond level to capture traffic on both
> interfaces at the same time.

I agree dropping XDP makes everything very iffy.

> In the case of netvsc you have control of both sides of a given link
> so you can match up the RSS tables, queue configuration and everything
> is somewhat symmetric since you are running the PF and all the HyperV
> subchannels. Most of the complexity is pushed down into the host and
> your subchannel management is synchronized there if I am not mistaken.
> We don't have this in the case of this virtio-bond setup. Instead a
> single bit is set indicating "backup" without indicating what that
> means to topology other than the fact that this virtio interface is
> the backup for some other interface. We are essentially blind other
> than having the link status for the VF and virtio and knowing that the
> virtio is intended to be the backup.

Would you be interested in posting at least a proof of concept
patch for this approach? It's OK if there are some TODO stubs.
It would be much easier to compare code to code rather than
a high level description to code.

> We might be able to get to a 2 or maybe even a 1 netdev solution at
> some point in the future, but  I don't think that time is now. For now
> a virtio-bond type solution would allow us to address most of the use
> cases with minimal modification to the existing virtio and can deal
> with feature and/or resource asymmetry.
> 
> - Alex

---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Alexander Duyck <alexander.duyck@gmail.com>
Cc: Stephen Hemminger <stephen@networkplumber.org>,
	Jakub Kicinski <kubakici@wp.pl>,
	"Samudrala, Sridhar" <sridhar.samudrala@intel.com>,
	Siwei Liu <loseweigh@gmail.com>,
	David Miller <davem@davemloft.net>,
	Netdev <netdev@vger.kernel.org>,
	virtualization@lists.linux-foundation.org,
	virtio-dev@lists.oasis-open.org, "Brandeburg,
	Jesse" <jesse.brandeburg@intel.com>,
	Alexander Duyck <alexander.h.duyck@intel.com>
Subject: Re: Re: [RFC PATCH net-next v2 2/2] virtio_net: Extend virtio to use VF datapath when available
Date: Mon, 29 Jan 2018 20:24:43 +0200	[thread overview]
Message-ID: <20180129202113-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <CAKgT0UfEHc6T4MbAwFjx4c2TK1hL-_eGDpSiBEY_ryN_4UaPoQ@mail.gmail.com>

On Sun, Jan 28, 2018 at 08:26:53PM -0800, Alexander Duyck wrote:
> >> > For live migration with advanced usecases that Siwei is suggesting, i
> >> > think we need a new driver with a new device type that can track the
> >> > VF specific feature settings even when the VF driver is unloaded.
> >
> > I see no added value of the 3 netdev model, there is no need for a bond
> > device.
> 
> I agree a full-blown bond isn't what is needed. However, just forking
> traffic out from virtio to a VF doesn't really solve things either.
> 
> One of the issues as I see it is the fact that the qdisc model with
> the merged device gets to be pretty ugly. There is the fact that every
> packet that goes to the VF has to pass through the qdisc code twice.
> There is the dual nature of the 2 netdev solution that also introduces
> the potential for head-of-line blocking since the virtio could put
> back pressure on the upper qdisc layer which could stall the VF
> traffic when switching over. I hope we could avoid issues like that by
> maintaining qdiscs per device queue instead of on an upper device that
> is half software interface and half not. Ideally the virtio-bond
> device could operate without a qdisc and without needing any
> additional locks so there shouldn't be head of line blocking occurring
> between the two interfaces and overhead could be kept minimal.
> 
> Also in the case of virtio there is support for in-driver XDP. As
> Sridhar stated, when using the 2 netdev model "we cannot support XDP
> in this model and it needs to be disabled". That sounds like a step
> backwards instead of forwards. I would much rather leave the XDP
> enabled at the lower dev level, and then if we want we can use the
> generic XDP at the virtio-bond level to capture traffic on both
> interfaces at the same time.

I agree dropping XDP makes everything very iffy.

> In the case of netvsc you have control of both sides of a given link
> so you can match up the RSS tables, queue configuration and everything
> is somewhat symmetric since you are running the PF and all the HyperV
> subchannels. Most of the complexity is pushed down into the host and
> your subchannel management is synchronized there if I am not mistaken.
> We don't have this in the case of this virtio-bond setup. Instead a
> single bit is set indicating "backup" without indicating what that
> means to topology other than the fact that this virtio interface is
> the backup for some other interface. We are essentially blind other
> than having the link status for the VF and virtio and knowing that the
> virtio is intended to be the backup.

Would you be interested in posting at least a proof of concept
patch for this approach? It's OK if there are some TODO stubs.
It would be much easier to compare code to code rather than
a high level description to code.

> We might be able to get to a 2 or maybe even a 1 netdev solution at
> some point in the future, but  I don't think that time is now. For now
> a virtio-bond type solution would allow us to address most of the use
> cases with minimal modification to the existing virtio and can deal
> with feature and/or resource asymmetry.
> 
> - Alex

  reply	other threads:[~2018-01-29 18:24 UTC|newest]

Thread overview: 136+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-12  5:58 [virtio-dev] [RFC PATCH net-next v2 0/2] Enable virtio to act as a backup for a passthru device Sridhar Samudrala
2018-01-12  5:58 ` Sridhar Samudrala
2018-01-12  5:58 ` [virtio-dev] [RFC PATCH net-next v2 1/2] virtio_net: Introduce VIRTIO_NET_F_BACKUP feature bit Sridhar Samudrala
2018-01-12  5:58   ` Sridhar Samudrala
2018-01-17 18:15   ` [virtio-dev] " Alexander Duyck
2018-01-17 18:15     ` Alexander Duyck
2018-01-17 19:02     ` [virtio-dev] " Michael S. Tsirkin
2018-01-17 19:02     ` Michael S. Tsirkin
2018-01-17 19:02       ` Michael S. Tsirkin
2018-01-17 19:25       ` Samudrala, Sridhar
2018-01-17 19:25         ` Samudrala, Sridhar
2018-01-17 19:57         ` [virtio-dev] " Michael S. Tsirkin
2018-01-17 19:57         ` Michael S. Tsirkin
2018-01-17 19:57           ` Michael S. Tsirkin
2018-01-17 21:49           ` Alexander Duyck
2018-01-17 21:49             ` Alexander Duyck
2018-01-22 21:31             ` [virtio-dev] " Michael S. Tsirkin
2018-01-22 21:31               ` Michael S. Tsirkin
2018-01-22 23:27               ` Samudrala, Sridhar
2018-01-22 23:27                 ` Samudrala, Sridhar
2018-01-23  0:02                 ` Stephen Hemminger
2018-01-23  0:02                 ` Stephen Hemminger
2018-01-23  1:37                   ` Samudrala, Sridhar
2018-01-23  1:37                     ` Samudrala, Sridhar
2018-01-23  1:37                   ` Samudrala, Sridhar
2018-01-23  0:05                 ` Michael S. Tsirkin
2018-01-23  0:05                   ` Michael S. Tsirkin
2018-01-23  0:16                   ` Jakub Kicinski
2018-01-23  0:47                     ` Michael S. Tsirkin
2018-01-23  0:47                     ` Michael S. Tsirkin
2018-01-23  0:47                       ` Michael S. Tsirkin
2018-01-23  1:13                       ` Jakub Kicinski
2018-01-23  1:13                       ` Jakub Kicinski
2018-01-23  1:23                         ` Michael S. Tsirkin
2018-01-23  1:23                         ` Michael S. Tsirkin
2018-01-23  1:23                           ` Michael S. Tsirkin
2018-01-23 19:21                           ` Jakub Kicinski
2018-01-23 19:21                           ` Jakub Kicinski
2018-01-23  1:34                   ` Samudrala, Sridhar
2018-01-23  1:34                   ` Samudrala, Sridhar
2018-01-23  1:34                     ` Samudrala, Sridhar
2018-01-23  2:04                     ` Michael S. Tsirkin
2018-01-23  2:04                       ` Michael S. Tsirkin
2018-01-23  3:36                       ` [virtio-dev] " Alexander Duyck
2018-01-23  3:36                         ` Alexander Duyck
2018-01-23  5:54                         ` Samudrala, Sridhar
2018-01-23  5:54                           ` Samudrala, Sridhar
2018-01-23 23:01                         ` Michael S. Tsirkin
2018-01-23 23:01                         ` Michael S. Tsirkin
2018-01-23 23:01                           ` Michael S. Tsirkin
2018-01-23  2:04                     ` Michael S. Tsirkin
2018-01-22 23:27               ` Samudrala, Sridhar
2018-01-22 21:31             ` Michael S. Tsirkin
2018-01-17 21:49           ` Alexander Duyck
2018-01-17 19:25       ` Samudrala, Sridhar
2018-01-17 18:15   ` Alexander Duyck
2018-01-12  5:58 ` Sridhar Samudrala
2018-01-12  5:58 ` [RFC PATCH net-next v2 2/2] virtio_net: Extend virtio to use VF datapath when available Sridhar Samudrala
2018-01-12  5:58 ` [virtio-dev] " Sridhar Samudrala
2018-01-12  5:58   ` Sridhar Samudrala
2018-01-22 20:27   ` [virtio-dev] " Siwei Liu
2018-01-22 20:27     ` Siwei Liu
2018-01-22 21:05     ` Samudrala, Sridhar
2018-01-22 21:05     ` [virtio-dev] " Samudrala, Sridhar
2018-01-22 21:05       ` Samudrala, Sridhar
2018-01-23 19:53       ` Laine Stump
2018-01-22 21:41     ` [virtio-dev] " Michael S. Tsirkin
2018-01-22 21:41       ` Michael S. Tsirkin
2018-01-23 20:24       ` [virtio-dev] " Siwei Liu
2018-01-23 20:24         ` Siwei Liu
2018-01-23 22:58         ` [virtio-dev] " Michael S. Tsirkin
2018-01-23 22:58           ` Michael S. Tsirkin
2018-01-26  8:14           ` Siwei Liu
2018-01-26  8:14           ` [virtio-dev] " Siwei Liu
2018-01-26  8:14             ` Siwei Liu
2018-01-26 16:51             ` [virtio-dev] " Samudrala, Sridhar
2018-01-26 16:51             ` Samudrala, Sridhar
2018-01-26 16:51               ` Samudrala, Sridhar
2018-01-26 21:46               ` [virtio-dev] " Siwei Liu
2018-01-26 21:46                 ` Siwei Liu
2018-01-26 22:14                 ` [virtio-dev] " Michael S. Tsirkin
2018-01-26 22:14                 ` Michael S. Tsirkin
2018-01-26 22:14                   ` Michael S. Tsirkin
2018-01-26 22:47                   ` Jakub Kicinski
2018-01-26 23:30                     ` Samudrala, Sridhar
2018-01-26 23:30                       ` Samudrala, Sridhar
2018-01-27  2:30                       ` Jakub Kicinski
2018-01-27  5:33                         ` Samudrala, Sridhar
2018-01-27  5:33                           ` Samudrala, Sridhar
2018-01-27  5:58                           ` Jakub Kicinski
2018-01-28 17:35                             ` Alexander Duyck
2018-01-28 17:35                             ` Alexander Duyck
2018-01-28 17:35                               ` Alexander Duyck
2018-01-28 19:18                               ` [virtio-dev] " Samudrala, Sridhar
2018-01-28 19:18                                 ` Samudrala, Sridhar
2018-01-28 20:18                                 ` Alexander Duyck
2018-01-28 20:18                                   ` Alexander Duyck
2018-01-28 21:01                                   ` [virtio-dev] " Samudrala, Sridhar
2018-01-28 21:01                                   ` Samudrala, Sridhar
2018-01-28 21:01                                     ` Samudrala, Sridhar
2018-01-29  0:58                                     ` Alexander Duyck
2018-01-29  0:58                                       ` Alexander Duyck
2018-01-28 20:18                                 ` Alexander Duyck
2018-01-28 19:18                               ` Samudrala, Sridhar
2018-01-28 23:02                         ` Stephen Hemminger
2018-01-29  4:26                           ` Alexander Duyck
2018-01-29  4:26                           ` Alexander Duyck
2018-01-29  4:26                             ` Alexander Duyck
2018-01-29 18:24                             ` Michael S. Tsirkin [this message]
2018-01-29 18:24                               ` Michael S. Tsirkin
2018-01-29 20:09                               ` [virtio-dev] " Alexander Duyck
2018-01-29 20:09                               ` Alexander Duyck
2018-01-29 20:09                                 ` Alexander Duyck
2018-01-29 18:24                             ` [virtio-dev] " Michael S. Tsirkin
2018-01-28 23:02                         ` Stephen Hemminger
2018-01-26 22:47                   ` Jakub Kicinski
2018-01-26 21:46               ` Siwei Liu
2018-01-23 22:58         ` Michael S. Tsirkin
2018-01-23 20:24       ` Siwei Liu
2018-01-22 21:41     ` Michael S. Tsirkin
2018-01-22 20:27   ` Siwei Liu
2018-01-23 10:33   ` [virtio-dev] " Jason Wang
2018-01-23 10:33     ` Jason Wang
2018-01-23 16:03     ` Samudrala, Sridhar
2018-01-23 16:03     ` [virtio-dev] " Samudrala, Sridhar
2018-01-23 16:03       ` Samudrala, Sridhar
2018-01-29  3:32       ` [virtio-dev] " Jason Wang
2018-01-29  3:32         ` Jason Wang
2018-01-29  3:32       ` Jason Wang
2018-01-26 16:58   ` [virtio-dev] " Michael S. Tsirkin
2018-01-26 16:58     ` Michael S. Tsirkin
2018-01-26 18:15     ` [virtio-dev] " Samudrala, Sridhar
2018-01-26 18:15       ` Samudrala, Sridhar
2018-01-12  5:58 ` [RFC PATCH 1/1] qemu: Introduce VIRTIO_NET_F_BACKUP feature bit to virtio_net Sridhar Samudrala
2018-01-12  5:58 ` [virtio-dev] " Sridhar Samudrala
2018-01-12  5:58   ` Sridhar Samudrala

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=20180129202113-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=alexander.duyck@gmail.com \
    --cc=alexander.h.duyck@intel.com \
    --cc=davem@davemloft.net \
    --cc=jesse.brandeburg@intel.com \
    --cc=kubakici@wp.pl \
    --cc=loseweigh@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=sridhar.samudrala@intel.com \
    --cc=stephen@networkplumber.org \
    --cc=virtio-dev@lists.oasis-open.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: 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.