Re: suspend/resume memory corruption on Dell Latitude D830

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I've made a significant partial/temporary fix.
I was able to use the memmap= kernel cmdline options to apparently keep the kernel from using the memory that the suspend/resume process is erroneously writing to: kernel /vmlinuz-2.6.24.3-trc ro root=LABEL=/3 memmap=exactmap memmap=636K@0 memmap=4K$636K memmap=3046M@1M memmap=1682K$3668334K memmap=64M$3094M memmap=64K$4076M memmap=16K$4174944K memmap=448K$4174976K memmap=24K$4175488K memmap=64K$4078M memmap=2M$4094M memmap=511M@4097M x12345678

This results in the following output from the kernel:
...
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
 BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved)
 BIOS-e820: 0000000000100000 - 00000000dfe5b800 (usable)
 BIOS-e820: 00000000dfe5b800 - 00000000e0000000 (reserved)
 BIOS-e820: 00000000f4000000 - 00000000f8000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fed18000 - 00000000fed1c000 (reserved)
 BIOS-e820: 00000000fed20000 - 00000000fed90000 (reserved)
 BIOS-e820: 00000000feda0000 - 00000000feda6000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee10000 (reserved)
 BIOS-e820: 00000000ffe00000 - 0000000100000000 (reserved)
 BIOS-e820: 0000000100002000 - 0000000120000000 (usable)
Entering add_active_range(0, 0, 159) 0 entries of 256 used
Entering add_active_range(0, 256, 917083) 1 entries of 256 used
Entering add_active_range(0, 1048578, 1179648) 2 entries of 256 used
end_pfn_map = 1179648
user-defined physical RAM map:
 user: 0000000000000000 - 000000000009f000 (usable)
 user: 000000000009f000 - 00000000000a0000 (reserved)
 user: 0000000000100000 - 00000000be700000 (usable)
 user: 00000000dfe5b800 - 00000000e0000000 (reserved)
 user: 00000000c1600000 - 00000000c5600000 (reserved)
 user: 00000000fec00000 - 00000000fec10000 (reserved)
 user: 00000000fed18000 - 00000000fed1c000 (reserved)
 user: 00000000fed20000 - 00000000fed90000 (reserved)
 user: 00000000feda0000 - 00000000feda6000 (reserved)
 user: 00000000fee00000 - 00000000fee10000 (reserved)
 user: 00000000ffe00000 - 0000000100000000 (reserved)
 user: 0000000100100000 - 0000000120000000 (usable)
Entering add_active_range(0, 0, 159) 0 entries of 256 used
Entering add_active_range(0, 256, 780032) 1 entries of 256 used
Entering add_active_range(0, 1048832, 1179648) 2 entries of 256 used
end_pfn_map = 1179648
...

With this, I loose near 500MB but my tests pass -- I do not see any memory corruption after the resume. I could get a lot of the 500MB back if I did not max out the kernel cmdline.
Apparently the problem area is just after be700000.

My 8 month battle seems to have turned into a linux/linux-acpi success story. Thanks for the kernel cmdline options. I wonder if Vista could do this?

Thanks,
Ron

Ron Rechenmacher wrote:
More information on is at
    http://fnapcf.fnal.gov/~ron/dell_susp_3.5G_2blocks.txt
and http://fnapcf.fnal.gov/~ron/dell_susp_3.5G_2blocks.dmesg.txt

Is there a way to determine which acpi mapping/allocation is not being honored or is missing and/or using some memmap= kernel param to get the kernel to stay away from the memory being changed during suspend/resume? (any other kernel param that might be useful?)

Thanks,
Ron

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux