Bug 1690122

Summary: RFE: backport upstream patches for polling buffers/caches from balloon driver
Product: Red Hat Enterprise Linux 7 Reporter: Tomáš Golembiovský <tgolembi>
Component: libvirtAssignee: Tomáš Golembiovský <tgolembi>
Status: CLOSED ERRATA QA Contact: Luyao Huang <lhuang>
Severity: unspecified Docs Contact:
Priority: high    
Version: 7.6CC: dyuan, jdenemar, jiyan, jsuchane, lmen, mtessun, xuzhang, yalzhang
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libvirt-4.5.0-12.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-08-06 13:14:44 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:

Description Tomáš Golembiovský 2019-03-18 20:18:15 UTC
Would it be possible to backport patch for polling disk_caches balloon stat (i.e. buffers/caches) from QEMU? The relevant commit is:

    aee046550893e7c0e5ccb4861dd3f0715d31eeb7

from libvirt 4.6.0

Since RHV will be still on EL7 for some time it would be helpful to have that so we can fetch the info from EL8 guests.

Comment 6 Luyao Huang 2019-05-29 07:02:44 UTC
Verify this bug with libvirt-4.5.0-18.el7.x86_64:

S1: verify dommemstat show right disk cache for RHEL8 guest

1. prepare a RHEL8 guest with memballoon and set stats period

# virsh dumpxml vm1
...
    <memballoon model='virtio'>
      <stats period='2'/>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </memballoon>
...

2. use dommemstat command to get disk caches:

# virsh dommemstat vm1
actual 1024000
swap_in 0
swap_out 0
major_fault 1030
minor_fault 1379325
unused 398668
available 815476
usable 534064
last_update 1559112601
disk_caches 238180
rss 739004

3. verify disk caches value in guest:

IN GUEST:
# cat /proc/meminfo 
MemTotal:         815476 kB
MemFree:          398712 kB
MemAvailable:     534108 kB
Buffers:            3164 kB
Cached:           235016 kB
SwapCached:            0 kB
...

from kernel commit:  Buffers + Cached + SwapCached = disk_caches


S2: verify there is no disk cache data in dommemstat output for RHEL7/RHEL6 guest

1. prepare a RHEL7/RHEL6 guest with memballoon and set stats period

# virsh dumpxml vm1
...
    <memballoon model='virtio'>
      <stats period='2'/>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </memballoon>
...

2. check dommemstat command output and there is no disk_caches:

# virsh dommemstat vm1
actual 1024000
swap_in 0
swap_out 0
major_fault 580
minor_fault 466748
unused 761048
available 989464
usable 740912
last_update 1559112942
rss 437452


3. check libvirtd debug log and make sure qemu return stat-disk-caches is -1 (18446744073709551615):

2019-05-29 06:55:43.473+0000: 23060: debug : qemuMonitorJSONIOProcessLine:197 : Line [{"return": {"stats": {"stat-swap-out": 0, "stat-available-memory": 758693888, "stat-free-memory": 779313152, "stat-minor-faults": 466748, "stat-major-faults": 580, "stat-total-memory": 1013211136, "stat-swap-in": 0, "stat-disk-caches": 18446744073709551615}, "last-update": 1559112942}, "id": "libvirt-16"}]

Comment 8 errata-xmlrpc 2019-08-06 13:14:44 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://access.redhat.com/errata/RHSA-2019:2294