Bug 1080319 - [balloon]win8.1-32 could use 3G memory in one guest but stat-total-memory only shows 2G
Summary: [balloon]win8.1-32 could use 3G memory in one guest but stat-total-memory on...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: virtio-win
Version: 7.0
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Vadim Rozenfeld
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks: 1131838
TreeView+ depends on / blocked
 
Reported: 2014-03-25 07:32 UTC by Min Deng
Modified: 2015-03-05 05:34 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Cause: Memory balloon service can report incorrect amount of total memory. Consequence: Memory balloon service can report incorrect amount of total memory on a system with more than 2GB. Fix: Replace GlobalMemoryStatus with GlobalMemoryStatusEx to report memory statistics correctly. Result: Now total memory information can be reported correctly.
Clone Of:
Environment:
Last Closed: 2015-03-05 05:34:03 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2015:0289 0 normal SHIPPED_LIVE virtio-win bug fix and enhancement update 2015-03-05 10:32:54 UTC

Description Min Deng 2014-03-25 07:32:24 UTC
Description of problem:
win8.1-32 could use 3G memory in one guest but stat-total-memory  only shows 2G
Version-Release number of selected component (if applicable):
kernel-3.10.0-113.el7.x86_64
qemu-kvm-rhev-1.5.3-53.el7.x86_64
virtio-win-prewhql-0.1-75

How reproducible:
3/3

Steps to Reproduce:
1.boot up guest with the cli
  /usr/libexec/qemu-kvm -M pc -m 3G -smp 2 -cpu Nehalem,+x2apic,hv_spinlocks=0x1fff,hv_relaxed,hv_vapic,hv_time -drive file=win8.1-32.raw,format=raw,if=none,id=drive-ide0-0-0,werror=stop,rerror=stop,cache=none -device ide-drive,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -netdev tap,id=hostnet0,script=/etc/qemu-ifup -device e1000,netdev=hostnet0,mac=00:43:31:48:14:27,id=net0 -uuid 1cedf92f-cdd9-4b01-8487-35fb58dcc82e -rtc-td-hack -no-kvm-pit-reinjection -chardev socket,id=a,path=/tmp/monitor-win2k8R2-serial,server,nowait -mon chardev=a,mode=readline -name win8132 -device virtio-balloon-pci,id=balloon0 -vnc :2 -vga cirrus -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -monitor stdio -qmp tcp:0:4444,server,nowait
2.from qmp
  {"execute":"qmp_capabilities"}
  {"execute": "qom-set","arguments": { "path": "/machine/peripheral/balloon0","property": "guest-stats-polling-interval", "value": 2 } } *enable polling
  { "execute": "qom-get","arguments": { "path": "/machine/peripheral/balloon0","property": "guest-stats" } }
{"return": {"stats": {"stat-swap-out": 0, "stat-free-memory": 2147483647, "stat-minor-faults": 30, "stat-major-faults": 0, "stat-total-memory": 2147483647, "stat-swap-in": 0}, "last-update": 1395732365}}

Actual results:
"stat-total-memory" was approximately 2G but win8.1-32 guest could consume 3G memory.If I was wrong please correct me.
Expected results:
It should show correctly,and more detail explanation of those values are welcomed.

Additional info:

Comment 3 huiqingding 2014-07-31 04:07:33 UTC
Reproduce this issue using the following version:
kernel-3.10.0-138.el7.x86_64
qemu-kvm-rhev-1.5.3-66.el7.x86_64
virtio-win-prewhql-0.1-75

Steps to Reproduce:
1.boot up guest with the cli
  /usr/libexec/qemu-kvm -M pc -m 3G -smp 2 -cpu Nehalem,+x2apic,hv_spinlocks=0x1fff,hv_relaxed,hv_vapic,hv_time -drive file=win8.1-32.raw,format=raw,if=none,id=drive-ide0-0-0,werror=stop,rerror=stop,cache=none -device ide-drive,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -netdev tap,id=hostnet0,script=/etc/qemu-ifup -device e1000,netdev=hostnet0,mac=00:43:31:48:14:27,id=net0 -uuid 1cedf92f-cdd9-4b01-8487-35fb58dcc82e -rtc-td-hack -no-kvm-pit-reinjection -chardev socket,id=a,path=/tmp/monitor-win2k8R2-serial,server,nowait -mon chardev=a,mode=readline -name win8132 -device virtio-balloon-pci,id=balloon0 -vnc :2 -vga cirrus -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -monitor stdio -qmp tcp:0:4444,server,nowait
2.from qmp
  {"execute":"qmp_capabilities"}
  {"execute": "qom-set","arguments": { "path": "/machine/peripheral/balloon0","property": "guest-stats-polling-interval", "value": 2 } } *enable polling
  { "execute": "qom-get","arguments": { "path": "/machine/peripheral/balloon0","property": "guest-stats" } }
{"return": {"stats": {"stat-swap-out": 0, "stat-free-memory": 2147483647, "stat-minor-faults": 5926, "stat-major-faults": 96, "stat-total-memory": 2147483647, "stat-swap-in": 1131}, "last-update": 1406779516}}

Result:
after step2, "stat-total-memory" is 2147483647, about 2G.

Comment 4 huiqingding 2014-07-31 04:16:19 UTC
Test this issue using the following version:
kernel-3.10.0-138.el7.x86_64
qemu-kvm-rhev-1.5.3-66.el7.x86_64
virtio-win-prewhql-0.1-88

Steps to Reproduce:
1.boot up guest with the cli
  /usr/libexec/qemu-kvm -M pc -m 3G -smp 2 -cpu Nehalem,+x2apic,hv_spinlocks=0x1fff,hv_relaxed,hv_vapic,hv_time -drive file=win8.1-32.raw,format=raw,if=none,id=drive-ide0-0-0,werror=stop,rerror=stop,cache=none -device ide-drive,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -netdev tap,id=hostnet0,script=/etc/qemu-ifup -device e1000,netdev=hostnet0,mac=00:43:31:48:14:27,id=net0 -uuid 1cedf92f-cdd9-4b01-8487-35fb58dcc82e -rtc-td-hack -no-kvm-pit-reinjection -chardev socket,id=a,path=/tmp/monitor-win2k8R2-serial,server,nowait -mon chardev=a,mode=readline -name win8132 -device virtio-balloon-pci,id=balloon0 -vnc :2 -vga cirrus -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -monitor stdio -qmp tcp:0:4444,server,nowait
2.from qmp
  {"execute":"qmp_capabilities"}
  {"execute": "qom-set","arguments": { "path": "/machine/peripheral/balloon0","property": "guest-stats-polling-interval", "value": 2 } } *enable polling
  { "execute": "qom-get","arguments": { "path": "/machine/peripheral/balloon0","property": "guest-stats" } }
{"return": {"stats": {"stat-swap-out": 0, "stat-free-memory": 2683273216, "stat-minor-faults": 0, "stat-major-faults": 0, "stat-total-memory": 3220811776, "stat-swap-in": 0}, "last-update": 1406780136}}

Result:
after step2, "stat-total-memory" is 3220811776, about 3G.

Comment 5 huiqingding 2014-07-31 04:19:15 UTC
Comment 4 is tested on intel host.

Comment 6 huiqingding 2014-07-31 04:20:54 UTC
Use the steps of comment 4 on a intel host to test the following version:
kernel-3.10.0-138.el7.x86_64
qemu-kvm-rhev-1.5.3-66.el7.x86_64
virtio-win-prewhql-0.1-88(In reply to huiqingding from comment #4)
> Test this issue using the following version:
> kernel-3.10.0-138.el7.x86_64
> qemu-kvm-rhev-1.5.3-66.el7.x86_64

Correction:
qemu-kvm-1.5.3-66.el7.x86_64

> virtio-win-prewhql-0.1-88
> 
> Steps to Reproduce:
> 1.boot up guest with the cli
>   /usr/libexec/qemu-kvm -M pc -m 3G -smp 2 -cpu
> Nehalem,+x2apic,hv_spinlocks=0x1fff,hv_relaxed,hv_vapic,hv_time -drive
> file=win8.1-32.raw,format=raw,if=none,id=drive-ide0-0-0,werror=stop,
> rerror=stop,cache=none -device
> ide-drive,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -netdev
> tap,id=hostnet0,script=/etc/qemu-ifup -device
> e1000,netdev=hostnet0,mac=00:43:31:48:14:27,id=net0 -uuid
> 1cedf92f-cdd9-4b01-8487-35fb58dcc82e -rtc-td-hack -no-kvm-pit-reinjection
> -chardev socket,id=a,path=/tmp/monitor-win2k8R2-serial,server,nowait -mon
> chardev=a,mode=readline -name win8132 -device virtio-balloon-pci,id=balloon0
> -vnc :2 -vga cirrus -global PIIX4_PM.disable_s3=1 -global
> PIIX4_PM.disable_s4=1 -monitor stdio -qmp tcp:0:4444,server,nowait
> 2.from qmp
>   {"execute":"qmp_capabilities"}
>   {"execute": "qom-set","arguments": { "path":
> "/machine/peripheral/balloon0","property": "guest-stats-polling-interval",
> "value": 2 } } *enable polling
>   { "execute": "qom-get","arguments": { "path":
> "/machine/peripheral/balloon0","property": "guest-stats" } }
> {"return": {"stats": {"stat-swap-out": 0, "stat-free-memory": 2683273216,
> "stat-minor-faults": 0, "stat-major-faults": 0, "stat-total-memory":
> 3220811776, "stat-swap-in": 0}, "last-update": 1406780136}}
> 
> Result:
> after step2, "stat-total-memory" is 3220811776, about 3G.

Comment 7 huiqingding 2014-07-31 04:23:02 UTC
Use the steps of comment 4 to test the following version on an intel host:
kernel-3.10.0-138.el7.x86_64
qemu-kvm-rhev-2.1.0-3.el7ev.preview
virtio-win-prewhql-0.1-88

The result is as following:
{"execute":"qmp_capabilities"}
{"return": {}}
{"execute": "qom-set","arguments": { "path": "/machine/peripheral/balloon0","property": "guest-stats-polling-interval", "value": 2 } }
{"return": {}}
{ "execute": "qom-get","arguments": { "path": "/machine/peripheral/balloon0","property": "guest-stats" } }
{"return": {"stats": {"stat-swap-out": 0, "stat-free-memory": 2342133760, "stat-minor-faults": 0, "stat-major-faults": 0, "stat-total-memory": 3220811776, "stat-swap-in": 0}, "last-update": 1406780340}}

"stat-total-memory" is 3220811776, about 3G.

Comment 8 huiqingding 2014-07-31 04:29:07 UTC
Hi, Vadim,

According to comment 3 and comment 4, I only update virtio-win-prewhql-0.1-75 to virtio-win-prewhql-0.1-88, qemu-kvm is always qemu-kvm-1.5.3-66, found "stat-total-memory" is fixed.

Whether the component of this bug is "virtio-win" and not "qemu-kvm"?

Best regards
Huiqing

Comment 9 Vadim Rozenfeld 2014-07-31 06:48:10 UTC
(In reply to huiqingding from comment #8)
> Hi, Vadim,
> 
> According to comment 3 and comment 4, I only update
> virtio-win-prewhql-0.1-75 to virtio-win-prewhql-0.1-88, qemu-kvm is always
> qemu-kvm-1.5.3-66, found "stat-total-memory" is fixed.
> 
> Whether the component of this bug is "virtio-win" and not "qemu-kvm"?
> 
> Best regards
> Huiqing

Hi Huiqing,
the fix itself was in the balloon service, which is the part of virtio-win.
So, you are absolutly right, the bug should be moved under virtio-win category.

Best regards,
Vadim.

Comment 10 Mike Cao 2014-07-31 09:59:54 UTC
Move status to Verified according to comment 3&4
Mike

Comment 13 errata-xmlrpc 2015-03-05 05:34:03 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.

https://rhn.redhat.com/errata/RHBA-2015-0289.html


Note You need to log in before you can comment on or make changes to this bug.