Re: [PATCH net v2] atl1c: move tx cleanup processing out of interrupt

From: Eric Dumazet
Date: Fri Apr 02 2021 - 14:21:00 EST




On 4/2/21 7:20 PM, Gatis Peisenieks wrote:
> Tx queue cleanup happens in interrupt handler on same core as rx queue processing.
> Both can take considerable amount of processing in high packet-per-second scenarios.
>

...

> @@ -2504,6 +2537,7 @@ static int atl1c_init_netdev(struct net_device *netdev, struct pci_dev *pdev)
>                  NETIF_F_TSO6;
>      netdev->features =    netdev->hw_features    |
>                  NETIF_F_HW_VLAN_CTAG_TX;
> +    netdev->threaded = true;

Shouldn't it use dev_set_threaded() ?

>      return 0;
>  }
>
> @@ -2588,6 +2622,7 @@ static int atl1c_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>      adapter->mii.phy_id_mask = 0x1f;
>      adapter->mii.reg_num_mask = MDIO_CTRL_REG_MASK;
>      netif_napi_add(netdev, &adapter->napi, atl1c_clean, 64);
> +    netif_napi_add(netdev, &adapter->tx_napi, atl1c_clean_tx, 64);
>      timer_setup(&adapter->phy_config_timer, atl1c_phy_config, 0);
>      /* setup the private structure */
>      err = atl1c_sw_init(adapter);