Hi Nova folks,
We're trying to use unified limit with alias PCI device information with following configuration. With this configuration, unified limit calculates the resources:CUSTOM_NVIDIA_T4 correctly, but nova-scheduler makes allocation_candidate request with duplicated CUSTOM_NVIDIA_T4 resources.
From my quick check of the code, the unified limit and pci device alias usecase is not supported by the master branch now. It is supported only when you enable pci in placement. The error is that you are requesting the resource both via the alias and additionally via the flavor creating 2 separate request
looking at the flavor nova is working correctly you should not be adding resources:CUSTOM_NVIDIA_T4='1' On 23/12/2025 09:28, Masahito Muroi wrote: this is user error as de-duplicating those request is intentionally not supported. when a admin makes manual user request those are pass though unchanged.
I'm thinking to fix the issue and comming up with two idea to solve the issue. I want to hear the nova team's opinion which is better to fit the nova's code. Or please give me any comment if there is another better way.
- idea1: nova-scheduler drops duplicated resources request if needed. Adding a configuration to drop duplicated situation and etc. - idea2: introduces a new flavor extra spec prefix, e.g. "placement:<RC>", to indicate the resource class comes from placement.
# nova.conf [pci] device_spec = {"vendor_id":"8086", "product_id":"8d2d", "resource_class":"CUSTOM_NVIDIA_T4"} alias = {"name":"t4_pcie_16gb", "vendor_id":"8086", "product_id":"8d2d", "resource_class":"CUSTOM_NVIDIA_T4", "device_type":"type-PCI"}
report_in_placement = true pci_in_placement = true
[quota] driver = nova.quota.UnifiedLimitsDriver unified_limits_resource_strategy = require unified_limits_resource_list = class:CUSTOM_NVIDIA_T4, class:VCPU, class:MEMORY_MB, class:DISK_GB
# openstack flavor show GPU_FLAVOR | Fields. | Value | +-------------+-----------------------------------------| | properties | pci_passthrough:alias='t4_pcie_16gb:1', | | | resources:CUSTOM_NVIDIA_T4='1' | if you remove resources:CUSTOM_NVIDIA_T4='1' form the flavor then this will work properly.
# allocation candidate request query /allocation_candidates limit=1000 resources=CUSTOM_NVIDIA_T4:1 DISK_GB:10 MEMORY_MB:1024 VCPU:1 resourcesbb775ad3-f50c-4d3b-bb28-8993e4a664ca-0=CUSTOM_NVIDIA_T4:1
best regards, Masahito