From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jakub Kicinski <kubakici@wp.pl>
Cc: "Samudrala, Sridhar" <sridhar.samudrala@intel.com>,
Alexander Duyck <alexander.duyck@gmail.com>,
Stephen Hemminger <stephen@networkplumber.org>,
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>,
"Duyck, Alexander H" <alexander.h.duyck@intel.com>,
achiad shochat <achiad.mellanox@gmail.com>,
Achiad Shochat <achiad@mellanox.com>
Subject: Re: [virtio-dev] [RFC PATCH net-next v2 1/2] virtio_net: Introduce VIRTIO_NET_F_BACKUP feature bit
Date: Tue, 23 Jan 2018 03:23:57 +0200 [thread overview]
Message-ID: <20180123031348-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20180122171301.3463156b@cakuba.netronome.com>
On Mon, Jan 22, 2018 at 05:13:01PM -0800, Jakub Kicinski wrote:
> On Tue, 23 Jan 2018 02:47:57 +0200, Michael S. Tsirkin wrote:
> > On Mon, Jan 22, 2018 at 04:16:23PM -0800, Jakub Kicinski wrote:
> > > On Tue, 23 Jan 2018 02:05:48 +0200, Michael S. Tsirkin wrote:
> > > > > As we are using virtio_net to control and manage the VF data path, it is not
> > > > > clear to me
> > > > > what is the advantage of creating a new device rather than extending
> > > > > virtio_net to manage
> > > > > the VF datapath via transparent bond mechanism.
> > > >
> > > > So that XDP redirect actions can differentiate between virtio, PT
> > > > device and the bond. Without it there's no way to redirect
> > > > to virtio specifically.
> > >
> > > Let's make a list :P
> > >
> > > separate netdev:
> > > 1. virtio device being a bond master is confusing/unexpected.
> > > 2. virtio device being both a master and a slave is confusing.
> >
> > vlans are like this too, aren't they?
>
> Perhaps a bad wording. Both master and member would be better.
>
> > > 3. configuration of a master may have different semantics than
> > > configuration of a slave.
> > > 4. two para-virt devices may create a loop (or rather will be bound
> > > to each other indeterministically, depending on which spawns first).
> >
> > For 2 virtio devices, we can disable the bond to make it deterministic.
>
> Do you mean the hypervisor can or is there a knob in virtio_net to mask
> off features?
Hypervisor can do it too. And it really should:
specifying 2 devices as backup and giving them same mac
seems like a misconfiguration.
But it's easy to do in virtio without knobs - check
that the potential slave is also a virtio device with the
backup flag, and don't make it a slave.
> Would that require re-probe of the virtio device?
Probably not.
> > > 5. there is no user configuration AFAIR in existing patch, VM admin
> > > won't be able to prevent the bond. Separate netdev we can make
> > > removable even if it's spawned automatically.
> >
> > That's more or less a feature. If you want configurability, just use
> > any of the existing generic solutions (team,bond,bridge,...).
>
> The use case in mind is that VM admin wants to troubleshoot a problem
> and temporarily disable the auto-bond without touching the hypervisor
> (and either member preferably).
I don't think it's possible to support this unconditionally.
E.g. think of a config where these actually share
a backend, with virtio becoming active when PT
access to the backend is disabled.
So you will need some device specific extension for that.
> > > 6. XDP redirect use-case (or any explicit use of the virtio slave)
> > > (from MST)
> > >
> > > independent driver:
> > > 7. code reuse.
> >
> > With netvsc? That precludes a separate device though because of
> > compatibility.
>
> Hopefully with one of the established bonding drivers (fingers
> crossed).
There is very little similarity. Calling this device a bond
just confuses people.
> We may see proliferation of special bonds (see Achiad's
> presentation from last netdev about NIC-NUMA-node-bonds).
I'll take a look, but this isn't like a bond at all, no more than a vlan
is a bond. E.g. if PT link goes down then link is down period and you
do not want to switch to virtio.
> > > separate device:
> >
> > I'm not sure I understand how "separate device" is different from
> > "separate netdev". Do you advocate for a special device who's job is
> > just to tell the guest "bind these two devices together"?
> >
> > Yea, sure, that works. However for sure it's more work to
> > implement and manage at all levels. Further
> >
> > - it doesn't answer the question
> > - a feature bit in a virtio device is cheap enough that
> > I wouldn't worry too much about this feature
> > going unused later.
>
> Right, I think we are referring to different things as device. I mean
> a bus device/struct device, but no strong preference on that one. I'll
> be happy as long as there is a separate netdev, really :)
>
> > > 8. bond any netdev with any netdev.
> > > 9. reuse well-known device driver model.
> > > a. natural anchor for hypervisor configuration (switchdev etc.)
> >
> > saparate netdev has the same property
> >
> > > b. next-gen silicon may be able to disguise as virtio device, and the
> > > loop check in virtio driver will prevent the legitimate bond it such
> > > case. AFAIU that's one of the goals of next-gen virtio spec as well.
> >
> > In fact we have a virtio feature bit for the fallback.
> > So this part does not depend on how software in guest works
> > and does not need software solutions.
>
> You mean in the new spec? Nice. Still I think people will try to
> implement the old one too given sufficiently capable HW.
Existing HW won't have the BACKUP feature so the new functionality
won't be activated. So no problem I think.
--
MST
---------------------------------------------------------------------
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: Jakub Kicinski <kubakici@wp.pl>
Cc: "Samudrala, Sridhar" <sridhar.samudrala@intel.com>,
Alexander Duyck <alexander.duyck@gmail.com>,
Stephen Hemminger <stephen@networkplumber.org>,
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>,
"Duyck, Alexander H" <alexander.h.duyck@intel.com>,
achiad shochat <achiad.mellanox@gmail.com>,
Achiad Shochat <achiad@mellanox.com>
Subject: Re: [virtio-dev] [RFC PATCH net-next v2 1/2] virtio_net: Introduce VIRTIO_NET_F_BACKUP feature bit
Date: Tue, 23 Jan 2018 03:23:57 +0200 [thread overview]
Message-ID: <20180123031348-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20180122171301.3463156b@cakuba.netronome.com>
On Mon, Jan 22, 2018 at 05:13:01PM -0800, Jakub Kicinski wrote:
> On Tue, 23 Jan 2018 02:47:57 +0200, Michael S. Tsirkin wrote:
> > On Mon, Jan 22, 2018 at 04:16:23PM -0800, Jakub Kicinski wrote:
> > > On Tue, 23 Jan 2018 02:05:48 +0200, Michael S. Tsirkin wrote:
> > > > > As we are using virtio_net to control and manage the VF data path, it is not
> > > > > clear to me
> > > > > what is the advantage of creating a new device rather than extending
> > > > > virtio_net to manage
> > > > > the VF datapath via transparent bond mechanism.
> > > >
> > > > So that XDP redirect actions can differentiate between virtio, PT
> > > > device and the bond. Without it there's no way to redirect
> > > > to virtio specifically.
> > >
> > > Let's make a list :P
> > >
> > > separate netdev:
> > > 1. virtio device being a bond master is confusing/unexpected.
> > > 2. virtio device being both a master and a slave is confusing.
> >
> > vlans are like this too, aren't they?
>
> Perhaps a bad wording. Both master and member would be better.
>
> > > 3. configuration of a master may have different semantics than
> > > configuration of a slave.
> > > 4. two para-virt devices may create a loop (or rather will be bound
> > > to each other indeterministically, depending on which spawns first).
> >
> > For 2 virtio devices, we can disable the bond to make it deterministic.
>
> Do you mean the hypervisor can or is there a knob in virtio_net to mask
> off features?
Hypervisor can do it too. And it really should:
specifying 2 devices as backup and giving them same mac
seems like a misconfiguration.
But it's easy to do in virtio without knobs - check
that the potential slave is also a virtio device with the
backup flag, and don't make it a slave.
> Would that require re-probe of the virtio device?
Probably not.
> > > 5. there is no user configuration AFAIR in existing patch, VM admin
> > > won't be able to prevent the bond. Separate netdev we can make
> > > removable even if it's spawned automatically.
> >
> > That's more or less a feature. If you want configurability, just use
> > any of the existing generic solutions (team,bond,bridge,...).
>
> The use case in mind is that VM admin wants to troubleshoot a problem
> and temporarily disable the auto-bond without touching the hypervisor
> (and either member preferably).
I don't think it's possible to support this unconditionally.
E.g. think of a config where these actually share
a backend, with virtio becoming active when PT
access to the backend is disabled.
So you will need some device specific extension for that.
> > > 6. XDP redirect use-case (or any explicit use of the virtio slave)
> > > (from MST)
> > >
> > > independent driver:
> > > 7. code reuse.
> >
> > With netvsc? That precludes a separate device though because of
> > compatibility.
>
> Hopefully with one of the established bonding drivers (fingers
> crossed).
There is very little similarity. Calling this device a bond
just confuses people.
> We may see proliferation of special bonds (see Achiad's
> presentation from last netdev about NIC-NUMA-node-bonds).
I'll take a look, but this isn't like a bond at all, no more than a vlan
is a bond. E.g. if PT link goes down then link is down period and you
do not want to switch to virtio.
> > > separate device:
> >
> > I'm not sure I understand how "separate device" is different from
> > "separate netdev". Do you advocate for a special device who's job is
> > just to tell the guest "bind these two devices together"?
> >
> > Yea, sure, that works. However for sure it's more work to
> > implement and manage at all levels. Further
> >
> > - it doesn't answer the question
> > - a feature bit in a virtio device is cheap enough that
> > I wouldn't worry too much about this feature
> > going unused later.
>
> Right, I think we are referring to different things as device. I mean
> a bus device/struct device, but no strong preference on that one. I'll
> be happy as long as there is a separate netdev, really :)
>
> > > 8. bond any netdev with any netdev.
> > > 9. reuse well-known device driver model.
> > > a. natural anchor for hypervisor configuration (switchdev etc.)
> >
> > saparate netdev has the same property
> >
> > > b. next-gen silicon may be able to disguise as virtio device, and the
> > > loop check in virtio driver will prevent the legitimate bond it such
> > > case. AFAIU that's one of the goals of next-gen virtio spec as well.
> >
> > In fact we have a virtio feature bit for the fallback.
> > So this part does not depend on how software in guest works
> > and does not need software solutions.
>
> You mean in the new spec? Nice. Still I think people will try to
> implement the old one too given sufficiently capable HW.
Existing HW won't have the BACKUP feature so the new functionality
won't be activated. So no problem I think.
--
MST
next prev parent reply other threads:[~2018-01-23 1: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 ` [RFC PATCH net-next v2 1/2] virtio_net: Introduce VIRTIO_NET_F_BACKUP feature bit Sridhar Samudrala
2018-01-12 5:58 ` [virtio-dev] " 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: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-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 21:31 ` Michael S. Tsirkin
2018-01-22 23:27 ` Samudrala, Sridhar
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 [this message]
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 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-23 1:34 ` Samudrala, Sridhar
2018-01-17 18:15 ` Alexander Duyck
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 ` Siwei Liu
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 ` Siwei Liu
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 ` [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 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:47 ` Jakub Kicinski
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 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 20:18 ` Alexander Duyck
2018-01-28 21:01 ` [virtio-dev] " 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 21:01 ` Samudrala, Sridhar
2018-01-28 19:18 ` Samudrala, Sridhar
2018-01-28 17:35 ` Alexander Duyck
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 ` [virtio-dev] " Michael S. Tsirkin
2018-01-29 18:24 ` Michael S. Tsirkin
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 ` [virtio-dev] " Alexander Duyck
2018-01-28 23:02 ` Stephen Hemminger
2018-01-26 22:14 ` Michael S. Tsirkin
2018-01-26 8:14 ` Siwei Liu
2018-01-23 22:58 ` Michael S. Tsirkin
2018-01-22 21:41 ` Michael S. Tsirkin
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 ` [virtio-dev] [RFC PATCH 1/1] qemu: Introduce VIRTIO_NET_F_BACKUP feature bit to virtio_net Sridhar Samudrala
2018-01-12 5:58 ` 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=20180123031348-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=achiad.mellanox@gmail.com \
--cc=achiad@mellanox.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=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.