Summary: | DAHLIN-00283: Disable Active State Power Management on PCIe links for DAHDI devices. | ||
Reporter: | Shaun Ruffell (sruffell) | Labels: | |
Date Opened: | 2012-02-29 10:22:28.000-0600 | Date Closed: | 2012-04-03 16:10:51 |
Priority: | Critical | Regression? | No |
Status: | Closed/Complete | Components: | wct4xxp wctdm24xxp wcte12xp |
Versions: | 2.5.0.2 2.6.0 | Frequency of Occurrence | |
Related Issues: | |||
Environment: | Attachments: | ( 0) 0001-wcte12xp-wip-Unbind-self-if-timeout-in-getreg.patch ( 1) 0002-dahdi-Add-dahdi_pci_disable_link_state-for-kernel-2..patch ( 2) 0003-wcte12xp-wctdm24xxp-Disable-ASPM-for-PCIe-devices.patch ( 3) 0004-wct4xxp-Disable-ASPM-for-PCIe-devices.patch | |
Description: | Recently there have been several reports of "Timeout in t1_getreg" on the singlespan, "Version Synchronization Error!" on the quad-spans, and hangs when loading the analog cards or just bad behavior. These errors are always accompanied by interrupts from the card stopping. These errors have been linked to the PCIe links being brought down unexpectedly due to ASPM when running 2.6.18.x kernels on newer platforms. Newer kernels (2.6.32+) contain code that can work around BIOSes which improperly enable ASPM but older kernels do not. These are patches which allow DAHDI to disable ASPM on PCIe cards but they still need some more consideration before committing into trunk and on the branches. I'm parking them on this issue in case people want to try and report their experiences. For some background on the fundamental issue, see [PCIe, power management, and problematic BIOSes|http://lwn.net/Articles/449448/] on LWN.net. | ||
Comments: | By: Shaun Ruffell (sruffell) 2012-02-29 10:32:31.185-0600 You can apply the above patches on the 2.6 branch like... {code} svn co -r 10471 http://svn.asterisk.org/svn/dahdi/linux/branches/2.6 dahdi-linux-2.6-aspm cd dahdi-linux-2.6-aspm curl "https://issues.asterisk.org/jira/secure/attachment/42845/0001-wcte12xp-wip-Unbind-self-if-timeout-in-getreg.patch" | patch -p1 curl "https://issues.asterisk.org/jira/secure/attachment/42846/0002-dahdi-Add-dahdi_pci_disable_link_state-for-kernel-2..patch" | patch -p1 curl "https://issues.asterisk.org/jira/secure/attachment/42847/0003-wcte12xp-wctdm24xxp-Disable-ASPM-for-PCIe-devices.patch" | patch -p1 curl "https://issues.asterisk.org/jira/secure/attachment/42848/0004-wct4xxp-Disable-ASPM-for-PCIe-devices.patch" | patch -p1 {code} They are also sitting on the aspm branch at github.com/sruffell/dahdi-linux if you would rather grab it like: {code} git clone git://github.com/sruffell/dahdi-linux cd dahdi-linux git checkout aspm {code} By: Shaun Ruffell (sruffell) 2012-03-26 16:19:29.642-0500 These patches have been committed onto trunk in [r10557|http://svnview.digium.com/svn/dahdi?view=revision&revision=10557] and on the 2.6 branch in [r10567|http://svnview.digium.com/svn/dahdi?view=revision&revision=10567]. These patches are off by default, but they can be turned on for the wctdm24xxp / wcte12xp drivers by changing {{#undef CONFIG_VOICEBUS_DISABLE_ASPM}} to {{#define CONFIG_VOICEBUS_DISABLE_ASPM}} in drivers/dahdi/voicebus/voicebus.h and in the wct4xxp driver by uncommenting out {{/* #define CONFIG_WCT4XXP_DISABLE_ASPM */}} in drivers/dahdi/wct4xxp/base.c. |