@@ -7886,6 +7886,7 @@ def _get_existing_mdevs_not_assigned(self, parent, requested_types=None):
7886
7886
:param requested_types: Filter out the result for only mediated devices
7887
7887
having those types.
7888
7888
"""
7889
+ LOG.debug('Searching for available mdevs...')
7889
7890
allocated_mdevs = self._get_all_assigned_mediated_devices()
7890
7891
mdevs = self._get_mediated_devices(requested_types)
7891
7892
available_mdevs = set()
@@ -7901,6 +7902,7 @@ def _get_existing_mdevs_not_assigned(self, parent, requested_types=None):
7901
7902
available_mdevs.add(mdev["uuid"])
7902
7903
7903
7904
available_mdevs -= set(allocated_mdevs)
7905
+ LOG.info('Available mdevs at: %s.', available_mdevs)
7904
7906
return available_mdevs
7905
7907
7906
7908
def _create_new_mediated_device(self, parent, uuid=None):
@@ -7912,6 +7914,7 @@ def _create_new_mediated_device(self, parent, uuid=None):
7912
7914
7913
7915
:returns: the newly created mdev UUID or None if not possible
7914
7916
"""
7917
+ LOG.debug('Attempting to create new mdev...')
7915
7918
supported_types = self.supported_vgpu_types
7916
7919
# Try to see if we can still create a new mediated device
7917
7920
devices = self._get_mdev_capable_devices(supported_types)
@@ -7923,6 +7926,7 @@ def _create_new_mediated_device(self, parent, uuid=None):
7923
7926
# The device is not the one that was called, not creating
7924
7927
# the mdev
7925
7928
continue
7929
+ LOG.debug('Trying on: %s.', dev_name)
7926
7930
dev_supported_type = self._get_vgpu_type_per_pgpu(dev_name)
7927
7931
if dev_supported_type and device['types'][
7928
7932
dev_supported_type]['availableInstances'] > 0:
@@ -7932,7 +7936,13 @@ def _create_new_mediated_device(self, parent, uuid=None):
7932
7936
pci_addr = "{}:{}:{}.{}".format(*dev_name[4:].split('_'))
7933
7937
chosen_mdev = nova.privsep.libvirt.create_mdev(
7934
7938
pci_addr, dev_supported_type, uuid=uuid)
7939
+ LOG.info('Created mdev: %s on pGPU: %s.',
7940
+ chosen_mdev, pci_addr)
7935
7941
return chosen_mdev
7942
+ LOG.debug('Failed: No available instances on device.')
7943
+ LOG.info('Failed to create mdev. '
7944
+ 'No free space found among the following devices: %s.',
7945
+ [dev['dev_id'] for dev in devices])
7936
7946
7937
7947
@utils.synchronized(VGPU_RESOURCE_SEMAPHORE)
7938
7948
def _allocate_mdevs(self, allocations):
@@ -8015,13 +8025,16 @@ def _allocate_mdevs(self, allocations):
8015
8025
# Take the first available mdev
8016
8026
chosen_mdev = mdevs_available.pop()
8017
8027
else:
8028
+ LOG.debug('No available mdevs where found. '
8029
+ 'Creating an new one...')
8018
8030
chosen_mdev = self._create_new_mediated_device(parent_device)
8019
8031
if not chosen_mdev:
8020
8032
# If we can't find devices having available VGPUs, just raise
8021
8033
raise exception.ComputeResourcesUnavailable(
8022
8034
reason='mdev-capable resource is not available')
8023
8035
else:
8024
8036
chosen_mdevs.append(chosen_mdev)
8037
+ LOG.info('Allocated mdev: %s.', chosen_mdev)
8025
8038
return chosen_mdevs
8026
8039
8027
8040
def _detach_mediated_devices(self, guest):
0 commit comments