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);