If [libvirt]cpu_power_management is set to true but [compute]cpu_dedicated_set is empty nova-compute is fails to start with:
2023-11-16 10:42:42.444 2 ERROR oslo_service.service [None req-56dbf76c-524c-455d-9c64-d3474509e8d0 - - - - - -] Error starting thread.: nova.exception.InvalidConfiguration: '[compute]/cpu_dedicated_set' is mandatory to be set if '[libvirt]/cpu_power_management' is set.Please provide the CPUs that can be pinned or don't use the power management if you only use shared CPUs.
2023-11-16 10:42:42.444 2 ERROR oslo_service.service Traceback (most recent call last):
2023-11-16 10:42:42.444 2 ERROR oslo_service.service File "/usr/lib/python3.9/site-packages/oslo_service/service.py", line 806, in run_service
2023-11-16 10:42:42.444 2 ERROR oslo_service.service service.start()
2023-11-16 10:42:42.444 2 ERROR oslo_service.service File "/usr/lib/python3.9/site-packages/nova/service.py", line 162, in start
2023-11-16 10:42:42.444 2 ERROR oslo_service.service self.manager.init_host(self.service_ref)
2023-11-16 10:42:42.444 2 ERROR oslo_service.service File "/usr/lib/python3.9/site-packages/nova/compute/manager.py", line 1608, in init_host
2023-11-16 10:42:42.444 2 ERROR oslo_service.service self.driver.init_host(host=self.host)
2023-11-16 10:42:42.444 2 ERROR oslo_service.service File "/usr/lib/python3.9/site-packages/nova/virt/libvirt/driver.py", line 831, in init_host
2023-11-16 10:42:42.444 2 ERROR oslo_service.service libvirt_cpu.power_down_all_dedicated_cpus()
2023-11-16 10:42:42.444 2 ERROR oslo_service.service File "/usr/lib/python3.9/site-packages/nova/virt/libvirt/cpu/api.py", line 122, in power_down_all_dedicated_cpus
2023-11-16 10:42:42.444 2 ERROR oslo_service.service raise exception.InvalidConfiguration(msg)
2023-11-16 10:42:42.444 2 ERROR oslo_service.service nova.exception.InvalidConfiguration: '[compute]/cpu_dedicated_set' is mandatory to be set if '[libvirt]/cpu_power_management' is set.Please provide the CPUs that can be pinned or don't use the power management if you only use shared CPUs.
This is not a functional bug. But it is a UX bug. I would like to independently enable the CPU power management feature from configuring pinned CPU cores even if it means the no CPU cores is power managed while cpu_dedicated_set is empty.
Imagine a deployment engine that would like to enable cpu_power_management automatically by default. But it cannot defined the list of pinned CPU cores at the same time as that his hypervisor HW dependent. The current strict validation prevents enabling cpu_power_management before defining the list of PCPUs.
The actual power management logic can gracefully handle the case when zero PCPUs are defined simply by managing all the PCPUs i.e. managing no PCPUs in this case.
Th PR enabling the feature in a deployment and showing the error: https:/ /github. com/openstack- k8s-operators/ nova-operator/ pull/597