Revert "[pwmgmt]ignore missin governor when cpu_state used"

This reverts commit 41096f8342 as it has a
bug in it expecting a wrong exception type (FileNotFoundError vs
nova.exception.FileNotFound). Also there is a proper fix on master
2c4421568e that can be backported instead.

Change-Id: Id2c253a6e223bd5ba22512d9e5a40a9d12680da2
(cherry picked from commit 03ef4d6f53)
(cherry picked from commit 25d0db782e)
This commit is contained in:
Balazs Gibizer 2024-01-16 11:09:26 +01:00
parent 683ecc060e
commit a931b0bf82
2 changed files with 1 additions and 57 deletions

View File

@ -237,42 +237,3 @@ class TestAPI(test.NoDBTestCase):
api.validate_all_dedicated_cpus()
# no assert we want to make sure the validation won't raise if
# no dedicated cpus are configured
@mock.patch.object(core, 'get_governor')
@mock.patch.object(core, 'get_online')
def test_validate_all_dedicated_cpus_for_cpu_state_no_governor_ignored(
self, mock_get_online, mock_get_governor
):
self.flags(cpu_power_management=True, group='libvirt')
self.flags(cpu_dedicated_set='0-2', group='compute')
self.flags(cpu_power_management_strategy='cpu_state', group='libvirt')
mock_get_online.return_value = True
mock_get_governor.side_effect = FileNotFoundError(
"File /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "
"could not be found.")
api.validate_all_dedicated_cpus()
self.assertEqual(2, len(mock_get_governor.mock_calls))
@mock.patch.object(core, 'get_governor')
@mock.patch.object(core, 'get_online')
def test_validate_all_dedicated_cpus_for_governor_error(
self, mock_get_online, mock_get_governor
):
self.flags(cpu_power_management=True, group='libvirt')
self.flags(cpu_dedicated_set='0-2', group='compute')
self.flags(cpu_power_management_strategy='governor', group='libvirt')
mock_get_online.return_value = True
mock_get_governor.side_effect = FileNotFoundError(
"File /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "
"could not be found.")
ex = self.assertRaises(
exception.InvalidConfiguration, api.validate_all_dedicated_cpus)
self.assertIn(
"[libvirt]cpu_power_management_strategy is 'governor', "
"but the host OS does not support governors for CPU0",
str(ex))

View File

@ -137,24 +137,7 @@ def validate_all_dedicated_cpus() -> None:
continue
pcpu = Core(pcpu)
# we need to collect the governors strategy and the CPU states
try:
governors.add(pcpu.governor)
except FileNotFoundError as e:
# NOTE(gibi): When
# /sys/devices/system/cpu/cpuX/cpufreq/scaling_governor does
# not exist it means the host OS does not support any governors.
# If cpu_state strategy is requested we can ignore this as
# governors will not be used but if governor strategy is requested
# we need to report an error and stop as the host is not properly
# configured
if CONF.libvirt.cpu_power_management_strategy == 'governor':
msg = _(
"[libvirt]cpu_power_management_strategy is 'governor', "
"but the host OS does not support governors for CPU%d"
% pcpu.ident
)
raise exception.InvalidConfiguration(msg) from e
governors.add(pcpu.governor)
cpu_states.add(pcpu.online)
if CONF.libvirt.cpu_power_management_strategy == 'cpu_state':
# all the cores need to have the same governor strategy