Bug 739343

Summary: RHEL6.2 kernel-2.6.32-182.el6: System hangs while entering hibernation
Product: Red Hat Enterprise Linux 6 Reporter: Kiran Thirumalai <ravikiran.thirumalai>
Component: kernelAssignee: Red Hat Kernel Manager <kernel-mgr>
Status: CLOSED DUPLICATE QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.3CC: aaron.lu, alex.he, arindam.nath, henry.su, ravikiran.thirumalai, sgruszka, shane.huang, wgomerin
Target Milestone: beta   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 738144 Environment:
Last Closed: 2011-09-19 09:31:06 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 738144    
Bug Blocks: 688945    

Description Kiran Thirumalai 2011-09-17 21:37:16 UTC
+++ This bug was initially created as a clone of Bug #738144 +++

Created attachment 523060 [details]
rhel6_fix_system_cannot_enter_hibernation

Description of problem:
While trying to enter hibernation (S4), system hangs.

Version-Release number of selected component (if applicable):
kernel-2.6.32-182.el6

How reproducible:
Always

Steps to Reproduce:
1. Default install RHEL6.
2. Install kernel rpm kernel-2.6.32-182.el6.x86_64.rpm
3. Boot into the new kernel.
4. Issue the command "pm-hibernate" to enter S4.
  
Actual results:
System hangs before entering hibernation.

Expected results:
System should be able to enter hibernation and be able to resume back without any issues.

Additional info:
Using the default kernel-2.6.32-71.el6 of RHEL6.0, the system enters and resumes fine from hibernation. The issue only occurs with updated kernel-2.6.32-182.el6.

--- Additional comment from arindam.nath on 2011-09-14 02:39:24 EDT ---

Excerpt from the patch --

This patch fixes the issue when the system hangs while entering
hibernation.

The issue occurs when system tries to save NVS memory region(s).
During system boot, acpi_os_map_memory() marks the pages belonging
to the NVS regions as _PAGE_CACHE_WB, but during hibernation, the
pages are checked against _PAGE_CACHE_UC_MINUS, which in turn makes
ioremap() return a NULL pointer. This results in kernel panic when
system accesses this NULL pointer, and the system hangs.

The solution is to make sure we mark the pages correctly during
OS boot. So we use ioremap() instead of ioremap_cache() to set
the memory type field appropriately.

Comment 2 Stanislaw Gruszka 2011-09-19 09:31:06 UTC

*** This bug has been marked as a duplicate of bug 731546 ***