Bug 839143

Summary: [virtio-win][balloon]windows2003 guest balloon size restore the original value after reboot guest
Product: Red Hat Enterprise Linux 6 Reporter: langfang <flang>
Component: virtio-winAssignee: Vadim Rozenfeld <vrozenfe>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: high    
Version: 6.3CC: acathrow, bcao, bsarathy, chayang, dawu, dyasny, flang, juzhang, mdeng, qzhang, rhod, sluo
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
In the previous version Windows balloon driver didn't keep the current balloon size between hibernation/resume and restarts. The problem was fixed by keeping the current balloon size between restarts and hibernation/resume cycles and adjusting the balloon size according to this value.
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-21 10:39:59 UTC Type: Bug
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:    
Bug Blocks: 840699    

Description langfang 2012-07-11 05:46:13 UTC
Description of problem:

change the win2003 guest balloon size,then reboot guest,the balloon size  restore the original value.

Version-Release number of selected component (if applicable):
# uname -r
2.6.32-272.el6.x86_64

# rpm -q qemu-kvm
qemu-kvm-0.12.1.2-2.295.el6.x86_64

virtio-win:  virtio-win-prewhql-0.1-30


How reproducible:
60%

Steps to Reproduce:
1.boot windows2003 guest 
2.(qemu) balloon 800
(qemu) info balloon
balloon: actual=940
(qemu) info balloon
balloon: actual=840
(qemu) info balloon
balloon: actual=800
(qemu) info balloon
balloon: actual=800
(qemu) info balloon
balloon: actual=800

3.(qemu) system_reset
4.after guest boot up

(qemu) info balloon
balloon: actual=2048
(qemu) info balloon
balloon: actual=2048
(qemu) info balloon
balloon: actual=2048
(qemu) info balloon
balloon: actual=2048


  
Actual results:

the balloon size restore the original value 
 
Expected results:
the balloon size shoud be the same as the changed value

Additional info:when upgrate the balloon driver ,can also hit the problem.

when i use 'virtio-win-1.4.0-1.el6.noarch' update balloon driver-->then change balloon size from 2048 to 2000-->update balloon driver use 'virtio-win-prewhql-0.1-30' --->reboot guest--->balloon size change to 2048.

Comment 2 langfang 2012-07-11 06:30:12 UTC
another addinfo:

test this  with  version 'virtio-win-1.4.0-1.el6.noarch'
not hit this issue.maybe is a regression problem.

Comment 4 Vadim Rozenfeld 2012-07-11 07:11:48 UTC
(In reply to comment #0)
> Description of problem:
> 
> change the win2003 guest balloon size,then reboot guest,the balloon size 
> restore the original value.
> 
> Version-Release number of selected component (if applicable):
> # uname -r
> 2.6.32-272.el6.x86_64
> 
> # rpm -q qemu-kvm
> qemu-kvm-0.12.1.2-2.295.el6.x86_64
> 
> virtio-win:  virtio-win-prewhql-0.1-30
> 
> 
> How reproducible:
> 60%
> 
> Steps to Reproduce:
> 1.boot windows2003 guest 
> 2.(qemu) balloon 800
> (qemu) info balloon
> balloon: actual=940
> (qemu) info balloon
> balloon: actual=840
> (qemu) info balloon
> balloon: actual=800
> (qemu) info balloon
> balloon: actual=800
> (qemu) info balloon
> balloon: actual=800
> 
> 3.(qemu) system_reset

So it was restart not reboot, correct?
Could you please check if Windows balloon
behaves differently from Linux on this scenario?

Thank you,
Vadim.

> 4.after guest boot up
> 
> (qemu) info balloon
> balloon: actual=2048
> (qemu) info balloon
> balloon: actual=2048
> (qemu) info balloon
> balloon: actual=2048
> (qemu) info balloon
> balloon: actual=2048
> 
> 
>   
> Actual results:
> 
> the balloon size restore the original value 
>  
> Expected results:
> the balloon size shoud be the same as the changed value
> 
> Additional info:when upgrate the balloon driver ,can also hit the problem.
> 
> when i use 'virtio-win-1.4.0-1.el6.noarch' update balloon driver-->then
> change balloon size from 2048 to 2000-->update balloon driver use
> 'virtio-win-prewhql-0.1-30' --->reboot guest--->balloon size change to 2048.

Comment 5 langfang 2012-07-12 03:25:36 UTC
(In reply to comment #4)
> (In reply to comment #0)
> > Description of problem:
> > 
> > change the win2003 guest balloon size,then reboot guest,the balloon size 
> > restore the original value.
> > 
> > Version-Release number of selected component (if applicable):
> > # uname -r
> > 2.6.32-272.el6.x86_64
> > 
> > # rpm -q qemu-kvm
> > qemu-kvm-0.12.1.2-2.295.el6.x86_64
> > 
> > virtio-win:  virtio-win-prewhql-0.1-30
> > 
> > 
> > How reproducible:
> > 60%
> > 
> > Steps to Reproduce:
> > 1.boot windows2003 guest 
> > 2.(qemu) balloon 800
> > (qemu) info balloon
> > balloon: actual=940
> > (qemu) info balloon
> > balloon: actual=840
> > (qemu) info balloon
> > balloon: actual=800
> > (qemu) info balloon
> > balloon: actual=800
> > (qemu) info balloon
> > balloon: actual=800
> > 
> > 3.(qemu) system_reset
> 
> So it was restart not reboot, correct?
> Could you please check if Windows balloon
> behaves differently from Linux on this scenario?
> 
> Thank you,
> Vadim.

hi! Vadim
 i both 'used (qemu) system_reset' and 'reboot' to test this issue.
both hit this probelm.

Comment 6 langfang 2012-07-12 03:37:46 UTC
test 2 senarios for this bug.
version:
host:
# uname -r
2.6.32-285.el6.x86_64

# rpm -q qemu-kvm
qemu-kvm-0.12.1.2-2.295.el6.x86_64

senario 1)

guest: kernel:2.6.32-285.el6.x86_64

test on rhel6.3 guest five times for this senario

boot rhel6.3 guest-->change balloon size ---> reboot guest --->the balloon size changed to the correct value.


senario 2)

guest:kernel 2.6.18-325.el5

test on rhel5.8 guest 

boot rhel5.8 guest--->change balloon size--->reboot guest ---> the balloon size changed to the correct value .
  

addinfo,
1)all the tests both use '(qemu)system_reset' and 'reboot' guest to test.
2)test win2008r2-64 guest five times ,three times can hit this probelm.

Comment 7 dawu 2012-07-30 03:20:01 UTC
Also hit the similar issue on win2k8-64 after resume from S3, following is the details:

kernel-2.6.32-279.el6.x86_64
qemu-kvm-0.12.1.2-2.295.el6.x86_64
virtio-win-prewhql-30

Steps:

1. Start guest with CLI:
   /usr/libexec/qemu-kvm -m 7G -smp 3 -cpu Penryn,+x2apic -usb -device usb-tablet -drive file=win2k8-64-killed.qcow2,format=qcow2,if=none,id=drive-ide0-0-0,werror=stop,rerror=stop,cache=none -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -netdev tap,id=hostnet0,script=/etc/qemu-ifup0 -device e1000,netdev=hostnet0,mac=90:10:1a:75:50:03,bus=pci.0,addr=0x4 -uuid ee19a2c1-ecf0-4073-bcf0-08304313f391 -rtc base=localtime -no-kvm-pit-reinjection -monitor stdio -name win2k8-64-fun -spice disable-ticketing,port=5931 -vga qxl -bios /usr/share/seabios/bios-pm.bin -device virtio-balloon-pci,addr=0x6,bus=pci.0,id=balloon1 -chardev socket,id=111a,path=/tmp/monitor-win2k8-64-balloon-30,server,nowait -mon chardev=111a,mode=readline

2. evict memory:
(qemu) balloon 1024
(qemu) info balloon
balloon: actual=1024

3. sleep guest

4. Wake up guest and check the memory:
(qemu) info balloon
balloon: actual=7168

Actually result:
Memory come back to the Max value 7168M instead of 1024M.

Best Regards,
Dawn

Comment 8 Ronen Hod 2012-09-02 11:09:56 UTC
Postponed to RHEL6.5, due to capacity constraints, and under the assumption that no customer is using virtio-win ballooning.

Comment 10 Min Deng 2012-09-13 08:06:51 UTC
Verified the bug on virtio-win-prewhql-0.1-35
Reproduced the issue on virtio-win-prewhql-0.1-30

steps,
1.start guest,
/usr/libexec/qemu-kvm -m 7G -smp 3 -cpu Penryn,+x2apic -usb -device usb-tablet -drive file=win2k3-64.qcow2,format=qcow2,if=none,id=drive-ide0-0-0,werror=stop,rerror=stop,cache=none -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -netdev tap,id=hostnet0,script=/etc/qemu-ifup -device e1000,netdev=hostnet0,mac=90:10:1a:75:50:03,bus=pci.0,addr=0x4 -uuid `uuidgen` -rtc base=localtime -no-kvm-pit-reinjection -monitor stdio -name 2k3 -spice disable-ticketing,port=5931 -vga qxl -bios /usr/share/seabios/bios-pm.bin -device virtio-balloon-pci,addr=0x6,bus=pci.0,id=balloon1 -chardev socket,id=111a,path=/tmp/monitor-win2k3-64-balloon-30,server,nowait -mon chardev=111a,mode=readline
2. evict memory:
(qemu) balloon 1024
(qemu) info balloon
3. sleep&wake guest or reboot guest

Expected results,the balloon value is 1024 
Actual   results,the balloon value is 1024

So,the bug has been fixed on virtio-win-prewhql-0.1-35,thanks.

Comment 11 errata-xmlrpc 2013-02-21 10:39:59 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2013-0441.html