@@ -8613,97 +8613,19 @@ def test_get_guest_memory_balloon_config_lxc(self):
8613
8613
break
8614
8614
self.assertTrue(no_exist)
8615
8615
8616
- @mock.patch('nova.virt.libvirt.driver.LOG.warning')
8617
- @mock.patch.object(host.Host, 'has_min_version', return_value=True)
8618
- @mock.patch.object(host.Host, "get_capabilities")
8619
- def test_get_supported_perf_events_foo(self, mock_get_caps,
8620
- mock_min_version,
8621
- mock_warn):
8622
- self.flags(enabled_perf_events=['foo'], group='libvirt')
8623
-
8624
- caps = vconfig.LibvirtConfigCaps()
8625
- caps.host = vconfig.LibvirtConfigCapsHost()
8626
- caps.host.cpu = vconfig.LibvirtConfigCPU()
8627
- caps.host.cpu.arch = fields.Architecture.X86_64
8628
- caps.host.topology = fakelibvirt.NUMATopology()
8616
+ @mock.patch.object(libvirt_driver, 'LOG')
8617
+ @mock.patch.object(
8618
+ fakelibvirt, 'VIR_PERF_PARAM_CPU_CLOCK', 'cpu_clock', create=True)
8619
+ @mock.patch.object(fakelibvirt, 'VIR_PERF_PARAM_CMT', 'cmt', create=True)
8620
+ def test_get_supported_perf_events(self, mock_log):
8621
+ self.flags(
8622
+ enabled_perf_events=['cpu_clock', 'foo', 'cmt'], group='libvirt')
8629
8623
8630
- mock_get_caps.return_value = caps
8631
8624
drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)
8632
8625
events = drvr._get_supported_perf_events()
8633
8626
8634
- self.assertTrue(mock_warn.called)
8635
- self.assertEqual([], events)
8636
-
8637
- @mock.patch.object(host.Host, "get_capabilities")
8638
- def _test_get_guest_with_perf(self, caps, events, mock_get_caps):
8639
- mock_get_caps.return_value = caps
8640
-
8641
- drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)
8642
- drvr.init_host('test_perf')
8643
- instance_ref = objects.Instance(**self.test_instance)
8644
- image_meta = objects.ImageMeta.from_dict(self.test_image_meta)
8645
-
8646
- disk_info = blockinfo.get_disk_info(CONF.libvirt.virt_type,
8647
- instance_ref,
8648
- image_meta)
8649
- cfg = drvr._get_guest_config(instance_ref, [],
8650
- image_meta, disk_info)
8651
-
8652
- self.assertEqual(events, cfg.perf_events)
8653
-
8654
- @mock.patch.object(fakelibvirt, 'VIR_PERF_PARAM_CMT', True,
8655
- create=True)
8656
- @mock.patch.object(host.Host, 'has_min_version', return_value=True)
8657
- def test_get_guest_with_perf_host_unsupported(self,
8658
- mock_min_version):
8659
- self.flags(enabled_perf_events=['cmt'], group='libvirt')
8660
- caps = vconfig.LibvirtConfigCaps()
8661
- caps.host = vconfig.LibvirtConfigCapsHost()
8662
- caps.host.cpu = vconfig.LibvirtConfigCPU()
8663
- caps.host.cpu.arch = fields.Architecture.X86_64
8664
- caps.host.topology = fakelibvirt.NUMATopology()
8665
-
8666
- self._test_get_guest_with_perf(caps, [])
8667
-
8668
- @mock.patch.object(fakelibvirt, 'VIR_PERF_PARAM_CMT', True,
8669
- create=True)
8670
- @mock.patch.object(fakelibvirt, 'VIR_PERF_PARAM_MBMT', True,
8671
- create=True)
8672
- @mock.patch.object(fakelibvirt, 'VIR_PERF_PARAM_MBML', True,
8673
- create=True)
8674
- @mock.patch.object(libvirt_driver.LOG, 'warning')
8675
- @mock.patch.object(host.Host, 'has_min_version', return_value=True)
8676
- def test_intel_cmt_perf_deprecation_warning(self,
8677
- mock_min_version,
8678
- mock_warn):
8679
- perf_events = ['cmt', 'mbml', 'mbmt']
8680
- self.flags(enabled_perf_events=['cmt', 'mbml', 'mbmt'],
8681
- group='libvirt')
8682
- caps = vconfig.LibvirtConfigCaps()
8683
- caps.host = vconfig.LibvirtConfigCapsHost()
8684
- caps.host.cpu = vconfig.LibvirtConfigCPU()
8685
- caps.host.cpu.arch = fields.Architecture.X86_64
8686
- caps.host.topology = fakelibvirt.NUMATopology()
8687
-
8688
- features = []
8689
- for f in ('cmt', 'mbm_local', 'mbm_total'):
8690
- feature = vconfig.LibvirtConfigGuestCPUFeature()
8691
- feature.name = f
8692
- feature.policy = fields.CPUFeaturePolicy.REQUIRE
8693
- features.append(feature)
8694
-
8695
- caps.host.cpu.features = set(features)
8696
- self._test_get_guest_with_perf(caps, ['cmt', 'mbml', 'mbmt'])
8697
- warning_count = 0
8698
- call_args_list = mock_warn.call_args_list
8699
- for call in call_args_list:
8700
- # Call can be unpackaged as a tuple of args and kwargs
8701
- # so we want to check the first arg in the args list
8702
- if (len(call) == 2 and len(call[0]) == 2 and
8703
- call[0][1] in perf_events and
8704
- 'Monitoring Intel CMT' in call[0][0]):
8705
- warning_count += 1
8706
- self.assertEqual(3, warning_count)
8627
+ self.assertEqual(['cpu_clock'], events)
8628
+ self.assertEqual(2, len(mock_log.warning.mock_calls))
8707
8629
8708
8630
def test_xml_and_uri_no_ramdisk_no_kernel(self):
8709
8631
instance_data = dict(self.test_instance)
0 commit comments