From: Mario Limonciello <mario.limonciello@dell.com>
To: Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
Tony Nguyen <anthony.l.nguyen@intel.com>,
intel-wired-lan@lists.osuosl.org
Cc: linux-kernel@vger.kernel.org, Linux PM <linux-pm@vger.kernel.org>,
Netdev <netdev@vger.kernel.org>,
Alexander Duyck <alexander.duyck@gmail.com>,
Jakub Kicinski <kuba@kernel.org>,
Sasha Netfin <sasha.neftin@intel.com>,
Aaron Brown <aaron.f.brown@intel.com>,
Stefan Assmann <sassmann@redhat.com>,
David Miller <davem@davemloft.net>,
darcari@redhat.com, Yijun.Shen@dell.com, Perry.Yuan@dell.com,
Mario Limonciello <mario.limonciello@dell.com>,
Yijun Shen <yijun.shen@dell.com>
Subject: [PATCH v2 5/5] e1000e: Export s0ix flags to ethtool
Date: Wed, 2 Dec 2020 10:17:48 -0600 [thread overview]
Message-ID: <20201202161748.128938-6-mario.limonciello@dell.com> (raw)
In-Reply-To: <20201202161748.128938-1-mario.limonciello@dell.com>
This flag can be used for debugging and development purposes
including determining if s0ix flows work properly for a system
not currently recognized by heuristics.
Tested-by: Yijun Shen <yijun.shen@dell.com>
Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>
---
drivers/net/ethernet/intel/e1000e/ethtool.c | 40 +++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c
index 03215b0aee4b..eb683949ebfe 100644
--- a/drivers/net/ethernet/intel/e1000e/ethtool.c
+++ b/drivers/net/ethernet/intel/e1000e/ethtool.c
@@ -23,6 +23,13 @@ struct e1000_stats {
int stat_offset;
};
+static const char e1000e_priv_flags_strings[][ETH_GSTRING_LEN] = {
+#define E1000E_PRIV_FLAGS_S0IX_ENABLED BIT(0)
+ "s0ix-enabled",
+};
+
+#define E1000E_PRIV_FLAGS_STR_LEN ARRAY_SIZE(e1000e_priv_flags_strings)
+
#define E1000_STAT(str, m) { \
.stat_string = str, \
.type = E1000_STATS, \
@@ -1776,6 +1783,8 @@ static int e1000e_get_sset_count(struct net_device __always_unused *netdev,
return E1000_TEST_LEN;
case ETH_SS_STATS:
return E1000_STATS_LEN;
+ case ETH_SS_PRIV_FLAGS:
+ return E1000E_PRIV_FLAGS_STR_LEN;
default:
return -EOPNOTSUPP;
}
@@ -2097,6 +2106,10 @@ static void e1000_get_strings(struct net_device __always_unused *netdev,
p += ETH_GSTRING_LEN;
}
break;
+ case ETH_SS_PRIV_FLAGS:
+ memcpy(data, e1000e_priv_flags_strings,
+ E1000E_PRIV_FLAGS_STR_LEN * ETH_GSTRING_LEN);
+ break;
}
}
@@ -2305,6 +2318,31 @@ static int e1000e_get_ts_info(struct net_device *netdev,
return 0;
}
+static u32 e1000e_get_priv_flags(struct net_device *netdev)
+{
+ struct e1000_adapter *adapter = netdev_priv(netdev);
+ u32 priv_flags = 0;
+
+ if (adapter->flags2 & FLAG2_ENABLE_S0IX_FLOWS)
+ priv_flags |= E1000E_PRIV_FLAGS_S0IX_ENABLED;
+
+ return priv_flags;
+}
+
+static int e1000e_set_priv_flags(struct net_device *netdev, u32 priv_flags)
+{
+ struct e1000_adapter *adapter = netdev_priv(netdev);
+ unsigned int flags2 = adapter->flags2;
+
+ flags2 &= ~FLAG2_ENABLE_S0IX_FLOWS;
+ if (priv_flags & E1000E_PRIV_FLAGS_S0IX_ENABLED)
+ flags2 |= FLAG2_ENABLE_S0IX_FLOWS;
+ if (flags2 != adapter->flags2)
+ adapter->flags2 = flags2;
+
+ return 0;
+}
+
static const struct ethtool_ops e1000_ethtool_ops = {
.supported_coalesce_params = ETHTOOL_COALESCE_RX_USECS,
.get_drvinfo = e1000_get_drvinfo,
@@ -2336,6 +2374,8 @@ static const struct ethtool_ops e1000_ethtool_ops = {
.set_eee = e1000e_set_eee,
.get_link_ksettings = e1000_get_link_ksettings,
.set_link_ksettings = e1000_set_link_ksettings,
+ .get_priv_flags = e1000e_get_priv_flags,
+ .set_priv_flags = e1000e_set_priv_flags,
};
void e1000e_set_ethtool_ops(struct net_device *netdev)
--
2.25.1
next prev parent reply other threads:[~2020-12-02 16:19 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-02 16:17 [PATCH v2 0/5] Improve s0ix flows for systems i219LM Mario Limonciello
2020-12-02 16:17 ` [PATCH v2 1/5] e1000e: fix S0ix flow to allow S0i3.2 subset entry Mario Limonciello
2020-12-02 20:10 ` Bjorn Helgaas
2020-12-02 16:17 ` [PATCH v2 2/5] e1000e: Move all s0ix related code into it's own source file Mario Limonciello
2020-12-02 20:11 ` Bjorn Helgaas
2020-12-02 16:17 ` [PATCH v2 3/5] e1000e: Add Dell's Comet Lake systems into s0ix heuristics Mario Limonciello
2020-12-02 16:17 ` [PATCH v2 4/5] e1000e: Add more Dell CML " Mario Limonciello
2020-12-02 20:12 ` Bjorn Helgaas
2020-12-02 16:17 ` Mario Limonciello [this message]
2020-12-02 19:06 ` [PATCH v2 0/5] Improve s0ix flows for systems i219LM Jakub Kicinski
2020-12-02 19:24 ` Limonciello, Mario
2020-12-02 20:14 ` Bjorn Helgaas
2020-12-02 20:23 ` Limonciello, Mario
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=20201202161748.128938-6-mario.limonciello@dell.com \
--to=mario.limonciello@dell.com \
--cc=Perry.Yuan@dell.com \
--cc=Yijun.Shen@dell.com \
--cc=aaron.f.brown@intel.com \
--cc=alexander.duyck@gmail.com \
--cc=anthony.l.nguyen@intel.com \
--cc=darcari@redhat.com \
--cc=davem@davemloft.net \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=jeffrey.t.kirsher@intel.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=sasha.neftin@intel.com \
--cc=sassmann@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox