mbox series

[v2,0/5] Improve s0ix flows for systems i219LM

Message ID 20201202161748.128938-1-mario.limonciello@dell.com
Headers show
Series Improve s0ix flows for systems i219LM | expand

Message

Limonciello, Mario Dec. 2, 2020, 4:17 p.m. UTC
commit e086ba2fccda ("e1000e: disable s0ix entry and exit flows for ME systems")
disabled s0ix flows for systems that have various incarnations of the
i219-LM ethernet controller.  This was done because of some regressions
caused by an earlier
commit 632fbd5eb5b0e ("e1000e: fix S0ix flows for cable connected case")
with i219-LM controller.

Performing suspend to idle with these ethernet controllers requires a properly
configured system.  To make enabling such systems easier, this patch
series allows turning on using ethtool.

The flows have also been confirmed to be configured correctly on Dell's Latitude
and Precision CML systems containing the i219-LM controller, when the kernel also
contains the fix for s0i3.2 entry previously submitted here:
https://marc.info/?l=linux-netdev&m=160677194809564&w=2

Patches 3 and 4 will turn the behavior on by default for Dell's CML systems.
Patch 5 allows accessing the value of the flags via ethtool to tell if the
heuristics have turned on s0ix flows, as well as for development purposes
to determine if a system should be added to the heuristics list.

Changes from v1 to v2:
 - Directly incorporate Vitaly's dependency patch in the series
 - Split out s0ix code into it's own file
 - Adjust from DMI matching to PCI subsystem vendor ID/device matching
 - Remove module parameter and sysfs, use ethtool flag instead.
 - Export s0ix flag to ethtool private flags
 - Include more people and lists directly in this submission chain.

Mario Limonciello (4):
  e1000e: Move all s0ix related code into it's own source file
  e1000e: Add Dell's Comet Lake systems into s0ix heuristics
  e1000e: Add more Dell CML systems into s0ix heuristics
  e1000e: Export adapter flags to ethtool

Vitaly Lifshits (1):
  e1000e: fix S0ix flow to allow S0i3.2 subset entry

 drivers/net/ethernet/intel/e1000e/Makefile  |   2 +-
 drivers/net/ethernet/intel/e1000e/e1000.h   |   4 +
 drivers/net/ethernet/intel/e1000e/ethtool.c |  23 ++
 drivers/net/ethernet/intel/e1000e/netdev.c  | 272 +----------------
 drivers/net/ethernet/intel/e1000e/s0ix.c    | 308 ++++++++++++++++++++
 5 files changed, 341 insertions(+), 268 deletions(-)
 create mode 100644 drivers/net/ethernet/intel/e1000e/s0ix.c

--
2.25.1

Comments

Jakub Kicinski Dec. 2, 2020, 7:06 p.m. UTC | #1
On Wed,  2 Dec 2020 10:17:43 -0600 Mario Limonciello wrote:
> commit e086ba2fccda ("e1000e: disable s0ix entry and exit flows for ME systems")
> disabled s0ix flows for systems that have various incarnations of the
> i219-LM ethernet controller.  This was done because of some regressions
> caused by an earlier
> commit 632fbd5eb5b0e ("e1000e: fix S0ix flows for cable connected case")
> with i219-LM controller.
> 
> Performing suspend to idle with these ethernet controllers requires a properly
> configured system.  To make enabling such systems easier, this patch
> series allows turning on using ethtool.
> 
> The flows have also been confirmed to be configured correctly on Dell's Latitude
> and Precision CML systems containing the i219-LM controller, when the kernel also
> contains the fix for s0i3.2 entry previously submitted here:
> https://marc.info/?l=linux-netdev&m=160677194809564&w=2
> 
> Patches 3 and 4 will turn the behavior on by default for Dell's CML systems.
> Patch 5 allows accessing the value of the flags via ethtool to tell if the
> heuristics have turned on s0ix flows, as well as for development purposes
> to determine if a system should be added to the heuristics list.

I don't see PCI or Bjorn Helgaas CCed.

You can drop linux-kernel tho.
Limonciello, Mario Dec. 2, 2020, 7:24 p.m. UTC | #2
> -----Original Message-----
> From: Jakub Kicinski <kuba@kernel.org>
> Sent: Wednesday, December 2, 2020 13:07
> To: Limonciello, Mario
> Cc: Tony Nguyen; intel-wired-lan@lists.osuosl.org; Linux PM; Netdev; Alexander
> Duyck; Sasha Netfin; Aaron Brown; Stefan Assmann; David Miller;
> darcari@redhat.com; Shen, Yijun; Yuan, Perry
> Subject: Re: [PATCH v2 0/5] Improve s0ix flows for systems i219LM
> 
> 
> [EXTERNAL EMAIL]
> 
> On Wed,  2 Dec 2020 10:17:43 -0600 Mario Limonciello wrote:
> > commit e086ba2fccda ("e1000e: disable s0ix entry and exit flows for ME
> systems")
> > disabled s0ix flows for systems that have various incarnations of the
> > i219-LM ethernet controller.  This was done because of some regressions
> > caused by an earlier
> > commit 632fbd5eb5b0e ("e1000e: fix S0ix flows for cable connected case")
> > with i219-LM controller.
> >
> > Performing suspend to idle with these ethernet controllers requires a
> properly
> > configured system.  To make enabling such systems easier, this patch
> > series allows turning on using ethtool.
> >
> > The flows have also been confirmed to be configured correctly on Dell's
> Latitude
> > and Precision CML systems containing the i219-LM controller, when the kernel
> also
> > contains the fix for s0i3.2 entry previously submitted here:
> > https://marc.info/?l=linux-netdev&m=160677194809564&w=2
> >
> > Patches 3 and 4 will turn the behavior on by default for Dell's CML systems.
> > Patch 5 allows accessing the value of the flags via ethtool to tell if the
> > heuristics have turned on s0ix flows, as well as for development purposes
> > to determine if a system should be added to the heuristics list.
> 
> I don't see PCI or Bjorn Helgaas CCed.
> 
> You can drop linux-kernel tho.

Correct, that was intentional that PCI (and Bjorn) weren't added.  Since I came
up with a way to detect platforms without DMI as suggested and this is entirely
controlling a driver behavior within e1000e only on systems with i219-LM I
didn't think that PCI ML was actually needed.

Since you disagree, I'll add Bjorn into this thread.

@Bjorn Helgaas,

Apologies that you're looped in this way rather than directly to the submission,
but the cover letter is above and the patch series can be viewed at this patchwork
if you would like to fetch the mbox and respond to provide any comments.

https://patchwork.ozlabs.org/project/netdev/list/?series=218121

I'll include you directly if any future v3 is necessary.
Bjorn Helgaas Dec. 2, 2020, 8:14 p.m. UTC | #3
On Wed, Dec 02, 2020 at 07:24:28PM +0000, Limonciello, Mario wrote:
> > -----Original Message-----
> > From: Jakub Kicinski <kuba@kernel.org>
> > Sent: Wednesday, December 2, 2020 13:07
> > To: Limonciello, Mario
> > Cc: Tony Nguyen; intel-wired-lan@lists.osuosl.org; Linux PM; Netdev; Alexander
> > Duyck; Sasha Netfin; Aaron Brown; Stefan Assmann; David Miller;
> > darcari@redhat.com; Shen, Yijun; Yuan, Perry
> > Subject: Re: [PATCH v2 0/5] Improve s0ix flows for systems i219LM
> > 
> > 
> > [EXTERNAL EMAIL]
> > 
> > On Wed,  2 Dec 2020 10:17:43 -0600 Mario Limonciello wrote:
> > > commit e086ba2fccda ("e1000e: disable s0ix entry and exit flows for ME
> > systems")
> > > disabled s0ix flows for systems that have various incarnations of the
> > > i219-LM ethernet controller.  This was done because of some regressions
> > > caused by an earlier
> > > commit 632fbd5eb5b0e ("e1000e: fix S0ix flows for cable connected case")
> > > with i219-LM controller.
> > >
> > > Performing suspend to idle with these ethernet controllers requires a
> > properly
> > > configured system.  To make enabling such systems easier, this patch
> > > series allows turning on using ethtool.
> > >
> > > The flows have also been confirmed to be configured correctly on Dell's
> > Latitude
> > > and Precision CML systems containing the i219-LM controller, when the kernel
> > also
> > > contains the fix for s0i3.2 entry previously submitted here:
> > > https://marc.info/?l=linux-netdev&m=160677194809564&w=2
> > >
> > > Patches 3 and 4 will turn the behavior on by default for Dell's CML systems.
> > > Patch 5 allows accessing the value of the flags via ethtool to tell if the
> > > heuristics have turned on s0ix flows, as well as for development purposes
> > > to determine if a system should be added to the heuristics list.
> > 
> > I don't see PCI or Bjorn Helgaas CCed.
> > 
> > You can drop linux-kernel tho.
> 
> Correct, that was intentional that PCI (and Bjorn) weren't added.  Since I came
> up with a way to detect platforms without DMI as suggested and this is entirely
> controlling a driver behavior within e1000e only on systems with i219-LM I
> didn't think that PCI ML was actually needed.
> 
> Since you disagree, I'll add Bjorn into this thread.
> 
> @Bjorn Helgaas,
> 
> Apologies that you're looped in this way rather than directly to the submission,
> but the cover letter is above and the patch series can be viewed at this patchwork
> if you would like to fetch the mbox and respond to provide any comments.
> 
> https://patchwork.ozlabs.org/project/netdev/list/?series=218121
> 
> I'll include you directly if any future v3 is necessary.

No need, I don't think.  AFAICT there's nothing there related to the
PCI core.  Thanks!

Bjorn
Limonciello, Mario Dec. 2, 2020, 8:23 p.m. UTC | #4
> > > On Wed,  2 Dec 2020 10:17:43 -0600 Mario Limonciello wrote:
> > > > commit e086ba2fccda ("e1000e: disable s0ix entry and exit flows for ME
> > > systems")
> > > > disabled s0ix flows for systems that have various incarnations of the
> > > > i219-LM ethernet controller.  This was done because of some regressions
> > > > caused by an earlier
> > > > commit 632fbd5eb5b0e ("e1000e: fix S0ix flows for cable connected case")
> > > > with i219-LM controller.
> > > >
> > > > Performing suspend to idle with these ethernet controllers requires a
> > > properly
> > > > configured system.  To make enabling such systems easier, this patch
> > > > series allows turning on using ethtool.
> > > >
> > > > The flows have also been confirmed to be configured correctly on Dell's
> > > Latitude
> > > > and Precision CML systems containing the i219-LM controller, when the
> kernel
> > > also
> > > > contains the fix for s0i3.2 entry previously submitted here:
> > > > https://marc.info/?l=linux-netdev&m=160677194809564&w=2
> > > >
> > > > Patches 3 and 4 will turn the behavior on by default for Dell's CML
> systems.
> > > > Patch 5 allows accessing the value of the flags via ethtool to tell if
> the
> > > > heuristics have turned on s0ix flows, as well as for development
> purposes
> > > > to determine if a system should be added to the heuristics list.
> > >
> > > I don't see PCI or Bjorn Helgaas CCed.
> > >
> > > You can drop linux-kernel tho.
> >
> > Correct, that was intentional that PCI (and Bjorn) weren't added.  Since I
> came
> > up with a way to detect platforms without DMI as suggested and this is
> entirely
> > controlling a driver behavior within e1000e only on systems with i219-LM I
> > didn't think that PCI ML was actually needed.
> >
> > Since you disagree, I'll add Bjorn into this thread.
> >
> > @Bjorn Helgaas,
> >
> > Apologies that you're looped in this way rather than directly to the
> submission,
> > but the cover letter is above and the patch series can be viewed at this
> patchwork
> > if you would like to fetch the mbox and respond to provide any comments.
> >
> > https://patchwork.ozlabs.org/project/netdev/list/?series=218121
> >
> > I'll include you directly if any future v3 is necessary.
> 
> No need, I don't think.  AFAICT there's nothing there related to the
> PCI core.  Thanks!
> 
> Bjorn

Thanks, appreciate your comments on my terrible grammar.
I'll fix up my commits from the series and submit v3 once I've got some code feedback
from netdev folks.