diff --git a/nova/tests/functional/regressions/test_bug_2139351.py b/nova/tests/functional/regressions/test_bug_2139351.py index b5584353b287..76650633841f 100644 --- a/nova/tests/functional/regressions/test_bug_2139351.py +++ b/nova/tests/functional/regressions/test_bug_2139351.py @@ -126,18 +126,14 @@ class TestLiveMigrationIOThreadPinning( dest_iothreadpin = self._get_xml_element( dest_xml, './cputune/iothreadpin') self.assertIsNotNone(dest_iothreadpin) - # FIXME: this is bug 2139351 - self.assertEqual('0-1', dest_iothreadpin.get('cpuset')) - self.assertNotEqual( - dest_emulatorpin.get('cpuset'), dest_iothreadpin.get('cpuset')) - # self.assertEqual( - # '2-3', dest_iothreadpin.get('cpuset'), - # f"iothreadpin was not updated during live migration. " - # f"Expected '2-3' but got '{dest_iothreadpin.get('cpuset')}'") + self.assertEqual( + '2-3', dest_iothreadpin.get('cpuset'), + f"iothreadpin was not updated during live migration. " + f"Expected '2-3' but got '{dest_iothreadpin.get('cpuset')}'") - # # Both should match - # self.assertEqual( - # dest_emulatorpin.get('cpuset'), dest_iothreadpin.get('cpuset')) + # Both should match + self.assertEqual( + dest_emulatorpin.get('cpuset'), dest_iothreadpin.get('cpuset')) def test_live_migrate_unpinned_vcpu_cpuset_updated(self): """Test vcpu cpuset updated for unpinned VMs with cpu_shared_set. diff --git a/nova/tests/unit/virt/libvirt/test_config.py b/nova/tests/unit/virt/libvirt/test_config.py index 2816878aaeb1..4de39628cb3a 100644 --- a/nova/tests/unit/virt/libvirt/test_config.py +++ b/nova/tests/unit/virt/libvirt/test_config.py @@ -4049,10 +4049,14 @@ class LibvirtConfigGuestCPUTuneTest(LibvirtConfigBaseTest): vcpu3.cpuset = set([6, 7]) cputune.vcpupin.extend([vcpu0, vcpu1, vcpu2, vcpu3]) - emu = config.LibvirtConfigGuestCPUTuneIOThreadPin() + emu = config.LibvirtConfigGuestCPUTuneEmulatorPin() emu.cpuset = set([0, 1, 2, 3, 4, 5, 6, 7]) cputune.emulatorpin = emu + iot = config.LibvirtConfigGuestCPUTuneIOThreadPin() + iot.cpuset = set([0, 1, 2, 3, 4, 5, 6, 7]) + cputune.iothreadpin = iot + sch0 = config.LibvirtConfigGuestCPUTuneVCPUSched() sch0.vcpus = set([0, 1, 2, 3]) sch0.scheduler = "fifo" @@ -4066,6 +4070,7 @@ class LibvirtConfigGuestCPUTuneTest(LibvirtConfigBaseTest): xml = cputune.to_xml() self.assertXmlEqual(""" + diff --git a/nova/tests/unit/virt/libvirt/test_migration.py b/nova/tests/unit/virt/libvirt/test_migration.py index 38680f10cf99..db44e7ac7dba 100644 --- a/nova/tests/unit/virt/libvirt/test_migration.py +++ b/nova/tests/unit/virt/libvirt/test_migration.py @@ -518,6 +518,7 @@ class UtilityMigrationTestCase(test.NoDBTestCase): + @@ -545,6 +546,7 @@ class UtilityMigrationTestCase(test.NoDBTestCase): + diff --git a/nova/virt/libvirt/migration.py b/nova/virt/libvirt/migration.py index 80f3f7730265..30dc39b2cb8f 100644 --- a/nova/virt/libvirt/migration.py +++ b/nova/virt/libvirt/migration.py @@ -270,6 +270,10 @@ def _update_numa_xml(xml_doc, migrate_data): emulatorpin.set('cpuset', hardware.format_cpu_spec(info.emulator_pins)) + iothreadpin = xml_doc.find('./cputune/iothreadpin') + iothreadpin.set('cpuset', + hardware.format_cpu_spec(info.emulator_pins)) + all_cells = [] for guest_id, host_ids in info.cell_pins.items(): all_cells.extend(host_ids)