Linux script to enable ASPM / Documentation for ASPM

From: Luis R. Rodriguez
Date: Mon Jun 21 2010 - 18:59:01 EST


ASPM was a dark magic when I first started looking at it. Some of it
is still dark but what I was able to understand with the help of
colleagues at work I've managed to stash here for now:

http://wireless.kernel.org/en/users/Documentation/ASPM

Then enabling ASPM was also quite a challenge and I always had to go
back and revisit the procedures, so to help with that instead I wrote
a script to do this for you correctly:

http://kernel.org/pub/linux/kernel/people/mcgrof/aspm/enable-aspm

Its sha1sum is: f5804fdab512065f219e55addf78c6654f1fc045

If any of that looks confusing refer to the documentation above.

There's a TODO there, so I'll get to the different items when I can
but if you like feel free to send me patches as well:

TODO: patches are welcomed to me until we submit to to
PCI Utilities upstream.

This can be improved by in this order:

* Accept arguments for endpoint and root complex address, and
desired ASPM settings
* Look for your ASPM capabilities by quering your
LnkCap register first. Use these values to let you
select whether you want to enable only L1 or L1 & L0s
* Searching for your root complex for you
* Search for your PCI device by using the driver
* Disable your driver and ask to reboot ?
* Rewrite in C
* Write ncurses interface [ wishlist ]
* Write GTK/QT interface [ wishlist ]
* Submit upstream as aspm.c to the PCI Utilities, which are
maintained by Martin Mares <mj@xxxxxx>

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