diff --git a/nova/objects/migrate_data.py b/nova/objects/migrate_data.py
index 073f6d5c100b..fee578080c47 100644
--- a/nova/objects/migrate_data.py
+++ b/nova/objects/migrate_data.py
@@ -241,10 +241,10 @@ class LibvirtLiveMigrateData(LiveMigrateData):
'bdms': fields.ListOfObjectsField('LibvirtLiveMigrateBDMInfo'),
'target_connect_addr': fields.StringField(nullable=True),
'supported_perf_events': fields.ListOfStringsField(),
+ # TODO(lyarwood): No longer used, drop in version 2.0
'src_supports_native_luks': fields.BooleanField(),
'dst_wants_file_backed_memory': fields.BooleanField(),
- # file_backed_memory_discard is ignored unless
- # dst_wants_file_backed_memory is set
+ # TODO(lyarwood): No longer used, drop in version 2.0
'file_backed_memory_discard': fields.BooleanField(),
# TODO(artom) (src|dst)_supports_numa_live_migration are only used as
# flags to indicate that the compute host is new enough to perform a
diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py
index 3ea4a4e57d6d..e168b36980fd 100644
--- a/nova/tests/unit/virt/libvirt/test_driver.py
+++ b/nova/tests/unit/virt/libvirt/test_driver.py
@@ -3446,32 +3446,6 @@ class LibvirtConnTestCase(test.NoDBTestCase,
self.assertTrue(result.filesource)
self.assertTrue(result.allocateimmediate)
- @mock.patch.object(fakelibvirt.Connection, 'getLibVersion')
- def test_get_guest_memory_backing_config_file_backed_discard(self,
- mock_lib_version):
- self.flags(file_backed_memory=1024, group='libvirt')
-
- mock_lib_version.return_value = versionutils.convert_version_to_int(
- libvirt_driver.MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION)
-
- result = self._test_get_guest_memory_backing_config(
- None, None, None
- )
- self.assertTrue(result.discard)
-
- @mock.patch.object(fakelibvirt.Connection, 'getLibVersion')
- def test_get_guest_memory_backing_config_file_backed_discard_libvirt(self,
- mock_lib_version):
- self.flags(file_backed_memory=1024, group='libvirt')
-
- mock_lib_version.return_value = versionutils.convert_version_to_int(
- libvirt_driver.MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION) - 1
-
- result = self._test_get_guest_memory_backing_config(
- None, None, None
- )
- self.assertFalse(result.discard)
-
def test_get_guest_memory_backing_config_file_backed_hugepages(self):
self.flags(file_backed_memory=1024, group="libvirt")
host_topology = objects.NUMATopology(cells=[
@@ -10770,7 +10744,6 @@ class LibvirtConnTestCase(test.NoDBTestCase,
'block_migration': True,
'is_volume_backed': False,
'dst_wants_file_backed_memory': False,
- 'file_backed_memory_discard': False,
'graphics_listen_addr_spice': '127.0.0.1',
'graphics_listen_addr_vnc': '127.0.0.1',
'serial_listen_addr': None},
@@ -10807,7 +10780,6 @@ class LibvirtConnTestCase(test.NoDBTestCase,
'block_migration': True,
'is_volume_backed': False,
'dst_wants_file_backed_memory': False,
- 'file_backed_memory_discard': False,
'graphics_listen_addr_spice': '127.0.0.1',
'graphics_listen_addr_vnc': '127.0.0.1',
'serial_listen_addr': None},
@@ -10841,7 +10813,6 @@ class LibvirtConnTestCase(test.NoDBTestCase,
'disk_available_mb': 409600,
'is_volume_backed': False,
'dst_wants_file_backed_memory': False,
- 'file_backed_memory_discard': False,
'graphics_listen_addr_spice': '127.0.0.1',
'graphics_listen_addr_vnc': '127.0.0.1',
'serial_listen_addr': None},
@@ -10916,7 +10887,6 @@ class LibvirtConnTestCase(test.NoDBTestCase,
'disk_available_mb': 1024,
'is_volume_backed': False,
'dst_wants_file_backed_memory': False,
- 'file_backed_memory_discard': False,
'graphics_listen_addr_spice': '127.0.0.1',
'graphics_listen_addr_vnc': '127.0.0.1',
'serial_listen_addr': None},
@@ -10982,7 +10952,6 @@ class LibvirtConnTestCase(test.NoDBTestCase,
'disk_available_mb': 1024,
'is_volume_backed': False,
'dst_wants_file_backed_memory': False,
- 'file_backed_memory_discard': False,
'graphics_listen_addr_spice': '127.0.0.1',
'graphics_listen_addr_vnc': '127.0.0.1',
'serial_listen_addr': None},
@@ -11016,58 +10985,6 @@ class LibvirtConnTestCase(test.NoDBTestCase,
self.assertTrue(return_value.dst_wants_file_backed_memory)
- @mock.patch.object(fakelibvirt.Connection, 'getLibVersion')
- @mock.patch.object(libvirt_driver.LibvirtDriver,
- '_create_shared_storage_test_file')
- @mock.patch.object(fakelibvirt.Connection, 'compareCPU')
- def _test_check_can_live_migrate_dest_file_backed_discard(
- self, libvirt_version, mock_cpu, mock_test_file,
- mock_lib_version):
-
- self.flags(file_backed_memory=1024, group='libvirt')
-
- mock_lib_version.return_value = libvirt_version
-
- instance_ref = objects.Instance(**self.test_instance)
- instance_ref.vcpu_model = test_vcpu_model.fake_vcpumodel
-
- drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)
- compute_info = {'disk_available_least': 400,
- 'cpu_info': 'asdf',
- }
-
- filename = "file"
-
- # _check_cpu_match
- mock_cpu.return_value = 1
- # mounted_on_same_shared_storage
- mock_test_file.return_value = filename
- # No need for the src_compute_info
- return_value = drvr.check_can_live_migrate_destination(self.context,
- instance_ref, None, compute_info, False)
-
- return return_value
-
- def test_check_can_live_migrate_dest_file_backed_discard(self):
- libvirt_version = versionutils.convert_version_to_int(
- libvirt_driver.MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION)
-
- data = self._test_check_can_live_migrate_dest_file_backed_discard(
- libvirt_version)
-
- self.assertTrue(data.dst_wants_file_backed_memory)
- self.assertTrue(data.file_backed_memory_discard)
-
- def test_check_can_live_migrate_dest_file_backed_discard_bad_libvirt(self):
- libvirt_version = versionutils.convert_version_to_int(
- libvirt_driver.MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION) - 1
-
- data = self._test_check_can_live_migrate_dest_file_backed_discard(
- libvirt_version)
-
- self.assertTrue(data.dst_wants_file_backed_memory)
- self.assertFalse(data.file_backed_memory_discard)
-
@mock.patch.object(fakelibvirt.Connection, 'compareCPU')
def test_check_can_live_migrate_dest_incompatible_cpu_raises(
self, mock_cpu):
diff --git a/nova/tests/unit/virt/libvirt/test_migration.py b/nova/tests/unit/virt/libvirt/test_migration.py
index d4fba48397de..6166458ccc38 100644
--- a/nova/tests/unit/virt/libvirt/test_migration.py
+++ b/nova/tests/unit/virt/libvirt/test_migration.py
@@ -656,6 +656,7 @@ class UtilityMigrationTestCase(test.NoDBTestCase):
+
"""
doc = etree.fromstring(xml)
@@ -679,6 +680,7 @@ class UtilityMigrationTestCase(test.NoDBTestCase):
+
""")
@@ -691,78 +693,6 @@ class UtilityMigrationTestCase(test.NoDBTestCase):
-
-"""
- doc = etree.fromstring(xml)
- res = etree.tostring(migration._update_memory_backing_xml(doc, data),
- encoding='unicode')
-
- self.assertXmlEqual(res, """
-
-
-
-
-
-""")
-
- def test_update_memory_backing_discard_add(self):
- data = objects.LibvirtLiveMigrateData(
- dst_wants_file_backed_memory=True, file_backed_memory_discard=True)
-
- xml = """
-
-
-
-
-
-"""
- doc = etree.fromstring(xml)
- res = etree.tostring(migration._update_memory_backing_xml(doc, data),
- encoding='unicode')
-
- self.assertXmlEqual(res, """
-
-
-
-
-
-
-""")
-
- def test_update_memory_backing_discard_remove(self):
- data = objects.LibvirtLiveMigrateData(
- dst_wants_file_backed_memory=True,
- file_backed_memory_discard=False)
-
- xml = """
-
-
-
-
-
-
-"""
- doc = etree.fromstring(xml)
- res = etree.tostring(migration._update_memory_backing_xml(doc, data),
- encoding='unicode')
-
- self.assertXmlEqual(res, """
-
-
-
-
-
-""")
-
- def test_update_memory_backing_discard_keep(self):
- data = objects.LibvirtLiveMigrateData(
- dst_wants_file_backed_memory=True, file_backed_memory_discard=True)
-
- xml = """
-
-
-
-
"""
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index b00699e29350..e00dd77609d4 100644
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -249,7 +249,6 @@ VGPU_RESOURCE_SEMAPHORE = 'vgpu_resources'
LIBVIRT_PERF_EVENT_PREFIX = 'VIR_PERF_PARAM_'
-MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION = (4, 4, 0)
MIN_LIBVIRT_NATIVE_TLS_VERSION = (4, 4, 0)
MIN_QEMU_NATIVE_TLS_VERSION = (2, 11, 0)
@@ -5661,9 +5660,7 @@ class LibvirtDriver(driver.ComputeDriver):
membacking.filesource = True
membacking.sharedaccess = True
membacking.allocateimmediate = True
- if self._host.has_min_version(
- MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION):
- membacking.discard = True
+ membacking.discard = True
if self._sev_enabled(flavor, image_meta):
if not membacking:
membacking = vconfig.LibvirtConfigGuestMemoryBacking()
@@ -8580,9 +8577,6 @@ class LibvirtDriver(driver.ComputeDriver):
data.disk_over_commit = disk_over_commit
data.disk_available_mb = disk_available_mb
data.dst_wants_file_backed_memory = CONF.libvirt.file_backed_memory > 0
- data.file_backed_memory_discard = (CONF.libvirt.file_backed_memory and
- self._host.has_min_version(
- MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION))
# TODO(artom) Set to indicate that the destination (us) can perform a
# NUMA-aware live migration. NUMA-aware live migration will become
diff --git a/nova/virt/libvirt/migration.py b/nova/virt/libvirt/migration.py
index 9543adda7ad5..36ee7168ef17 100644
--- a/nova/virt/libvirt/migration.py
+++ b/nova/virt/libvirt/migration.py
@@ -296,16 +296,12 @@ def _update_memory_backing_xml(xml_doc, migrate_data):
"""
old_xml_has_memory_backing = True
file_backed = False
- discard = False
memory_backing = xml_doc.findall('./memoryBacking')
if 'dst_wants_file_backed_memory' in migrate_data:
file_backed = migrate_data.dst_wants_file_backed_memory
- if 'file_backed_memory_discard' in migrate_data:
- discard = migrate_data.file_backed_memory_discard
-
if not memory_backing:
# Create memoryBacking element
memory_backing = etree.Element("memoryBacking")
@@ -326,9 +322,7 @@ def _update_memory_backing_xml(xml_doc, migrate_data):
memory_backing.append(etree.Element("source", type="file"))
memory_backing.append(etree.Element("access", mode="shared"))
memory_backing.append(etree.Element("allocation", mode="immediate"))
-
- if discard:
- memory_backing.append(etree.Element("discard"))
+ memory_backing.append(etree.Element("discard"))
if not old_xml_has_memory_backing:
xml_doc.append(memory_backing)