Merge "libvirt: Enable autodeflate and freePageReporting for memballoon"
This commit is contained in:
2
nova/tests/fixtures/libvirt_data.py
vendored
2
nova/tests/fixtures/libvirt_data.py
vendored
@@ -229,7 +229,7 @@ FAKE_KVM_GUEST = """
|
|||||||
<model type='virtio'/>
|
<model type='virtio'/>
|
||||||
<source bridge='virbr0'/>
|
<source bridge='virbr0'/>
|
||||||
</interface>
|
</interface>
|
||||||
<memballoon model='virtio'>
|
<memballoon model='virtio' autodeflate='on' freePageReporting='on'>
|
||||||
<stats period='11'/>
|
<stats period='11'/>
|
||||||
</memballoon>
|
</memballoon>
|
||||||
<input type="mouse" bus="virtio"/>
|
<input type="mouse" bus="virtio"/>
|
||||||
|
@@ -4247,7 +4247,7 @@ class LibvirtConfigMemoryBalloonTest(LibvirtConfigBaseTest):
|
|||||||
|
|
||||||
xml = balloon.to_xml()
|
xml = balloon.to_xml()
|
||||||
expected_xml = """
|
expected_xml = """
|
||||||
<memballoon model='virtio'>
|
<memballoon model='virtio' autodeflate='on' freePageReporting='on'>
|
||||||
<stats period='11'/>
|
<stats period='11'/>
|
||||||
</memballoon>"""
|
</memballoon>"""
|
||||||
|
|
||||||
@@ -4259,7 +4259,8 @@ class LibvirtConfigMemoryBalloonTest(LibvirtConfigBaseTest):
|
|||||||
|
|
||||||
xml = balloon.to_xml()
|
xml = balloon.to_xml()
|
||||||
expected_xml = """
|
expected_xml = """
|
||||||
<memballoon model='virtio' />"""
|
<memballoon model='virtio' autodeflate='on'
|
||||||
|
freePageReporting='on' />"""
|
||||||
|
|
||||||
self.assertXmlEqual(expected_xml, xml)
|
self.assertXmlEqual(expected_xml, xml)
|
||||||
|
|
||||||
@@ -4272,7 +4273,7 @@ class LibvirtConfigMemoryBalloonTest(LibvirtConfigBaseTest):
|
|||||||
|
|
||||||
xml = balloon.to_xml()
|
xml = balloon.to_xml()
|
||||||
expected_xml = """
|
expected_xml = """
|
||||||
<memballoon model='virtio'>
|
<memballoon model='virtio' autodeflate='on' freePageReporting='on'>
|
||||||
<driver iommu="on" />
|
<driver iommu="on" />
|
||||||
</memballoon>"""
|
</memballoon>"""
|
||||||
|
|
||||||
|
@@ -2302,6 +2302,8 @@ class LibvirtConfigMemoryBalloon(LibvirtConfigGuestDevice):
|
|||||||
def format_dom(self):
|
def format_dom(self):
|
||||||
dev = super(LibvirtConfigMemoryBalloon, self).format_dom()
|
dev = super(LibvirtConfigMemoryBalloon, self).format_dom()
|
||||||
dev.set('model', str(self.model))
|
dev.set('model', str(self.model))
|
||||||
|
dev.set('autodeflate', 'on')
|
||||||
|
dev.set('freePageReporting', 'on')
|
||||||
if self.period is not None:
|
if self.period is not None:
|
||||||
dev.append(etree.Element('stats', period=str(self.period)))
|
dev.append(etree.Element('stats', period=str(self.period)))
|
||||||
if self.driver_iommu:
|
if self.driver_iommu:
|
||||||
|
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
The libvirt driver now automatically enables ``autodeflate`` and
|
||||||
|
``freePageReporting`` features for virtio memory balloon devices.
|
||||||
|
The ``autodeflate`` feature allows the QEMU virtio memory balloon
|
||||||
|
to release memory at the last moment before a guest process is
|
||||||
|
killed by the Out of Memory killer. The ``freePageReporting``
|
||||||
|
feature enables the memory balloon to return unused pages back
|
||||||
|
to the hypervisor for use by other guests or processes, improving
|
||||||
|
overall memory efficiency on the compute host.
|
Reference in New Issue
Block a user