lkml.org 
[lkml]   [2011]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRe: [PATCH v8]: Improve performance of LZO/plain hibernation
Date
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.

Thanks,
Rafael

---
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);
+#endif

good_end = max_pfn_mapped << PAGE_SHIFT;
-#endif

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

\
 
 \ /
  Last update: 2011-10-13 23:25    [from the cache]
©2003-2011 Jasper Spaans