Message ID | 20230711003453.9856-2-muhammad.husaini.zulkifli@intel.com |
---|---|
State | Changes Requested |
Delegated to: | Anthony Nguyen |
Headers | show |
Series | Enhance the tx-usecs coalesce setting implementation | expand |
On 7/10/2023 5:34 PM, Muhammad Husaini Zulkifli wrote: ... > } > @@ -910,9 +908,6 @@ static int igc_ethtool_set_coalesce(struct net_device *netdev, > ec->tx_coalesce_usecs == 2) > return -EINVAL; > > - if ((adapter->flags & IGC_FLAG_QUEUE_PAIRS) && ec->tx_coalesce_usecs) > - return -EINVAL; > - Seems like this belongs in patch 2? > /* If ITR is disabled, disable DMAC */ > if (ec->rx_coalesce_usecs == 0) { > if (adapter->flags & IGC_FLAG_DMAC)
Dear Anthony, > -----Original Message----- > From: Nguyen, Anthony L <anthony.l.nguyen@intel.com> > Sent: Thursday, 13 July, 2023 4:39 AM > To: Zulkifli, Muhammad Husaini <muhammad.husaini.zulkifli@intel.com>; intel- > wired-lan@osuosl.org > Cc: Neftin, Sasha <sasha.neftin@intel.com>; naamax.meir@linux.intel.com > Subject: Re: [PATCH iwl-net v2 1/2] igc: Expose tx-usecs coalesce setting to user > > On 7/10/2023 5:34 PM, Muhammad Husaini Zulkifli wrote: > > ... > > > } > > @@ -910,9 +908,6 @@ static int igc_ethtool_set_coalesce(struct net_device > *netdev, > > ec->tx_coalesce_usecs == 2) > > return -EINVAL; > > > > - if ((adapter->flags & IGC_FLAG_QUEUE_PAIRS) && ec- > >tx_coalesce_usecs) > > - return -EINVAL; > > - > > Seems like this belongs in patch 2? The first patch should have this. Without this line, we would be unable to configure rx-usecs at all. > > > /* If ITR is disabled, disable DMAC */ > > if (ec->rx_coalesce_usecs == 0) { > > if (adapter->flags & IGC_FLAG_DMAC)
On 7/11/2023 03:34, Muhammad Husaini Zulkifli wrote: > When users attempt to obtain the coalesce setting using the > ethtool command, current code always returns 0 for tx-usecs. > This is because I225/6 always uses a queue pair setting, hence > tx_coalesce_usecs does not return a value during the > igc_ethtool_get_coalesce() callback process. The pair queue > condition checking in igc_ethtool_get_coalesce() is removed by > this patch so that the user gets information of the value of tx-usecs. > > Even if i225/6 is using queue pair setting, there is no harm in > notifying the user of the tx-usecs. The implementation of the current > code may have previously been a copy of the legacy code i210. > > How to test: > User can get the coalesce value using ethtool command. > > Example command: > Get: ethtool -c <interface> > > Previous output: > > rx-usecs: 3 > rx-frames: n/a > rx-usecs-irq: n/a > rx-frames-irq: n/a > > tx-usecs: 0 > tx-frames: n/a > tx-usecs-irq: n/a > tx-frames-irq: n/a > > New output: > > rx-usecs: 3 > rx-frames: n/a > rx-usecs-irq: n/a > rx-frames-irq: n/a > > tx-usecs: 3 > tx-frames: n/a > tx-usecs-irq: n/a > tx-frames-irq: n/a > > Fixes: 8c5ad0dae93c ("igc: Add ethtool support") > Signed-off-by: Muhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com> > --- > drivers/net/ethernet/intel/igc/igc_ethtool.c | 13 ++++--------- > 1 file changed, 4 insertions(+), 9 deletions(-) Tested-by: Naama Meir <naamax.meir@linux.intel.com>
diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c index 93bce729be76..62d925b26f2c 100644 --- a/drivers/net/ethernet/intel/igc/igc_ethtool.c +++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c @@ -880,12 +880,10 @@ static int igc_ethtool_get_coalesce(struct net_device *netdev, else ec->rx_coalesce_usecs = adapter->rx_itr_setting >> 2; - if (!(adapter->flags & IGC_FLAG_QUEUE_PAIRS)) { - if (adapter->tx_itr_setting <= 3) - ec->tx_coalesce_usecs = adapter->tx_itr_setting; - else - ec->tx_coalesce_usecs = adapter->tx_itr_setting >> 2; - } + if (adapter->tx_itr_setting <= 3) + ec->tx_coalesce_usecs = adapter->tx_itr_setting; + else + ec->tx_coalesce_usecs = adapter->tx_itr_setting >> 2; return 0; } @@ -910,9 +908,6 @@ static int igc_ethtool_set_coalesce(struct net_device *netdev, ec->tx_coalesce_usecs == 2) return -EINVAL; - if ((adapter->flags & IGC_FLAG_QUEUE_PAIRS) && ec->tx_coalesce_usecs) - return -EINVAL; - /* If ITR is disabled, disable DMAC */ if (ec->rx_coalesce_usecs == 0) { if (adapter->flags & IGC_FLAG_DMAC)
When users attempt to obtain the coalesce setting using the ethtool command, current code always returns 0 for tx-usecs. This is because I225/6 always uses a queue pair setting, hence tx_coalesce_usecs does not return a value during the igc_ethtool_get_coalesce() callback process. The pair queue condition checking in igc_ethtool_get_coalesce() is removed by this patch so that the user gets information of the value of tx-usecs. Even if i225/6 is using queue pair setting, there is no harm in notifying the user of the tx-usecs. The implementation of the current code may have previously been a copy of the legacy code i210. How to test: User can get the coalesce value using ethtool command. Example command: Get: ethtool -c <interface> Previous output: rx-usecs: 3 rx-frames: n/a rx-usecs-irq: n/a rx-frames-irq: n/a tx-usecs: 0 tx-frames: n/a tx-usecs-irq: n/a tx-frames-irq: n/a New output: rx-usecs: 3 rx-frames: n/a rx-usecs-irq: n/a rx-frames-irq: n/a tx-usecs: 3 tx-frames: n/a tx-usecs-irq: n/a tx-frames-irq: n/a Fixes: 8c5ad0dae93c ("igc: Add ethtool support") Signed-off-by: Muhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com> --- drivers/net/ethernet/intel/igc/igc_ethtool.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-)