| Summary: | Linux guest failed in S4 after memory balloon to a small memory | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Joy Pu <ypu> |
| Component: | qemu-kvm | Assignee: | Amit Shah <amit.shah> |
| Status: | CLOSED WONTFIX | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | high | Docs Contact: | |
| Priority: | medium | ||
| Version: | 6.3 | CC: | acathrow, amit.shah, areis, bsarathy, flang, michen, mkenneth, qzhang, qzhou, rhod, shuang, virt-maint |
| Target Milestone: | rc | Keywords: | Reopened |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2012-07-27 10:48:11 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Bug Depends On: | |||
| Bug Blocks: | 580954, 720669, 761491 | ||
|
Description
Joy Pu
2012-03-23 10:28:21 UTC
Looks like the suspend process itself doesn't succeed because it doesn't have enough RAM to go ahead. Why do you think this is a bug? And why in the qemu-kvm component? As talked with Amit, add the details for this bug and open it again. 1. boot up a rhel 6.3 guest with 10G memory 2. balloon the memory to a value smaller than 1/3 total memory, such as 4G. In the same time don't run any program in guest. The memory used in guest is just 500~600M for a guest with desktop(Make sure there should be enough memory for S4). 3. do s4 echo disk > /sys/power/state At the same time do the same operate in Windows guest or before balloon. It will succeed. Linux pre-allocates memory for the resume image to be stored. If there's not enough free RAM, that image creation fails. This happens when the image size is going to be more than the available free RAM. What's happening in these examples is that the kernel doesn't have access to enough memory to store its resume image, and hence fails hibernation. The reason to re-open the bug was to check if we were not freeing pages from the balloon driver upon hibernation start. I confirm that's not what's happening. Linux pre-allocates RAM for the resume image, then suspends devices (where we free the RAM in our balloon driver), and then Linux creates the actual resume image. We can't deflate the balloon before this RAM allocation happens (there's no callback for that currently). So closing this again. |