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

Bug#545517: Intel/KMS/suspend-to-disk bug still present on 2.6.34



Hi Vincent,

On Mon, Jun 14, 2010 at 22:15:17 +0200, Vincent Danjean wrote:

>   Since the introduction of KMS, suspend-to-disk never works reliably
> on my laptop. Todays, it is so unstable that I do not try it. The
> biggest problem is that, when it does not work, the session is restored
> but (I think) memory corruption occurs. So the symptom can differ from
> time to time.
>   My "classical" symptom is applications crashing or refusing to be
> load (with a segv in libc when trying to run "ls" for example).
> In these cases, I immediately hard-switch-off the laptop so that
> in-memory corruption was not writen-back on disk (I had several
> difficult fsck before I do that).
> 
>   I'm not sure that this is related to KMS but it begins to occurs when
> KMS has been introduced and (in the first time, I do not recheck recently),
> I have no problems when I disabled KMS.
> 
>   #534422 can be linked to this bug.
> 
>   This bug is also reported to xorg:
> https://bugs.freedesktop.org/show_bug.cgi?id=23836
> 
This may be fixed by commit 985b823b919273fe1327d56d2196b4f92e5d0fae
(included below).

Can you test it?

commit 985b823b919273fe1327d56d2196b4f92e5d0fae
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Fri Jul 2 10:04:42 2010 +1000

    drm/i915: fix hibernation since i915 self-reclaim fixes
    
    Since commit 4bdadb9785696439c6e2b3efe34aa76df1149c83 ("drm/i915:
    Selectively enable self-reclaim"), we've been passing GFP_MOVABLE to the
    i915 page allocator where we weren't before due to some over-eager
    removal of the page mapping gfp_flags games the code used to play.
    
    This caused hibernate on Intel hardware to result in a lot of memory
    corruptions on resume.  See for example
    
      http://bugzilla.kernel.org/show_bug.cgi?id=13811
    
    Reported-by: Evengi Golov (in bugzilla)
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Tested-by: M. Vefa Bicakci <bicave@superonline.com>
    Cc: stable@kernel.org
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 9ded3da..0743858 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2239,7 +2239,7 @@ i915_gem_object_get_pages(struct drm_gem_object *obj,
 	mapping = inode->i_mapping;
 	for (i = 0; i < page_count; i++) {
 		page = read_cache_page_gfp(mapping, i,
-					   mapping_gfp_mask (mapping) |
+					   GFP_HIGHUSER |
 					   __GFP_COLD |
 					   gfpmask);
 		if (IS_ERR(page))

Cheers,
Julien

Attachment: signature.asc
Description: Digital signature


Reply to: