Message ID | 20241227031410.25607-6-johndale@cisco.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | enic: Use Page Pool API for receiving packets | expand |
On Thu, Dec 26, 2024 at 07:14:10PM -0800, John Daley wrote: > The link speed that is used to index the table of minimum RX adaptive > coalescing values is incorrect because the link speed was being checked > before the link was up. Change the adaptive RX coalescing setup function > to run after the Link comes up. > > There could be a minor bandwidth impact when adaptive interrupts were > enabled. The low end of the adaptive interrupt range was being set to 0 > for all packets instead of 3us for packets less the 1000 bytes and 6us > for larger packet for link speeds greater There are two changes here, so please break it into two patches. > +++ b/drivers/net/ethernet/cisco/enic/enic_main.c > @@ -84,6 +84,8 @@ MODULE_AUTHOR("Scott Feldman <scofeldm@cisco.com>"); > MODULE_LICENSE("GPL"); > MODULE_DEVICE_TABLE(pci, enic_id_table); > > +static void enic_set_rx_coal_setting(struct enic *enic); > + Please don't add forward declarations. Move the code around instead. You can add a preparation patch which does the move, and in the commit message say there is no functional change. That makes is quick and easy to review. Andrew --- pw-bot: cr
diff --git a/drivers/net/ethernet/cisco/enic/enic_main.c b/drivers/net/ethernet/cisco/enic/enic_main.c index 5bfd89749237..7c2bfe4b7997 100644 --- a/drivers/net/ethernet/cisco/enic/enic_main.c +++ b/drivers/net/ethernet/cisco/enic/enic_main.c @@ -84,6 +84,8 @@ MODULE_AUTHOR("Scott Feldman <scofeldm@cisco.com>"); MODULE_LICENSE("GPL"); MODULE_DEVICE_TABLE(pci, enic_id_table); +static void enic_set_rx_coal_setting(struct enic *enic); + #define ENIC_MAX_COALESCE_TIMERS 10 /* Interrupt moderation table, which will be used to decide the * coalescing timer values @@ -109,7 +111,7 @@ static struct enic_intr_mod_table mod_table[ENIC_MAX_COALESCE_TIMERS + 1] = { static struct enic_intr_mod_range mod_range[ENIC_MAX_LINK_SPEEDS] = { {0, 0}, /* 0 - 4 Gbps */ {0, 3}, /* 4 - 10 Gbps */ - {3, 6}, /* 10 - 40 Gbps */ + {3, 6}, /* 10+ Gbps */ }; static void enic_init_affinity_hint(struct enic *enic) @@ -436,6 +438,7 @@ static void enic_link_check(struct enic *enic) if (link_status && !carrier_ok) { netdev_info(enic->netdev, "Link UP\n"); netif_carrier_on(enic->netdev); + enic_set_rx_coal_setting(enic); } else if (!link_status && carrier_ok) { netdev_info(enic->netdev, "Link DOWN\n"); netif_carrier_off(enic->netdev); @@ -3016,7 +3019,6 @@ static int enic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) timer_setup(&enic->notify_timer, enic_notify_timer, 0); enic_rfs_flw_tbl_init(enic); - enic_set_rx_coal_setting(enic); INIT_WORK(&enic->reset, enic_reset); INIT_WORK(&enic->tx_hang_reset, enic_tx_hang_reset); INIT_WORK(&enic->change_mtu_work, enic_change_mtu_work);