Message ID | 1265912094-4705-1-git-send-email-mjg@redhat.com |
---|---|
State | Awaiting Upstream, archived |
Delegated to: | David Miller |
Headers | show |
On Thursday, February 11, 2010 10:15 AM, Matthew Garrett wrote: > The 82537 errata and comment in e1000e_disable_l1aspm both agree that > only 82537L devices are affected. Limit the L1 disable to them. > > Signed-off-by: Matthew Garrett <mjg@redhat.com> > --- > drivers/net/e1000e/netdev.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c > index 57f149b..27eed81 100644 > --- a/drivers/net/e1000e/netdev.c > +++ b/drivers/net/e1000e/netdev.c > @@ -4642,6 +4642,10 @@ static void e1000e_disable_l1aspm(struct > pci_dev *pdev) > * Unfortunately this feature saves about 1W power consumption when > * active. > */ > + > + if (pdev->device != E1000_DEV_ID_82573L) > + return; > + > pos = pci_find_capability(pdev, PCI_CAP_ID_EXP); > pci_read_config_word(pdev, pos + PCI_EXP_LNKCTL, &val); > if (val & 0x2) { Hi Matthew, Exactly which erratum are you referring to? Erratum 17 in the 82573 Specification Update? If that is the case, I see the possibility of another interpretation of the erratum which suggests the possibility of the same issue on other variants of the 82573 when using standard frame sizes and ASPM enabled. Not to mention, I believe there may be other parts (82574 perhaps) that will have issues with L1 ASPM enabled. I will follow-up with the folks who did the investigation that resulted in the erratum in order to get a clearer picture of all this, and take a look into other parts that may likewise be affected. Thanks, Bruce.-- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Feb 19, 2010 at 01:53:01PM -0800, Allan, Bruce W wrote: > Exactly which erratum are you referring to? Erratum 17 in the 82573 > Specification Update? If that is the case, I see the possibility of > another interpretation of the erratum which suggests the possibility > of the same issue on other variants of the 82573 when using standard > frame sizes and ASPM enabled. Not to mention, I believe there may be > other parts (82574 perhaps) that will have issues with L1 ASPM > enabled. I will follow-up with the folks who did the investigation > that resulted in the erratum in order to get a clearer picture of all > this, and take a look into other parts that may likewise be affected. Ah, yes - I see that it could be interpreted that way. The description seems to suggest that it's only relevant if ERT is enabled, which is required for jumbo frames. I'm not entirely clear on whether ERT is enabled in other circumstances? If not, we ought to be able to limit this to the L device - if not, it should be done on E and V as well. The 82574 specification update doesn't mention any ASPM errata, but if you're able to check then that would be great. My main aim here is to try to get it turned back on on hardware where this works, since it's a measurable power saving.
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index 57f149b..27eed81 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c @@ -4642,6 +4642,10 @@ static void e1000e_disable_l1aspm(struct pci_dev *pdev) * Unfortunately this feature saves about 1W power consumption when * active. */ + + if (pdev->device != E1000_DEV_ID_82573L) + return; + pos = pci_find_capability(pdev, PCI_CAP_ID_EXP); pci_read_config_word(pdev, pos + PCI_EXP_LNKCTL, &val); if (val & 0x2) {
The 82537 errata and comment in e1000e_disable_l1aspm both agree that only 82537L devices are affected. Limit the L1 disable to them. Signed-off-by: Matthew Garrett <mjg@redhat.com> --- drivers/net/e1000e/netdev.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)