Bug 7163
Summary: | Memory leak with LG-81 motherboard | ||
---|---|---|---|
Product: | ACPI | Reporter: | Roger Lucas (roger) |
Component: | ACPICA-Core | Assignee: | acpi_aml-interpreter |
Status: | REJECTED DUPLICATE | ||
Severity: | high | CC: | acpi-bugzilla, trenn |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.17.13 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: | DSDT information |
Description
Roger Lucas
2006-09-16 05:04:33 UTC
Created attachment 9029 [details]
DSDT information
Result from "cat /proc/acpi/dsdt" > dsdt-bios15.dat
Actually Thermal providing AML code in the DSDT contains a number of places mentioned in the Bug 6514 as provoking memory leak. Let's consider the workaround proposed by the FreeBSD guys. The following updates of the DSDT could avoid memory leak of Bug 6514 kind without the appropriate AML interpreter fix: Method (STOS, 3, NotSerialized) { Store (GBYT (0x4E), Local0) And (Local0, 0xF8, Local1) // Or (Local1, 0x01, Local1) Store (Or (Local1, 0x01), Local1) SBYT (0x4E, Local1) SBYT (0x55, Arg1) SBYT (0x56, Arg0) SBYT (0x4E, Local0) } Method (STHY, 3, NotSerialized) { Store (GBYT (0x4E), Local0) And (Local0, 0xF8, Local1) // Or (Local1, 0x01, Local1) Store (Or (Local1, 0x01), Local1) SBYT (0x4E, Local1) SBYT (0x53, Arg1) SBYT (0x54, Arg0) SBYT (0x4E, Local0) } Method (RTMP, 0, NotSerialized) { Store (GBYT (0x4E), Local0) And (Local0, 0xF8, Local1) // Or (Local1, 0x01, Local1) Store (Or (Local1, 0x01), Local1) SBYT (0x4E, Local1) Store (GBYT (0x50), Local1) Store (GBYT (0x51), Local2) SBYT (0x4E, Local0) ShiftLeft (Local1, 0x08, Local1) Or (Local1, Local2, Local3) ShiftRight (Local3, 0x07, Local3) ShiftLeft (Local3, 0x02, Local1) Add (Local3, Local1, Local3) Add (Local3, 0x0AAC, Local3) If (LGreater (Local3, 0x0E8A)) { Store (0x0AAC, Local3) } Return (Local3) } Method (SBEP, 2, NotSerialized) { Store (GBYT (0x4E), Local0) // And (Local0, 0xF8, Local1) Store (And (Local0, 0xF8), Local1) SBYT (0x4E, Local1) Store (GBYT (0x56), Local1) And (Local1, Arg0, Local1) // Or (Local1, Arg1, Local1) Store (Or (Local1, Arg1), Local1) SBYT (0x56, Local1) SBYT (0x4E, Local0) Return (Local1) } ... Method (RFAN, 0, NotSerialized) { Store (GBYT (0x4E), Local0) // And (Local0, 0xF8, Local1) Store (And (Local0, 0xF8), Local1) SBYT (0x4E, Local1) GBYT (0x41) GBYT (0x42) Store (GBYT (0x43), Local1) Not (Local1, Local1) And (Local1, 0xC0, Local2) Store (GBYT (0x44), Local1) Not (Local1, Local1) And (Local1, 0x08, Local1) Or (Local2, Local1, Local2) Store (GBYT (0x46), Local1) Not (Local1, Local1) And (Local1, 0x06, Local1) Or (Local2, Local1, Local2) And (Local0, 0xF8, Local1) // Or (Local1, 0x04, Local1) Store (Or (Local1, 0x04), Local1) SBYT (0x4E, Local1) Store (GBYT (0x59), Local1) And (Local1, 0xC0, Local3) Store (GBYT (0x5A), Local1) And (Local1, 0x08, Local1) Or (Local1, Local3, Local3) Store (GBYT (0x5A), Local1) And (Local1, 0x04, Local1) ShiftRight (Local1, 0x01, Local1) Or (Local1, Local3, Local3) Store (GBYT (0x5B), Local1) And (Local1, 0x80, Local1) ShiftRight (Local1, 0x06, Local1) Or (Local1, Local3, Local3) And (Local2, Local3, Local2) SBYT (0x4E, Local0) Return (Local2) } Linux version 2.6.17.13 does not contain the memory leak fix proposed in Bug 6514. It is certainly presented since 2.6.18.rc1 Hi Fiodor, Thanks for all your work tracking this down. I checked the code in the 2.6.17.13 tree and came to the same conclusion about the patch not being there :-) When you say "It is certainly presented since 2.6.18.rc1", do you mean that the patch is applied to the 2.6.18.rc1 Linus kernel release or do you mean that the problem still exists with the code in the 2.6.18.rc1 Linus kernel release? Best regards, Roger Hi Roger, I meant the patch ;-) Thanks, Fiodor Hi Fiodor, These DSDT code changes fix the leak. The ACPI works perfectly now with 2.6.17.13. Thank you for all your help on this. BR, Roger Please verify that 2.6.18-rc7 has no leak -- when running the un-modified DSDT. On the assumption the answer is "yes", closing this as a duplicate of bug 6514, which will surely need to be back-ported to 2.6.17.stable. Bug not present in 2.6.18 with the original DSDT from the BIOS. |