@@ -7815,6 +7815,7 @@ def _get_existing_mdevs_not_assigned(self, parent, requested_types=None):
7815
7815
:param requested_types: Filter out the result for only mediated devices
7816
7816
having those types.
7817
7817
"""
7818
+ LOG.debug('Searching for available mdevs...')
7818
7819
allocated_mdevs = self._get_all_assigned_mediated_devices()
7819
7820
mdevs = self._get_mediated_devices(requested_types)
7820
7821
available_mdevs = set()
@@ -7830,6 +7831,7 @@ def _get_existing_mdevs_not_assigned(self, parent, requested_types=None):
7830
7831
available_mdevs.add(mdev["uuid"])
7831
7832
7832
7833
available_mdevs -= set(allocated_mdevs)
7834
+ LOG.info('Available mdevs at: %s.', available_mdevs)
7833
7835
return available_mdevs
7834
7836
7835
7837
def _create_new_mediated_device(self, parent, uuid=None):
@@ -7841,6 +7843,7 @@ def _create_new_mediated_device(self, parent, uuid=None):
7841
7843
7842
7844
:returns: the newly created mdev UUID or None if not possible
7843
7845
"""
7846
+ LOG.debug('Attempting to create new mdev...')
7844
7847
supported_types = self.supported_vgpu_types
7845
7848
# Try to see if we can still create a new mediated device
7846
7849
devices = self._get_mdev_capable_devices(supported_types)
@@ -7852,6 +7855,7 @@ def _create_new_mediated_device(self, parent, uuid=None):
7852
7855
# The device is not the one that was called, not creating
7853
7856
# the mdev
7854
7857
continue
7858
+ LOG.debug('Trying on: %s.', dev_name)
7855
7859
dev_supported_type = self._get_vgpu_type_per_pgpu(dev_name)
7856
7860
if dev_supported_type and device['types'][
7857
7861
dev_supported_type]['availableInstances'] > 0:
@@ -7861,7 +7865,13 @@ def _create_new_mediated_device(self, parent, uuid=None):
7861
7865
pci_addr = "{}:{}:{}.{}".format(*dev_name[4:].split('_'))
7862
7866
chosen_mdev = nova.privsep.libvirt.create_mdev(
7863
7867
pci_addr, dev_supported_type, uuid=uuid)
7868
+ LOG.info('Created mdev: %s on pGPU: %s.',
7869
+ chosen_mdev, pci_addr)
7864
7870
return chosen_mdev
7871
+ LOG.debug('Failed: No available instances on device.')
7872
+ LOG.info('Failed to create mdev. '
7873
+ 'No free space found among the following devices: %s.',
7874
+ [dev['dev_id'] for dev in devices])
7865
7875
7866
7876
@utils.synchronized(VGPU_RESOURCE_SEMAPHORE)
7867
7877
def _allocate_mdevs(self, allocations):
@@ -7943,13 +7953,16 @@ def _allocate_mdevs(self, allocations):
7943
7953
# Take the first available mdev
7944
7954
chosen_mdev = mdevs_available.pop()
7945
7955
else:
7956
+ LOG.debug('No available mdevs where found. '
7957
+ 'Creating an new one...')
7946
7958
chosen_mdev = self._create_new_mediated_device(parent_device)
7947
7959
if not chosen_mdev:
7948
7960
# If we can't find devices having available VGPUs, just raise
7949
7961
raise exception.ComputeResourcesUnavailable(
7950
7962
reason='vGPU resource is not available')
7951
7963
else:
7952
7964
chosen_mdevs.append(chosen_mdev)
7965
+ LOG.info('Allocated mdev: %s.', chosen_mdev)
7953
7966
return chosen_mdevs
7954
7967
7955
7968
def _detach_mediated_devices(self, guest):
0 commit comments