search for: stats_lock

Displaying 20 results from an estimated 36 matches for "stats_lock".

2018 Feb 17
1
[RFC PATCH v3 2/3] virtio_net: Extend virtio to use VF datapath when available
..._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(); > + > + child_netdev = rcu_dereference(vbi->active_netdev); > + if (child_netdev) { > + new = dev_get_stats(child_netdev, &temp); > + virtnet_bypass_fold_stats(stats, new, &...
2018 Feb 16
0
[RFC PATCH v3 2/3] virtio_net: Extend virtio to use VF datapath when available
...uct net_device __rcu *backup_netdev; + + /* active netdev stats */ + struct rtnl_link_stats64 active_stats; + + /* backup netdev stats */ + struct rtnl_link_stats64 backup_stats; + + /* aggregated stats */ + struct rtnl_link_stats64 bypass_stats; + + /* spinlock while updating stats */ + spinlock_t stats_lock; +}; + struct virtnet_info { struct virtio_device *vdev; struct virtqueue *cvq; @@ -206,6 +228,9 @@ struct virtnet_info { u32 speed; unsigned long guest_offloads; + + /* upper netdev created when BACKUP feature enabled */ + struct net_device *bypass_netdev; }; struct padded_vnet_hdr...
2018 Apr 05
0
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...uct net_device __rcu *backup_netdev; + + /* active netdev stats */ + struct rtnl_link_stats64 active_stats; + + /* backup netdev stats */ + struct rtnl_link_stats64 backup_stats; + + /* aggregated stats */ + struct rtnl_link_stats64 bypass_stats; + + /* spinlock while updating stats */ + spinlock_t stats_lock; +}; + +static int virtnet_bypass_open(struct net_device *dev) +{ + struct virtnet_bypass_info *vbi = netdev_priv(dev); + struct net_device *active_netdev, *backup_netdev; + int err; + + netif_carrier_off(dev); + netif_tx_wake_all_queues(dev); + + active_netdev = rtnl_dereference(vbi->active_net...
2017 Jan 05
3
[PATCH net-next] net: make ndo_get_stats64 a void function
...t rtnl_link_stats64 *stats) { struct bonding *bond = netdev_priv(bond_dev); struct rtnl_link_stats64 temp; @@ -3362,8 +3362,6 @@ static struct rtnl_link_stats64 *bond_get_stats(struct net_device *bond_dev, memcpy(&bond->bond_stats, stats, sizeof(*stats)); spin_unlock(&bond->stats_lock); - - return stats; } static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd) diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c index 6421835f11b7..1f2de4e8207c 100644 --- a/drivers/net/dummy.c +++ b/drivers/net/dummy.c @@ -54,8 +54,8 @@ struct pcpu_dstats { str...
2017 Jan 05
3
[PATCH net-next] net: make ndo_get_stats64 a void function
...t rtnl_link_stats64 *stats) { struct bonding *bond = netdev_priv(bond_dev); struct rtnl_link_stats64 temp; @@ -3362,8 +3362,6 @@ static struct rtnl_link_stats64 *bond_get_stats(struct net_device *bond_dev, memcpy(&bond->bond_stats, stats, sizeof(*stats)); spin_unlock(&bond->stats_lock); - - return stats; } static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd) diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c index 6421835f11b7..1f2de4e8207c 100644 --- a/drivers/net/dummy.c +++ b/drivers/net/dummy.c @@ -54,8 +54,8 @@ struct pcpu_dstats { str...
2018 Apr 20
2
[PATCH v7 net-next 2/4] net: Introduce generic failover module
...ev stats */ > + struct rtnl_link_stats64 primary_stats; > + > + /* standby netdev stats */ > + struct rtnl_link_stats64 standby_stats; > + > + /* aggregated stats */ > + struct rtnl_link_stats64 failover_stats; > + > + /* spinlock while updating stats */ > + spinlock_t stats_lock; > +}; > + > +#if IS_ENABLED(CONFIG_NET_FAILOVER) > + > +int failover_create(struct net_device *standby_dev, > + struct failover **pfailover); > +void failover_destroy(struct failover *failover); > + > +int failover_register(struct net_device *standby_dev, struct fai...
2018 Apr 20
2
[PATCH v7 net-next 2/4] net: Introduce generic failover module
...ev stats */ > + struct rtnl_link_stats64 primary_stats; > + > + /* standby netdev stats */ > + struct rtnl_link_stats64 standby_stats; > + > + /* aggregated stats */ > + struct rtnl_link_stats64 failover_stats; > + > + /* spinlock while updating stats */ > + spinlock_t stats_lock; > +}; > + > +#if IS_ENABLED(CONFIG_NET_FAILOVER) > + > +int failover_create(struct net_device *standby_dev, > + struct failover **pfailover); > +void failover_destroy(struct failover *failover); > + > +int failover_register(struct net_device *standby_dev, struct fai...
2018 Apr 11
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
.../* active netdev stats */ >+ struct rtnl_link_stats64 active_stats; >+ >+ /* backup netdev stats */ >+ struct rtnl_link_stats64 backup_stats; >+ >+ /* aggregated stats */ >+ struct rtnl_link_stats64 bypass_stats; >+ >+ /* spinlock while updating stats */ >+ spinlock_t stats_lock; >+}; >+ >+#if IS_ENABLED(CONFIG_NET_BYPASS) >+ >+int bypass_master_create(struct net_device *backup_netdev, >+ struct bypass_master **pbypass_master); >+void bypass_master_destroy(struct bypass_master *bypass_master); >+ >+int bypass_master_register(struct net_device...
2018 Apr 11
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
.../* active netdev stats */ >+ struct rtnl_link_stats64 active_stats; >+ >+ /* backup netdev stats */ >+ struct rtnl_link_stats64 backup_stats; >+ >+ /* aggregated stats */ >+ struct rtnl_link_stats64 bypass_stats; >+ >+ /* spinlock while updating stats */ >+ spinlock_t stats_lock; >+}; >+ >+#if IS_ENABLED(CONFIG_NET_BYPASS) >+ >+int bypass_master_create(struct net_device *backup_netdev, >+ struct bypass_master **pbypass_master); >+void bypass_master_destroy(struct bypass_master *bypass_master); >+ >+int bypass_master_register(struct net_device...
2018 Apr 10
0
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...uct net_device __rcu *backup_netdev; + + /* active netdev stats */ + struct rtnl_link_stats64 active_stats; + + /* backup netdev stats */ + struct rtnl_link_stats64 backup_stats; + + /* aggregated stats */ + struct rtnl_link_stats64 bypass_stats; + + /* spinlock while updating stats */ + spinlock_t stats_lock; +}; + +#if IS_ENABLED(CONFIG_NET_BYPASS) + +int bypass_master_create(struct net_device *backup_netdev, + struct bypass_master **pbypass_master); +void bypass_master_destroy(struct bypass_master *bypass_master); + +int bypass_master_register(struct net_device *dev, struct bypass_ops *ops, +...
2018 Apr 20
0
[PATCH v7 net-next 2/4] net: Introduce generic failover module
...net_device __rcu *standby_dev; + + /* primary netdev stats */ + struct rtnl_link_stats64 primary_stats; + + /* standby netdev stats */ + struct rtnl_link_stats64 standby_stats; + + /* aggregated stats */ + struct rtnl_link_stats64 failover_stats; + + /* spinlock while updating stats */ + spinlock_t stats_lock; +}; + +#if IS_ENABLED(CONFIG_NET_FAILOVER) + +int failover_create(struct net_device *standby_dev, + struct failover **pfailover); +void failover_destroy(struct failover *failover); + +int failover_register(struct net_device *standby_dev, struct failover_ops *ops, + struct failover **pf...
2018 May 22
0
[PATCH net-next v11 3/5] net: Introduce net_failover driver
...+ +static void net_failover_get_stats(struct net_device *dev, + struct rtnl_link_stats64 *stats) +{ + struct net_failover_info *nfo_info = netdev_priv(dev); + const struct rtnl_link_stats64 *new; + struct rtnl_link_stats64 temp; + struct net_device *slave_dev; + + spin_lock(&nfo_info->stats_lock); + memcpy(stats, &nfo_info->failover_stats, sizeof(*stats)); + + rcu_read_lock(); + + slave_dev = rcu_dereference(nfo_info->primary_dev); + if (slave_dev) { + new = dev_get_stats(slave_dev, &temp); + net_failover_fold_stats(stats, new, &nfo_info->primary_stats); + memcpy(&a...
2018 Apr 20
0
[PATCH v7 net-next 2/4] net: Introduce generic failover module
...stats64 primary_stats; >> + >> + /* standby netdev stats */ >> + struct rtnl_link_stats64 standby_stats; >> + >> + /* aggregated stats */ >> + struct rtnl_link_stats64 failover_stats; >> + >> + /* spinlock while updating stats */ >> + spinlock_t stats_lock; >> +}; >> + >> +#if IS_ENABLED(CONFIG_NET_FAILOVER) >> + >> +int failover_create(struct net_device *standby_dev, >> + struct failover **pfailover); >> +void failover_destroy(struct failover *failover); >> + >> +int failover_register(struct...
2018 Apr 11
0
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...link_stats64 active_stats; >> + >> + /* backup netdev stats */ >> + struct rtnl_link_stats64 backup_stats; >> + >> + /* aggregated stats */ >> + struct rtnl_link_stats64 bypass_stats; >> + >> + /* spinlock while updating stats */ >> + spinlock_t stats_lock; >> +}; >> + >> +#if IS_ENABLED(CONFIG_NET_BYPASS) >> + >> +int bypass_master_create(struct net_device *backup_netdev, >> + struct bypass_master **pbypass_master); >> +void bypass_master_destroy(struct bypass_master *bypass_master); >> + >> +...
2018 May 07
0
[PATCH net-next v10 2/4] net: Introduce generic failover module
...net_device __rcu *standby_dev; + + /* primary netdev stats */ + struct rtnl_link_stats64 primary_stats; + + /* standby netdev stats */ + struct rtnl_link_stats64 standby_stats; + + /* aggregated stats */ + struct rtnl_link_stats64 failover_stats; + + /* spinlock while updating stats */ + spinlock_t stats_lock; +}; + +struct net_failover *net_failover_create(struct net_device *standby_dev); +void net_failover_destroy(struct net_failover *failover); +struct net_failover *net_failover_register(struct net_device *dev, + struct net_failover_ops *ops); +void net_failover_unregister(struct net_failover...
2018 Feb 16
8
[RFC PATCH v3 0/3] Enable virtio_net to act as a backup for a passthru device
Patch 1 introduces a new feature bit VIRTIO_NET_F_BACKUP that can be used by hypervisor to indicate that virtio_net interface should act as a backup for another device with the same MAC address. Ppatch 2 is in response to the community request for a 3 netdev solution. However, it creates some issues we'll get into in a moment. It extends virtio_net to use alternate datapath when available
2018 Feb 16
8
[RFC PATCH v3 0/3] Enable virtio_net to act as a backup for a passthru device
Patch 1 introduces a new feature bit VIRTIO_NET_F_BACKUP that can be used by hypervisor to indicate that virtio_net interface should act as a backup for another device with the same MAC address. Ppatch 2 is in response to the community request for a 3 netdev solution. However, it creates some issues we'll get into in a moment. It extends virtio_net to use alternate datapath when available
2018 Apr 10
6
[RFC PATCH net-next v6 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 06
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
.../* active netdev stats */ >+ struct rtnl_link_stats64 active_stats; >+ >+ /* backup netdev stats */ >+ struct rtnl_link_stats64 backup_stats; >+ >+ /* aggregated stats */ >+ struct rtnl_link_stats64 bypass_stats; >+ >+ /* spinlock while updating stats */ >+ spinlock_t stats_lock; >+}; >+ >+static int virtnet_bypass_open(struct net_device *dev) >+{ >+ struct virtnet_bypass_info *vbi = netdev_priv(dev); >+ struct net_device *active_netdev, *backup_netdev; >+ int err; >+ >+ netif_carrier_off(dev); >+ netif_tx_wake_all_queues(dev); >+ >+ act...
2018 Apr 06
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
.../* active netdev stats */ >+ struct rtnl_link_stats64 active_stats; >+ >+ /* backup netdev stats */ >+ struct rtnl_link_stats64 backup_stats; >+ >+ /* aggregated stats */ >+ struct rtnl_link_stats64 bypass_stats; >+ >+ /* spinlock while updating stats */ >+ spinlock_t stats_lock; >+}; >+ >+static int virtnet_bypass_open(struct net_device *dev) >+{ >+ struct virtnet_bypass_info *vbi = netdev_priv(dev); >+ struct net_device *active_netdev, *backup_netdev; >+ int err; >+ >+ netif_carrier_off(dev); >+ netif_tx_wake_all_queues(dev); >+ >+ act...