@@ -8323,6 +8323,7 @@ def _get_existing_mdevs_not_assigned(self, parent, requested_types=None):
8323
8323
:param requested_types: Filter out the result for only mediated devices
8324
8324
having those types.
8325
8325
"""
8326
+ LOG.debug('Searching for available mdevs...')
8326
8327
allocated_mdevs = self._get_all_assigned_mediated_devices()
8327
8328
mdevs = self._get_mediated_devices(requested_types)
8328
8329
available_mdevs = set()
@@ -8338,6 +8339,7 @@ def _get_existing_mdevs_not_assigned(self, parent, requested_types=None):
8338
8339
available_mdevs.add(mdev["uuid"])
8339
8340
8340
8341
available_mdevs -= set(allocated_mdevs)
8342
+ LOG.info('Available mdevs at: %s.', available_mdevs)
8341
8343
return available_mdevs
8342
8344
8343
8345
def _create_new_mediated_device(self, parent, uuid=None):
@@ -8349,6 +8351,7 @@ def _create_new_mediated_device(self, parent, uuid=None):
8349
8351
8350
8352
:returns: the newly created mdev UUID or None if not possible
8351
8353
"""
8354
+ LOG.debug('Attempting to create new mdev...')
8352
8355
supported_types = self.supported_vgpu_types
8353
8356
# Try to see if we can still create a new mediated device
8354
8357
devices = self._get_mdev_capable_devices(supported_types)
@@ -8360,6 +8363,7 @@ def _create_new_mediated_device(self, parent, uuid=None):
8360
8363
# The device is not the one that was called, not creating
8361
8364
# the mdev
8362
8365
continue
8366
+ LOG.debug('Trying on: %s.', dev_name)
8363
8367
dev_supported_type = self._get_vgpu_type_per_pgpu(dev_name)
8364
8368
if dev_supported_type and device['types'][
8365
8369
dev_supported_type]['availableInstances'] > 0:
@@ -8369,7 +8373,13 @@ def _create_new_mediated_device(self, parent, uuid=None):
8369
8373
pci_addr = "{}:{}:{}.{}".format(*dev_name[4:].split('_'))
8370
8374
chosen_mdev = nova.privsep.libvirt.create_mdev(
8371
8375
pci_addr, dev_supported_type, uuid=uuid)
8376
+ LOG.info('Created mdev: %s on pGPU: %s.',
8377
+ chosen_mdev, pci_addr)
8372
8378
return chosen_mdev
8379
+ LOG.debug('Failed: No available instances on device.')
8380
+ LOG.info('Failed to create mdev. '
8381
+ 'No free space found among the following devices: %s.',
8382
+ [dev['dev_id'] for dev in devices])
8373
8383
8374
8384
@utils.synchronized(VGPU_RESOURCE_SEMAPHORE)
8375
8385
def _allocate_mdevs(self, allocations):
@@ -8452,13 +8462,16 @@ def _allocate_mdevs(self, allocations):
8452
8462
# Take the first available mdev
8453
8463
chosen_mdev = mdevs_available.pop()
8454
8464
else:
8465
+ LOG.debug('No available mdevs where found. '
8466
+ 'Creating an new one...')
8455
8467
chosen_mdev = self._create_new_mediated_device(parent_device)
8456
8468
if not chosen_mdev:
8457
8469
# If we can't find devices having available VGPUs, just raise
8458
8470
raise exception.ComputeResourcesUnavailable(
8459
8471
reason='mdev-capable resource is not available')
8460
8472
else:
8461
8473
chosen_mdevs.append(chosen_mdev)
8474
+ LOG.info('Allocated mdev: %s.', chosen_mdev)
8462
8475
return chosen_mdevs
8463
8476
8464
8477
def _detach_mediated_devices(self, guest):
0 commit comments