From: Maxim Levitsky on
On Mon, 2010-06-21 at 13:37 -0700, Luis R. Rodriguez wrote:
> On Mon, Jun 21, 2010 at 1:16 PM, Maxim Levitsky <maximlevitsky(a)gmail.com> wrote:
> > Luis, let me explain again, exactly the situation:
> >
> > First of all AR5001 and AR5001X devices (former was usualy listed as
> > AR2425, and I have it, later I don't know about much), don't work well
> > with ASPM L0s enabled.
>
> Thanks for the clarification. David, do you see this as well on your end?
>
> > I told that many times, but I tell again.
> > As soon as card it put on medium to high transmit load
> > (for example even if transmission consists mostly of TCP ACK packets),
> > it dies.
> >
> > Usualy it will stop transmitting, and then after few seconds it will
> > send RXORN intrrupt to the host, even though the channel was idle.
> > (Tested by sending a stream of UDP packets on channel that is neighbor
> > free).
> >
> > I didn't see it, but some users reported seeing jumbo frames at this
> > time as well.
> > Overall it doesn't matter because card just goes south.
> >
> > A reset sometimes brings card to life, sometimes causes another storm of
> > RXORN and sometimes just results in quiet dead card.
> > A next reset might bring it to life, or not.
> >
> > Card (at least mine) advertises its as a 'pre pci 1.1 device'.
> > Therefore if I enable CONFIG_PCIEASPM, the pci core will automaticly
> > disable ASPM (both L0s and L1) on this card.
> > I won't be surprised that windows does the same.
>
> I am not sure when L0s was enabled as per the spec as mandatory, I
> thought it was optional. Interesting to hear this behavior on Linux
> with CONFIG_PCIEASPM. That Kconfig description and code really need
> some spit shining.
>
> > Therefore the patch I sent it useless because it only works when
> > CONFIG_PCIEASPM is enabled.
>
> How so ? Your patch disables L0s, I can use ASPM with L0s and L1 with
> or without CONFIG_PCIEASPM. If I added your calls to ath9k I would
> disable L0s.
Because due to card advertisement, CONFIG_PCIEASPM already disables L0s
and L1 on the card, therefore my patch does nothing.



Best regards,
Maxim Levitsky

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Matthew Garrett on
On Mon, Jun 21, 2010 at 01:39:07PM -0700, Luis R. Rodriguez wrote:
> Last I reviewed CONFIG_PCIEASPM won't buy you *anything* other than
> debugging knobs. With it you can force all devices to enable ASPM
> completely on or disable it. Both of which I think are not really
> useful and instead should be done in userspace given that if you are
> testing ASPM you likely want to test only one one device and its
> respective root complex, not all at the same time.

It buys you enabling of ASPM on devices that the BIOS hasn't configured,
which is legitimate and useful.

--
Matthew Garrett | mjg59(a)srcf.ucam.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Luis R. Rodriguez on
On Tue, Jun 22, 2010 at 9:31 AM, Matthew Garrett <mjg(a)redhat.com> wrote:
> On Mon, Jun 21, 2010 at 01:39:07PM -0700, Luis R. Rodriguez wrote:
>> Last I reviewed CONFIG_PCIEASPM won't buy you *anything* other than
>> debugging knobs. With it you can force all devices to enable ASPM
>> completely on or disable it. Both of which I think are not really
>> useful and instead should be done in userspace given that if you are
>> testing ASPM you likely want to test only one one device and its
>> respective root complex, not all at the same time.
>
> It buys you enabling of ASPM on devices that the BIOS hasn't configured,
> which is legitimate and useful.

Sure, I agree with that, but it also will enable ASPM for *all*
devices which have the capability which IMHO is a terrible idea for
users when all they want to do is enable ASPM for one device. Instead
I recommend users to enable ASPM for their devices selectively and
from userspace.

Luis
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Matthew Garrett on
On Tue, Jun 22, 2010 at 09:48:40AM -0700, Luis R. Rodriguez wrote:

> Sure, I agree with that, but it also will enable ASPM for *all*
> devices which have the capability which IMHO is a terrible idea for
> users when all they want to do is enable ASPM for one device. Instead
> I recommend users to enable ASPM for their devices selectively and
> from userspace.

Why would you only want to enable ASPM for one device?

--
Matthew Garrett | mjg59(a)srcf.ucam.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Luis R. Rodriguez on
On Tue, Jun 22, 2010 at 9:52 AM, Matthew Garrett <mjg59(a)srcf.ucam.org> wrote:
> On Tue, Jun 22, 2010 at 09:48:40AM -0700, Luis R. Rodriguez wrote:
>
>> Sure, I agree with that, but it also will enable ASPM for *all*
>> devices which have the capability which IMHO is a terrible idea for
>> users when all they want to do is enable ASPM for one device. Instead
>> I recommend users to enable ASPM for their devices selectively and
>> from userspace.
>
> Why would you only want to enable ASPM for one device?

ASPM doesn't always work for all devices even if they do advertise
ASPM capability so turning it on selectively by device is what I
recommend since otherwise you may get hangs and you will then have to
do the selective enabling. Furthermore laptops tend to disable ASPM
for cards not built-in to it, an example is Cardbus slots or internal
PCI-E slots. This is often done because to enable ASPM for some cards
you often need to tune the host controller in addition to enabling
ASPM for the endpoint, so this will vary depending on vendor, chipset,
and host controller combination. This is documentation that the OEM /
ODM typically end up getting, but not end users.

So given the complexity its best to be selective about it on each
platform until you verify ASPM works well for all devices present.

Luis
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/