search for: netif_tx_disable

Displaying 20 results from an estimated 40 matches for "netif_tx_disable".

2018 Oct 12
0
[PATCH] virtio_net: enable tx after resuming from suspend
...to post patch directly. >> >>> If I am to do more >>> investigation, what areas should I look into? >> As you've figured out, you can start with why netif_tx_wake_all_queues() >> were not executed? >> >> (Btw, does the issue disappear if you move netif_tx_disable() under the >> check of netif_running() in virtnet_freeze_down()?) > The issue disappears if I move netif_tx_disable() under the check of > netif_running() in virtnet_freeze_down(). Moving netif_tx_disable() > is probably better as its logic is consistent with > netif_device_attac...
2017 Oct 13
2
[PATCH net-next] virtio_net: implement VIRTIO_CONFIG_S_NEEDS_RESET
...0ef9 ("virtio_net: XDP support for adjust_head"). That was removed in commit 4941d472bf95 ("virtio-net: do not reset during XDP set"), because no longer used. Bring it back, minus the xdp specific code. Before tearing down any state, virtnet_freeze_down quiesces the device with netif_tx_disable. virtnet_reset also ensures that no other config operations can run concurrently. On successful reset, the host can observe that the flag has been cleared. There is no need for the explicit control flag introduced in the previous RFC of this patch. Changes RFC -> v1 - drop VIRTIO_NET_CTRL_...
2017 Oct 13
2
[PATCH net-next] virtio_net: implement VIRTIO_CONFIG_S_NEEDS_RESET
...0ef9 ("virtio_net: XDP support for adjust_head"). That was removed in commit 4941d472bf95 ("virtio-net: do not reset during XDP set"), because no longer used. Bring it back, minus the xdp specific code. Before tearing down any state, virtnet_freeze_down quiesces the device with netif_tx_disable. virtnet_reset also ensures that no other config operations can run concurrently. On successful reset, the host can observe that the flag has been cleared. There is no need for the explicit control flag introduced in the previous RFC of this patch. Changes RFC -> v1 - drop VIRTIO_NET_CTRL_...
2017 Oct 15
0
[PATCH net-next] virtio_net: implement VIRTIO_CONFIG_S_NEEDS_RESET
...DP support for adjust_head"). That was removed in > commit 4941d472bf95 ("virtio-net: do not reset during XDP set"), > because no longer used. Bring it back, minus the xdp specific code. > > Before tearing down any state, virtnet_freeze_down quiesces the > device with netif_tx_disable. virtnet_reset also ensures that no > other config operations can run concurrently. > > On successful reset, the host can observe that the flag has been > cleared. There is no need for the explicit control flag introduced > in the previous RFC of this patch. > > Changes >...
2018 Oct 11
0
[PATCH] virtio_net: enable tx after resuming from suspend
...eport this as a bug first? Nope, you're very welcome to post patch directly. > If I am to do more > investigation, what areas should I look into? As you've figured out, you can start with why netif_tx_wake_all_queues() were not executed? (Btw, does the issue disappear if you move netif_tx_disable() under the check of netif_running() in virtnet_freeze_down()?) Thanks > > Best Regards > Ake Koomsin >
2018 Apr 05
0
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...active_netdev); + if (err) + goto err_active_open; + } + + backup_netdev = rtnl_dereference(vbi->backup_netdev); + if (backup_netdev) { + err = dev_open(backup_netdev); + if (err) + goto err_backup_open; + } + + return 0; + +err_backup_open: + dev_close(active_netdev); +err_active_open: + netif_tx_disable(dev); + return err; +} + +static int virtnet_bypass_close(struct net_device *dev) +{ + struct virtnet_bypass_info *vi = netdev_priv(dev); + struct net_device *child_netdev; + + netif_tx_disable(dev); + + child_netdev = rtnl_dereference(vi->active_netdev); + if (child_netdev) + dev_close(child_n...
2017 Oct 05
0
[PATCH RFC 1/2] virtio_net: implement VIRTIO_CONFIG_S_NEEDS_RESET
...o work handler is accessing the device, >> + * unless this call is made from the reset work handler itself. >> + */ >> + if (!in_reset) >> + flush_work(&vi->config_work); >> >> netif_device_detach(vi->dev); >> netif_tx_disable(vi->dev); >> @@ -1878,6 +1880,7 @@ static void virtnet_freeze_down(struct virtio_device *vdev) >> } >> >> static int init_vqs(struct virtnet_info *vi); >> +static void remove_vq_common(struct virtnet_info *vi); >> >> static int virtnet_restore_up(stru...
2017 Oct 05
0
[PATCH RFC 1/2] virtio_net: implement VIRTIO_CONFIG_S_NEEDS_RESET
...o work handler is accessing the device, >> + * unless this call is made from the reset work handler itself. >> + */ >> + if (!in_reset) >> + flush_work(&vi->config_work); >> >> netif_device_detach(vi->dev); >> netif_tx_disable(vi->dev); >> @@ -1878,6 +1880,7 @@ static void virtnet_freeze_down(struct virtio_device *vdev) >> } >> >> static int init_vqs(struct virtnet_info *vi); >> +static void remove_vq_common(struct virtnet_info *vi); >> >> static int virtnet_restore_up(stru...
2018 Apr 20
2
[PATCH v7 net-next 2/4] net: Introduce generic failover module
...> + standby_dev = rtnl_dereference(finfo->standby_dev); > + if (standby_dev) { > + err = dev_open(standby_dev); > + if (err) > + goto err_standby_open; > + } > + > + return 0; > + > +err_standby_open: > + dev_close(primary_dev); > +err_primary_open: > + netif_tx_disable(dev); > + return err; > +} > + > +static int failover_close(struct net_device *dev) > +{ > + struct failover_info *finfo = netdev_priv(dev); > + struct net_device *slave_dev; > + > + netif_tx_disable(dev); > + > + slave_dev = rtnl_dereference(finfo->primary_dev);...
2018 Apr 20
2
[PATCH v7 net-next 2/4] net: Introduce generic failover module
...> + standby_dev = rtnl_dereference(finfo->standby_dev); > + if (standby_dev) { > + err = dev_open(standby_dev); > + if (err) > + goto err_standby_open; > + } > + > + return 0; > + > +err_standby_open: > + dev_close(primary_dev); > +err_primary_open: > + netif_tx_disable(dev); > + return err; > +} > + > +static int failover_close(struct net_device *dev) > +{ > + struct failover_info *finfo = netdev_priv(dev); > + struct net_device *slave_dev; > + > + netif_tx_disable(dev); > + > + slave_dev = rtnl_dereference(finfo->primary_dev);...
2018 Apr 11
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...} >+ >+ backup_netdev = rtnl_dereference(bi->backup_netdev); >+ if (backup_netdev) { >+ err = dev_open(backup_netdev); >+ if (err) >+ goto err_backup_open; >+ } >+ >+ return 0; >+ >+err_backup_open: >+ dev_close(active_netdev); >+err_active_open: >+ netif_tx_disable(dev); >+ return err; >+} >+EXPORT_SYMBOL_GPL(bypass_open); >+ >+int bypass_close(struct net_device *dev) >+{ >+ struct bypass_info *vi = netdev_priv(dev); This should be probably "bi" >+ struct net_device *slave_netdev; >+ >+ netif_tx_disable(dev); >+ &...
2018 Apr 11
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...} >+ >+ backup_netdev = rtnl_dereference(bi->backup_netdev); >+ if (backup_netdev) { >+ err = dev_open(backup_netdev); >+ if (err) >+ goto err_backup_open; >+ } >+ >+ return 0; >+ >+err_backup_open: >+ dev_close(active_netdev); >+err_active_open: >+ netif_tx_disable(dev); >+ return err; >+} >+EXPORT_SYMBOL_GPL(bypass_open); >+ >+int bypass_close(struct net_device *dev) >+{ >+ struct bypass_info *vi = netdev_priv(dev); This should be probably "bi" >+ struct net_device *slave_netdev; >+ >+ netif_tx_disable(dev); >+ &...
2018 Apr 10
0
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...(active_netdev); + if (err) + goto err_active_open; + } + + backup_netdev = rtnl_dereference(bi->backup_netdev); + if (backup_netdev) { + err = dev_open(backup_netdev); + if (err) + goto err_backup_open; + } + + return 0; + +err_backup_open: + dev_close(active_netdev); +err_active_open: + netif_tx_disable(dev); + return err; +} +EXPORT_SYMBOL_GPL(bypass_open); + +int bypass_close(struct net_device *dev) +{ + struct bypass_info *vi = netdev_priv(dev); + struct net_device *slave_netdev; + + netif_tx_disable(dev); + + slave_netdev = rtnl_dereference(vi->active_netdev); + if (slave_netdev) + dev_clo...
2018 Apr 20
0
[PATCH v7 net-next 2/4] net: Introduce generic failover module
..._open(primary_dev); + if (err) + goto err_primary_open; + } + + standby_dev = rtnl_dereference(finfo->standby_dev); + if (standby_dev) { + err = dev_open(standby_dev); + if (err) + goto err_standby_open; + } + + return 0; + +err_standby_open: + dev_close(primary_dev); +err_primary_open: + netif_tx_disable(dev); + return err; +} + +static int failover_close(struct net_device *dev) +{ + struct failover_info *finfo = netdev_priv(dev); + struct net_device *slave_dev; + + netif_tx_disable(dev); + + slave_dev = rtnl_dereference(finfo->primary_dev); + if (slave_dev) + dev_close(slave_dev); + + slave_de...
2018 May 22
0
[PATCH net-next v11 3/5] net: Introduce net_failover driver
...open; + } + + if ((primary_dev && net_failover_xmit_ready(primary_dev)) || + (standby_dev && net_failover_xmit_ready(standby_dev))) { + netif_carrier_on(dev); + netif_tx_wake_all_queues(dev); + } + + return 0; + +err_standby_open: + dev_close(primary_dev); +err_primary_open: + netif_tx_disable(dev); + return err; +} + +static int net_failover_close(struct net_device *dev) +{ + struct net_failover_info *nfo_info = netdev_priv(dev); + struct net_device *slave_dev; + + netif_tx_disable(dev); + + slave_dev = rtnl_dereference(nfo_info->primary_dev); + if (slave_dev) + dev_close(slave_dev)...
2018 Apr 20
0
[PATCH v7 net-next 2/4] net: Introduce generic failover module
...standby_dev); >> + if (standby_dev) { >> + err = dev_open(standby_dev); >> + if (err) >> + goto err_standby_open; >> + } >> + >> + return 0; >> + >> +err_standby_open: >> + dev_close(primary_dev); >> +err_primary_open: >> + netif_tx_disable(dev); >> + return err; >> +} >> + >> +static int failover_close(struct net_device *dev) >> +{ >> + struct failover_info *finfo = netdev_priv(dev); >> + struct net_device *slave_dev; >> + >> + netif_tx_disable(dev); >> + >> + slave_de...
2018 Apr 11
0
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...p_netdev); >> + if (backup_netdev) { >> + err = dev_open(backup_netdev); >> + if (err) >> + goto err_backup_open; >> + } >> + >> + return 0; >> + >> +err_backup_open: >> + dev_close(active_netdev); >> +err_active_open: >> + netif_tx_disable(dev); >> + return err; >> +} >> +EXPORT_SYMBOL_GPL(bypass_open); >> + >> +int bypass_close(struct net_device *dev) >> +{ >> + struct bypass_info *vi = netdev_priv(dev); > This should be probably "bi" Yes. > > >> + struct net_devi...
2018 May 07
0
[PATCH net-next v10 2/4] net: Introduce generic failover module
...open; + } + + if ((primary_dev && net_failover_xmit_ready(primary_dev)) || + (standby_dev && net_failover_xmit_ready(standby_dev))) { + netif_carrier_on(dev); + netif_tx_wake_all_queues(dev); + } + + return 0; + +err_standby_open: + dev_close(primary_dev); +err_primary_open: + netif_tx_disable(dev); + return err; +} + +static int net_failover_close(struct net_device *dev) +{ + struct net_failover_info *nfo_info = netdev_priv(dev); + struct net_device *slave_dev; + + netif_tx_disable(dev); + + slave_dev = rtnl_dereference(nfo_info->primary_dev); + if (slave_dev) + dev_close(slave_dev)...
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
...); >+ if (backup_netdev) { >+ err = dev_open(backup_netdev); >+ if (err) >+ goto err_backup_open; >+ } This should be moved to bypass module. See "***" below. >+ >+ return 0; >+ >+err_backup_open: >+ dev_close(active_netdev); >+err_active_open: >+ netif_tx_disable(dev); >+ return err; >+} >+ >+static int virtnet_bypass_close(struct net_device *dev) >+{ >+ struct virtnet_bypass_info *vi = netdev_priv(dev); >+ struct net_device *child_netdev; >+ >+ netif_tx_disable(dev); >+ >+ child_netdev = rtnl_dereference(vi->active_netde...