[lkml]   [2011]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    SubjectRe: [PATCH v8]: Improve performance of LZO/plain hibernation
    On Thursday, October 13, 2011, Bojan Smojver wrote:
    > ------- Original message -------
    > > From: Rafael J. Wysocki
    > >> I get a kernel panic on a test box using a x86_64 kernel with this patch
    > >> applied.
    > >
    > > The panic happens during late resume, when trying to switch to the
    > > hibernated
    > > kernel.
    > In an effort to test this whole thing a bit more, I took today's kernel
    > from Linus' repo and applied v11 of my patch. I compiled this on a single
    > cpu machine this time, with 768 MB of memory (in today's terms, this laptop
    > would not pass as a smartphone :-), running F-16 beta.. The system has
    > radeon graphics (my other system, where I initially developed the patch,
    > has intel). Also, this was a 32-bit box, as opposed to my other system,
    > which is 64-bit.
    > I was getting kernel trouble on repeated hibernate/thaw cycles on both
    > systems when KMS was enabled. With nomodeset passed into the kernel, both
    > systems would go through 50+ cycles (this was my test loop) with no
    > trouble. Whether my patch was applied or not didn't matter - I was getting
    > trouble with Fedora supplied kernels as well, after a few cycles.
    > So, I don't know for sure, but it seems to me something is amiss in KMS
    > when it comes to hibernation.

    If your system is 64-bit, then the patch below may help.


    arch/x86/mm/init.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    Index: linux/arch/x86/mm/init.c
    --- linux.orig/arch/x86/mm/init.c
    +++ linux/arch/x86/mm/init.c
    @@ -63,9 +63,9 @@ static void __init find_early_table_spac
    #ifdef CONFIG_X86_32
    /* for fixmap */
    tables += roundup(__end_of_fixed_addresses * sizeof(pte_t), PAGE_SIZE);

    good_end = max_pfn_mapped << PAGE_SHIFT;

    base = memblock_find_in_range(start, good_end, tables, PAGE_SIZE);
    if (base == MEMBLOCK_ERROR)

     \ /
      Last update: 2011-10-13 23:25    [W:0.021 / U:30.792 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site