[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <DD0B95A6-128F-4DFC-9B69-B252A5ADBFFF@nutanix.com>
Date: Tue, 25 Jun 2024 18:11:14 +0000
From: Jon Kohler <jon@...anix.com>
To: Sai Krishna Gajula <saikrishnag@...vell.com>
CC: Christian Benvenuti <benve@...co.com>, Satish Kharat <satishkh@...co.com>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v2] enic: add ethtool get_channel support
> On Jun 25, 2024, at 1:44 PM, Sai Krishna Gajula <saikrishnag@...vell.com> wrote:
>
> !-------------------------------------------------------------------|
> CAUTION: External Email
>
> |-------------------------------------------------------------------!
>
>> -----Original Message-----
>> From: Jon Kohler <jon@...anix.com>
>> Sent: Tuesday, June 25, 2024 12:19 AM
>> To: Christian Benvenuti <benve@...co.com>; Satish Kharat
>> <satishkh@...co.com>; David S. Miller <davem@...emloft.net>; Eric
>> Dumazet <edumazet@...gle.com>; Jakub Kicinski <kuba@...nel.org>; Paolo
>> Abeni <pabeni@...hat.com>; netdev@...r.kernel.org; linux-
>> kernel@...r.kernel.org
>> Cc: Jon Kohler <jon@...anix.com>
>> Subject: [PATCH v2] enic: add ethtool get_channel support
>
> It is better to indicate the patch is for NET or NET-NEXT ex: [ PATCH net-next v2].
Thanks for the Reviewed-By and the tip here. Do you suggest I send out a v3
with an updated tag? My apologies for the confusion.
>
>>
>> Add .get_channel to enic_ethtool_ops to enable basic ethtool -l support to
>> get the current channel configuration. Note that the driver does not support
>> dynamically changing queue configuration, so .set_channel is intentionally
>> unused. Instead,
>> Add .get_channel to enic_ethtool_ops to enable basic ethtool -l support to
>> get the current channel configuration.
>>
>> Note that the driver does not support dynamically changing queue
>> configuration, so .set_channel is intentionally unused. Instead, users should
>> use Cisco's hardware management tools (UCSM/IMC) to modify virtual
>> interface card configuration out of band.
>>
>> Signed-off-by: Jon Kohler <jon@...anix.com>
>> ---
>> v1
>> - https://urldefense.proofpoint.com/v2/url?u=https-
>> 3A__lore.kernel.org_netdev_20240618160146.3900470-2D1-2Djon-
>> 40nutanix.com_T_-
>> 23u&d=DwIDAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=c3MsgrR-U-
>> HFhmFd6R4MWRZG-8QeikJn5PkjqMTpBSg&m=IIWcqk3E-
>> aJ8g4EtpjIC9Jg_2T37OpnceY8mwAIuWEBmyGG9tHKaQp1rAgD5__2K&s=hTRY
>> fTAQB9Tli-3DbKoTQkrJ2OxTBab-RqcKIJUjQTc&e=
>> v1 -> v2:
>> - Addressed comments from Przemek and Jakub
>> ---
>> .../net/ethernet/cisco/enic/enic_ethtool.c | 27 +++++++++++++++++++
>> 1 file changed, 27 insertions(+)
>>
>> diff --git a/drivers/net/ethernet/cisco/enic/enic_ethtool.c
>> b/drivers/net/ethernet/cisco/enic/enic_ethtool.c
>> index 241906697019..54f542238b4e 100644
>> --- a/drivers/net/ethernet/cisco/enic/enic_ethtool.c
>> +++ b/drivers/net/ethernet/cisco/enic/enic_ethtool.c
>> @@ -608,6 +608,32 @@ static int enic_get_ts_info(struct net_device *netdev,
>> return 0;
>> }
>>
>> +static void enic_get_channels(struct net_device *netdev,
>> + struct ethtool_channels *channels) {
>> + struct enic *enic = netdev_priv(netdev);
>> +
>> + switch (vnic_dev_get_intr_mode(enic->vdev)) {
>> + case VNIC_DEV_INTR_MODE_MSIX:
>> + channels->max_rx = ENIC_RQ_MAX;
>> + channels->max_tx = ENIC_WQ_MAX;
>> + channels->rx_count = enic->rq_count;
>> + channels->tx_count = enic->wq_count;
>> + break;
>> + case VNIC_DEV_INTR_MODE_MSI:
>> + channels->max_rx = 1;
>> + channels->max_tx = 1;
>> + channels->rx_count = 1;
>> + channels->tx_count = 1;
>> + break;
>> + case VNIC_DEV_INTR_MODE_INTX:
>> + channels->max_combined = 1;
>> + channels->combined_count = 1;
>> + default:
>> + break;
>> + }
>> +}
>> +
>> static const struct ethtool_ops enic_ethtool_ops = {
>> .supported_coalesce_params = ETHTOOL_COALESCE_USECS |
>> ETHTOOL_COALESCE_USE_ADAPTIVE_RX |
>> @@ -632,6 +658,7 @@ static const struct ethtool_ops enic_ethtool_ops = {
>> .set_rxfh = enic_set_rxfh,
>> .get_link_ksettings = enic_get_ksettings,
>> .get_ts_info = enic_get_ts_info,
>> + .get_channels = enic_get_channels,
>> };
>>
>> void enic_set_ethtool_ops(struct net_device *netdev)
>> --
>> 2.43.0
>>
> Reviewed-by: Sai Krishna <saikrishnag@...vell.com>
Powered by blists - more mailing lists