Commit 9041f047 authored by Ivan Vecera's avatar Ivan Vecera Committed by David S. Miller

be2net: eliminate enable field from be_aic_obj

Adaptive coalescing is managed per adapter not per event queue so it
does not needed to store 'enable' flag for each event queue.
Signed-off-by: default avatarIvan Vecera <ivecera@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e654f9f5
...@@ -192,7 +192,6 @@ struct be_eq_obj { ...@@ -192,7 +192,6 @@ struct be_eq_obj {
} ____cacheline_aligned_in_smp; } ____cacheline_aligned_in_smp;
struct be_aic_obj { /* Adaptive interrupt coalescing (AIC) info */ struct be_aic_obj { /* Adaptive interrupt coalescing (AIC) info */
bool enable;
u32 min_eqd; /* in usecs */ u32 min_eqd; /* in usecs */
u32 max_eqd; /* in usecs */ u32 max_eqd; /* in usecs */
u32 prev_eqd; /* in usecs */ u32 prev_eqd; /* in usecs */
...@@ -589,6 +588,7 @@ struct be_adapter { ...@@ -589,6 +588,7 @@ struct be_adapter {
struct be_drv_stats drv_stats; struct be_drv_stats drv_stats;
struct be_aic_obj aic_obj[MAX_EVT_QS]; struct be_aic_obj aic_obj[MAX_EVT_QS];
bool aic_enabled;
u8 vlan_prio_bmap; /* Available Priority BitMap */ u8 vlan_prio_bmap; /* Available Priority BitMap */
u16 recommended_prio_bits;/* Recommended Priority bits in vlan tag */ u16 recommended_prio_bits;/* Recommended Priority bits in vlan tag */
struct be_dma_mem rx_filter; /* Cmd DMA mem for rx-filter */ struct be_dma_mem rx_filter; /* Cmd DMA mem for rx-filter */
......
...@@ -329,8 +329,8 @@ static int be_get_coalesce(struct net_device *netdev, ...@@ -329,8 +329,8 @@ static int be_get_coalesce(struct net_device *netdev,
et->tx_coalesce_usecs_high = aic->max_eqd; et->tx_coalesce_usecs_high = aic->max_eqd;
et->tx_coalesce_usecs_low = aic->min_eqd; et->tx_coalesce_usecs_low = aic->min_eqd;
et->use_adaptive_rx_coalesce = aic->enable; et->use_adaptive_rx_coalesce = adapter->aic_enabled;
et->use_adaptive_tx_coalesce = aic->enable; et->use_adaptive_tx_coalesce = adapter->aic_enabled;
return 0; return 0;
} }
...@@ -346,8 +346,9 @@ static int be_set_coalesce(struct net_device *netdev, ...@@ -346,8 +346,9 @@ static int be_set_coalesce(struct net_device *netdev,
struct be_eq_obj *eqo; struct be_eq_obj *eqo;
int i; int i;
adapter->aic_enabled = et->use_adaptive_rx_coalesce;
for_all_evt_queues(adapter, eqo, i) { for_all_evt_queues(adapter, eqo, i) {
aic->enable = et->use_adaptive_rx_coalesce;
aic->max_eqd = min(et->rx_coalesce_usecs_high, BE_MAX_EQD); aic->max_eqd = min(et->rx_coalesce_usecs_high, BE_MAX_EQD);
aic->min_eqd = min(et->rx_coalesce_usecs_low, aic->max_eqd); aic->min_eqd = min(et->rx_coalesce_usecs_low, aic->max_eqd);
aic->et_eqd = min(et->rx_coalesce_usecs, aic->max_eqd); aic->et_eqd = min(et->rx_coalesce_usecs, aic->max_eqd);
......
...@@ -2147,7 +2147,7 @@ static int be_get_new_eqd(struct be_eq_obj *eqo) ...@@ -2147,7 +2147,7 @@ static int be_get_new_eqd(struct be_eq_obj *eqo)
int i; int i;
aic = &adapter->aic_obj[eqo->idx]; aic = &adapter->aic_obj[eqo->idx];
if (!aic->enable) { if (!adapter->aic_enabled) {
if (aic->jiffies) if (aic->jiffies)
aic->jiffies = 0; aic->jiffies = 0;
eqd = aic->et_eqd; eqd = aic->et_eqd;
...@@ -2204,7 +2204,7 @@ static u32 be_get_eq_delay_mult_enc(struct be_eq_obj *eqo) ...@@ -2204,7 +2204,7 @@ static u32 be_get_eq_delay_mult_enc(struct be_eq_obj *eqo)
int eqd; int eqd;
u32 mult_enc; u32 mult_enc;
if (!aic->enable) if (!adapter->aic_enabled)
return 0; return 0;
if (jiffies_to_msecs(now - aic->jiffies) < 1) if (jiffies_to_msecs(now - aic->jiffies) < 1)
...@@ -2959,6 +2959,8 @@ static int be_evt_queues_create(struct be_adapter *adapter) ...@@ -2959,6 +2959,8 @@ static int be_evt_queues_create(struct be_adapter *adapter)
max(adapter->cfg_num_rx_irqs, max(adapter->cfg_num_rx_irqs,
adapter->cfg_num_tx_irqs)); adapter->cfg_num_tx_irqs));
adapter->aic_enabled = true;
for_all_evt_queues(adapter, eqo, i) { for_all_evt_queues(adapter, eqo, i) {
int numa_node = dev_to_node(&adapter->pdev->dev); int numa_node = dev_to_node(&adapter->pdev->dev);
...@@ -2966,7 +2968,6 @@ static int be_evt_queues_create(struct be_adapter *adapter) ...@@ -2966,7 +2968,6 @@ static int be_evt_queues_create(struct be_adapter *adapter)
eqo->adapter = adapter; eqo->adapter = adapter;
eqo->idx = i; eqo->idx = i;
aic->max_eqd = BE_MAX_EQD; aic->max_eqd = BE_MAX_EQD;
aic->enable = true;
eq = &eqo->q; eq = &eqo->q;
rc = be_queue_alloc(adapter, eq, EVNT_Q_LEN, rc = be_queue_alloc(adapter, eq, EVNT_Q_LEN,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment