From: Jakub Kicinski <kuba@kernel.org>
To: davem@davemloft.net
Cc: mkubecek@suse.cz, thomas.lendacky@amd.com, benve@cisco.com,
_govind@gmx.com, pkaustub@cisco.com, peppe.cavallaro@st.com,
alexandre.torgue@st.com, joabreu@synopsys.com,
snelson@pensando.io, yisen.zhuang@huawei.com,
salil.mehta@huawei.com, jeffrey.t.kirsher@intel.com,
jacob.e.keller@intel.com, alexander.h.duyck@linux.intel.com,
michael.chan@broadcom.com, saeedm@mellanox.com, leon@kernel.org,
netdev@vger.kernel.org, Jakub Kicinski <kuba@kernel.org>
Subject: [PATCH net-next v2 08/12] ice: let core reject the unsupported coalescing parameters
Date: Tue, 3 Mar 2020 20:33:50 -0800 [thread overview]
Message-ID: <20200304043354.716290-9-kuba@kernel.org> (raw)
In-Reply-To: <20200304043354.716290-1-kuba@kernel.org>
Set ethtool_ops->coalesce_types to let the core reject
unsupported coalescing parameters.
This driver correctly rejects all unsupported parameters.
As a side effect of these changes the info message about
the bad parameter will no longer be printed. We also
always reject the tx_coalesce_usecs_high param, even
if the target queue pair does not have a TX queue.
v2: allow adaptive TX
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
drivers/net/ethernet/intel/ice/ice_ethtool.c | 59 +-------------------
1 file changed, 3 insertions(+), 56 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c b/drivers/net/ethernet/intel/ice/ice_ethtool.c
index ab37dddb225b..67e162b653e7 100644
--- a/drivers/net/ethernet/intel/ice/ice_ethtool.c
+++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c
@@ -3452,12 +3452,6 @@ ice_set_rc_coalesce(enum ice_container_type c_type, struct ethtool_coalesce *ec,
break;
case ICE_TX_CONTAINER:
- if (ec->tx_coalesce_usecs_high) {
- netdev_info(vsi->netdev, "setting %s-usecs-high is not supported\n",
- c_type_str);
- return -EINVAL;
- }
-
use_adaptive_coalesce = ec->use_adaptive_tx_coalesce;
coalesce_usecs = ec->tx_coalesce_usecs;
@@ -3533,53 +3527,6 @@ ice_set_q_coalesce(struct ice_vsi *vsi, struct ethtool_coalesce *ec, int q_num)
return 0;
}
-/**
- * ice_is_coalesce_param_invalid - check for unsupported coalesce parameters
- * @netdev: pointer to the netdev associated with this query
- * @ec: ethtool structure to fill with driver's coalesce settings
- *
- * Print netdev info if driver doesn't support one of the parameters
- * and return error. When any parameters will be implemented, remove only
- * this parameter from param array.
- */
-static int
-ice_is_coalesce_param_invalid(struct net_device *netdev,
- struct ethtool_coalesce *ec)
-{
- struct ice_ethtool_not_used {
- u32 value;
- const char *name;
- } param[] = {
- {ec->stats_block_coalesce_usecs, "stats-block-usecs"},
- {ec->rate_sample_interval, "sample-interval"},
- {ec->pkt_rate_low, "pkt-rate-low"},
- {ec->pkt_rate_high, "pkt-rate-high"},
- {ec->rx_max_coalesced_frames, "rx-frames"},
- {ec->rx_coalesce_usecs_irq, "rx-usecs-irq"},
- {ec->rx_max_coalesced_frames_irq, "rx-frames-irq"},
- {ec->tx_max_coalesced_frames, "tx-frames"},
- {ec->tx_coalesce_usecs_irq, "tx-usecs-irq"},
- {ec->tx_max_coalesced_frames_irq, "tx-frames-irq"},
- {ec->rx_coalesce_usecs_low, "rx-usecs-low"},
- {ec->rx_max_coalesced_frames_low, "rx-frames-low"},
- {ec->tx_coalesce_usecs_low, "tx-usecs-low"},
- {ec->tx_max_coalesced_frames_low, "tx-frames-low"},
- {ec->rx_max_coalesced_frames_high, "rx-frames-high"},
- {ec->tx_max_coalesced_frames_high, "tx-frames-high"}
- };
- int i;
-
- for (i = 0; i < ARRAY_SIZE(param); i++) {
- if (param[i].value) {
- netdev_info(netdev, "Setting %s not supported\n",
- param[i].name);
- return -EINVAL;
- }
- }
-
- return 0;
-}
-
/**
* ice_print_if_odd_usecs - print message if user tries to set odd [tx|rx]-usecs
* @netdev: netdev used for print
@@ -3620,9 +3567,6 @@ __ice_set_coalesce(struct net_device *netdev, struct ethtool_coalesce *ec,
struct ice_netdev_priv *np = netdev_priv(netdev);
struct ice_vsi *vsi = np->vsi;
- if (ice_is_coalesce_param_invalid(netdev, ec))
- return -EINVAL;
-
if (q_num < 0) {
struct ice_q_vector *q_vector = vsi->q_vectors[0];
int v_idx;
@@ -3817,6 +3761,9 @@ ice_get_module_eeprom(struct net_device *netdev,
}
static const struct ethtool_ops ice_ethtool_ops = {
+ .coalesce_types = ETHTOOL_COALESCE_USECS |
+ ETHTOOL_COALESCE_USE_ADAPTIVE |
+ ETHTOOL_COALESCE_RX_USECS_HIGH,
.get_link_ksettings = ice_get_link_ksettings,
.set_link_ksettings = ice_set_link_ksettings,
.get_drvinfo = ice_get_drvinfo,
--
2.24.1
next prev parent reply other threads:[~2020-03-04 4:34 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-04 4:33 [PATCH net-next v2 00/12] ethtool: consolidate parameter checking for irq coalescing Jakub Kicinski
2020-03-04 4:33 ` [PATCH net-next v2 01/12] ethtool: add infrastructure for centralized checking of coalescing parameters Jakub Kicinski
2020-03-04 7:59 ` Michal Kubecek
2020-03-04 18:00 ` Jakub Kicinski
2020-03-04 18:12 ` Alexander Duyck
2020-03-04 18:16 ` Edward Cree
2020-03-04 18:28 ` Jakub Kicinski
2020-03-04 18:34 ` Michal Kubecek
2020-03-04 18:27 ` Jakub Kicinski
2020-03-04 18:50 ` Alexander Duyck
2020-03-05 4:34 ` Jakub Kicinski
2020-03-04 18:36 ` Michal Kubecek
2020-03-04 21:22 ` Jacob Keller
2020-03-04 21:15 ` Jacob Keller
2020-03-04 4:33 ` [PATCH net-next v2 02/12] xgbe: let core reject the unsupported " Jakub Kicinski
2020-03-04 4:33 ` [PATCH net-next v2 03/12] enic: " Jakub Kicinski
2020-03-04 4:33 ` [PATCH net-next v2 04/12] stmmac: " Jakub Kicinski
2020-03-04 4:33 ` [PATCH net-next v2 05/12] nfp: " Jakub Kicinski
2020-03-04 4:33 ` [PATCH net-next v2 06/12] ionic: " Jakub Kicinski
2020-03-04 4:33 ` [PATCH net-next v2 07/12] hisilicon: " Jakub Kicinski
2020-03-04 4:33 ` Jakub Kicinski [this message]
2020-03-04 18:08 ` [PATCH net-next v2 08/12] ice: " Jeff Kirsher
2020-03-04 21:20 ` Jacob Keller
2020-03-04 4:33 ` [PATCH net-next v2 09/12] bnxt: reject unsupported coalescing params Jakub Kicinski
2020-03-04 6:16 ` Michael Chan
2020-03-04 4:33 ` [PATCH net-next v2 10/12] mlx5: " Jakub Kicinski
2020-03-04 4:33 ` [PATCH net-next v2 11/12] e1000e: " Jakub Kicinski
2020-03-04 18:08 ` Jeff Kirsher
2020-03-04 4:33 ` [PATCH net-next v2 12/12] virtio_net: " Jakub Kicinski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200304043354.716290-9-kuba@kernel.org \
--to=kuba@kernel.org \
--cc=_govind@gmx.com \
--cc=alexander.h.duyck@linux.intel.com \
--cc=alexandre.torgue@st.com \
--cc=benve@cisco.com \
--cc=davem@davemloft.net \
--cc=jacob.e.keller@intel.com \
--cc=jeffrey.t.kirsher@intel.com \
--cc=joabreu@synopsys.com \
--cc=leon@kernel.org \
--cc=michael.chan@broadcom.com \
--cc=mkubecek@suse.cz \
--cc=netdev@vger.kernel.org \
--cc=peppe.cavallaro@st.com \
--cc=pkaustub@cisco.com \
--cc=saeedm@mellanox.com \
--cc=salil.mehta@huawei.com \
--cc=snelson@pensando.io \
--cc=thomas.lendacky@amd.com \
--cc=yisen.zhuang@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.