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.
...
quoted hunk ↗ jump to hunk
@@ -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() ?
quoted hunk ↗ jump to hunk
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);