search for: virtnet_bypass_info

Displaying 20 results from an estimated 27 matches for "virtnet_bypass_info".

2018 Feb 16
8
[RFC PATCH v3 0/3] Enable virtio_net to act as a backup for a passthru device
...h 3 refactors much of the changes made in patch 2, which was done on purpose just to show the solution we recommend as part of one patch set. If we submit a final version of this, we would combine patch 2/3 together. This patch removes the creation of an additional netdev, Instead, it uses a new virtnet_bypass_info struct added to the original 'backup' netdev to track the 'bypass' information and introduces an additional set of ndo and ethtool ops that are used when BACKUP feature is enabled. One difference with the 3 netdev model compared to the 2 netdev model is that the 'bypass' n...
2018 Feb 16
8
[RFC PATCH v3 0/3] Enable virtio_net to act as a backup for a passthru device
...h 3 refactors much of the changes made in patch 2, which was done on purpose just to show the solution we recommend as part of one patch set. If we submit a final version of this, we would combine patch 2/3 together. This patch removes the creation of an additional netdev, Instead, it uses a new virtnet_bypass_info struct added to the original 'backup' netdev to track the 'bypass' information and introduces an additional set of ndo and ethtool ops that are used when BACKUP feature is enabled. One difference with the 3 netdev model compared to the 2 netdev model is that the 'bypass' n...
2018 Apr 06
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...tate of the >+ * 2 lower netdevs. The original virtio_net netdev is registered as >+ * 'backup' netdev and a passthru device with the same MAC is registered >+ * as 'active' netdev. >+ */ >+ >+/* bypass state maintained when BACKUP feature is enabled */ >+struct virtnet_bypass_info { >+ /* passthru netdev with same MAC */ >+ struct net_device __rcu *active_netdev; >+ >+ /* virtio_net netdev */ >+ struct net_device __rcu *backup_netdev; >+ >+ /* active netdev stats */ >+ struct rtnl_link_stats64 active_stats; >+ >+ /* backup netdev stats */ >+...
2018 Apr 06
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...tate of the >+ * 2 lower netdevs. The original virtio_net netdev is registered as >+ * 'backup' netdev and a passthru device with the same MAC is registered >+ * as 'active' netdev. >+ */ >+ >+/* bypass state maintained when BACKUP feature is enabled */ >+struct virtnet_bypass_info { >+ /* passthru netdev with same MAC */ >+ struct net_device __rcu *active_netdev; >+ >+ /* virtio_net netdev */ >+ struct net_device __rcu *backup_netdev; >+ >+ /* active netdev stats */ >+ struct rtnl_link_stats64 active_stats; >+ >+ /* backup netdev stats */ >+...
2018 Apr 05
0
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...ster device and tracks the state of the + * 2 lower netdevs. The original virtio_net netdev is registered as + * 'backup' netdev and a passthru device with the same MAC is registered + * as 'active' netdev. + */ + +/* bypass state maintained when BACKUP feature is enabled */ +struct virtnet_bypass_info { + /* passthru netdev with same MAC */ + struct net_device __rcu *active_netdev; + + /* virtio_net netdev */ + struct net_device __rcu *backup_netdev; + + /* active netdev stats */ + struct rtnl_link_stats64 active_stats; + + /* backup netdev stats */ + struct rtnl_link_stats64 backup_stats; + + /...
2018 Feb 16
0
[RFC PATCH v3 2/3] virtio_net: Extend virtio to use VF datapath when available
...linux/average.h> #include <linux/filter.h> +#include <linux/netdevice.h> #include <net/route.h> #include <net/xdp.h> @@ -147,6 +148,27 @@ struct receive_queue { struct xdp_rxq_info xdp_rxq; }; +/* bypass state maintained when BACKUP feature is enabled */ +struct virtnet_bypass_info { + /* passthru netdev with same MAC */ + struct net_device __rcu *active_netdev; + + /* virtio_net netdev */ + struct net_device __rcu *backup_netdev; + + /* active netdev stats */ + struct rtnl_link_stats64 active_stats; + + /* backup netdev stats */ + struct rtnl_link_stats64 backup_stats; + + /...
2018 Apr 06
0
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
On 4/6/2018 5:48 AM, Jiri Pirko wrote: > Thu, Apr 05, 2018 at 11:08:22PM CEST, sridhar.samudrala at intel.com wrote: <snip> > >> + >> +static void virtnet_bypass_set_rx_mode(struct net_device *dev) >> +{ >> + struct virtnet_bypass_info *vbi = netdev_priv(dev); >> + struct net_device *child_netdev; >> + >> + rcu_read_lock(); >> + >> + child_netdev = rcu_dereference(vbi->active_netdev); >> + if (child_netdev) { >> + dev_uc_sync_multiple(child_netdev, dev); >> + dev_mc_sync_multip...
2018 Feb 17
1
[RFC PATCH v3 2/3] virtio_net: Extend virtio to use VF datapath when available
...2 > > Signed-off-by: Sridhar Samudrala <sridhar.samudrala at intel.com> > Signed-off-by: Alexander Duyck <alexander.h.duyck at intel.com> > +static void > +virtnet_bypass_get_stats(struct net_device *dev, > + struct rtnl_link_stats64 *stats) > +{ > + struct virtnet_bypass_info *vbi = netdev_priv(dev); > + const struct rtnl_link_stats64 *new; > + struct rtnl_link_stats64 temp; > + struct net_device *child_netdev; > + > + spin_lock(&vbi->stats_lock); > + memcpy(stats, &vbi->bypass_stats, sizeof(*stats)); > + > + rcu_read_lock(); > +...
2018 Apr 05
6
[RFC PATCH net-next v5 0/4] Enable virtio_net to act as a backup for a passthru device
The main motivation for this patch is to enable cloud service providers to provide an accelerated datapath to virtio-net enabled VMs in a transparent manner with no/minimal guest userspace changes. This also enables hypervisor controlled live migration to be supported with VMs that have direct attached SR-IOV VF devices. Patch 1 introduces a new feature bit VIRTIO_NET_F_BACKUP that can be used
2018 Apr 09
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...8 AM, Jiri Pirko wrote: >> Thu, Apr 05, 2018 at 11:08:22PM CEST, sridhar.samudrala at intel.com wrote: [...] >> > +static int virtnet_bypass_join_child(struct net_device *bypass_netdev, >> > + struct net_device *child_netdev) >> > +{ >> > + struct virtnet_bypass_info *vbi; >> > + bool backup; >> > + >> > + vbi = netdev_priv(bypass_netdev); >> > + backup = (child_netdev->dev.parent == bypass_netdev->dev.parent); >> > + if (backup ? rtnl_dereference(vbi->backup_netdev) : >> > + rtnl_dereference(vbi-...
2018 Apr 09
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...8 AM, Jiri Pirko wrote: >> Thu, Apr 05, 2018 at 11:08:22PM CEST, sridhar.samudrala at intel.com wrote: [...] >> > +static int virtnet_bypass_join_child(struct net_device *bypass_netdev, >> > + struct net_device *child_netdev) >> > +{ >> > + struct virtnet_bypass_info *vbi; >> > + bool backup; >> > + >> > + vbi = netdev_priv(bypass_netdev); >> > + backup = (child_netdev->dev.parent == bypass_netdev->dev.parent); >> > + if (backup ? rtnl_dereference(vbi->backup_netdev) : >> > + rtnl_dereference(vbi-...
2018 Apr 10
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...08:22PM CEST, sridhar.samudrala at intel.com wrote: >> [...] >> >> > > > +static int virtnet_bypass_join_child(struct net_device *bypass_netdev, >> > > > + struct net_device *child_netdev) >> > > > +{ >> > > > + struct virtnet_bypass_info *vbi; >> > > > + bool backup; >> > > > + >> > > > + vbi = netdev_priv(bypass_netdev); >> > > > + backup = (child_netdev->dev.parent == bypass_netdev->dev.parent); >> > > > + if (backup ? rtnl_dereference(vbi->backup...
2018 Apr 10
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...08:22PM CEST, sridhar.samudrala at intel.com wrote: >> [...] >> >> > > > +static int virtnet_bypass_join_child(struct net_device *bypass_netdev, >> > > > + struct net_device *child_netdev) >> > > > +{ >> > > > + struct virtnet_bypass_info *vbi; >> > > > + bool backup; >> > > > + >> > > > + vbi = netdev_priv(bypass_netdev); >> > > > + backup = (child_netdev->dev.parent == bypass_netdev->dev.parent); >> > > > + if (backup ? rtnl_dereference(vbi->backup...
2018 Apr 10
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...> > [...] >> > > >> > > > > > +static int virtnet_bypass_join_child(struct net_device *bypass_netdev, >> > > > > > + struct net_device *child_netdev) >> > > > > > +{ >> > > > > > + struct virtnet_bypass_info *vbi; >> > > > > > + bool backup; >> > > > > > + >> > > > > > + vbi = netdev_priv(bypass_netdev); >> > > > > > + backup = (child_netdev->dev.parent == bypass_netdev->dev.parent); >> > > > > &...
2018 Apr 10
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...> > [...] >> > > >> > > > > > +static int virtnet_bypass_join_child(struct net_device *bypass_netdev, >> > > > > > + struct net_device *child_netdev) >> > > > > > +{ >> > > > > > + struct virtnet_bypass_info *vbi; >> > > > > > + bool backup; >> > > > > > + >> > > > > > + vbi = netdev_priv(bypass_netdev); >> > > > > > + backup = (child_netdev->dev.parent == bypass_netdev->dev.parent); >> > > > > &...
2018 Apr 10
3
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...;> > > > > > > > +static int virtnet_bypass_join_child(struct net_device *bypass_netdev, >> > > > > > > > + struct net_device *child_netdev) >> > > > > > > > +{ >> > > > > > > > + struct virtnet_bypass_info *vbi; >> > > > > > > > + bool backup; >> > > > > > > > + >> > > > > > > > + vbi = netdev_priv(bypass_netdev); >> > > > > > > > + backup = (child_netdev->dev.parent == bypass_netdev->dev...
2018 Apr 10
3
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...;> > > > > > > > +static int virtnet_bypass_join_child(struct net_device *bypass_netdev, >> > > > > > > > + struct net_device *child_netdev) >> > > > > > > > +{ >> > > > > > > > + struct virtnet_bypass_info *vbi; >> > > > > > > > + bool backup; >> > > > > > > > + >> > > > > > > > + vbi = netdev_priv(bypass_netdev); >> > > > > > > > + backup = (child_netdev->dev.parent == bypass_netdev->dev...
2018 Apr 11
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...> > +static int virtnet_bypass_join_child(struct net_device *bypass_netdev, >> > > > > > > > > > + struct net_device *child_netdev) >> > > > > > > > > > +{ >> > > > > > > > > > + struct virtnet_bypass_info *vbi; >> > > > > > > > > > + bool backup; >> > > > > > > > > > + >> > > > > > > > > > + vbi = netdev_priv(bypass_netdev); >> > > > > > > > > > + backup = (child_netdev...
2018 Apr 11
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...> > +static int virtnet_bypass_join_child(struct net_device *bypass_netdev, >> > > > > > > > > > + struct net_device *child_netdev) >> > > > > > > > > > +{ >> > > > > > > > > > + struct virtnet_bypass_info *vbi; >> > > > > > > > > > + bool backup; >> > > > > > > > > > + >> > > > > > > > > > + vbi = netdev_priv(bypass_netdev); >> > > > > > > > > > + backup = (child_netdev...
2018 Apr 11
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
..._bypass_join_child(struct net_device *bypass_netdev, >> > > > > > > > > > > > + struct net_device *child_netdev) >> > > > > > > > > > > > +{ >> > > > > > > > > > > > + struct virtnet_bypass_info *vbi; >> > > > > > > > > > > > + bool backup; >> > > > > > > > > > > > + >> > > > > > > > > > > > + vbi = netdev_priv(bypass_netdev); >> > > > > > > > >...