@@ -8115,6 +8115,7 @@ def _get_existing_mdevs_not_assigned(self, parent, requested_types=None):
8115
8115
:param requested_types: Filter out the result for only mediated devices
8116
8116
having those types.
8117
8117
"""
8118
+ LOG.debug('Searching for available mdevs...')
8118
8119
allocated_mdevs = self._get_all_assigned_mediated_devices()
8119
8120
mdevs = self._get_mediated_devices(requested_types)
8120
8121
available_mdevs = set()
@@ -8130,6 +8131,7 @@ def _get_existing_mdevs_not_assigned(self, parent, requested_types=None):
8130
8131
available_mdevs.add(mdev["uuid"])
8131
8132
8132
8133
available_mdevs -= set(allocated_mdevs)
8134
+ LOG.info('Available mdevs at: %s.', available_mdevs)
8133
8135
return available_mdevs
8134
8136
8135
8137
def _create_new_mediated_device(self, parent, uuid=None):
@@ -8141,6 +8143,7 @@ def _create_new_mediated_device(self, parent, uuid=None):
8141
8143
8142
8144
:returns: the newly created mdev UUID or None if not possible
8143
8145
"""
8146
+ LOG.debug('Attempting to create new mdev...')
8144
8147
supported_types = self.supported_vgpu_types
8145
8148
# Try to see if we can still create a new mediated device
8146
8149
devices = self._get_mdev_capable_devices(supported_types)
@@ -8152,6 +8155,7 @@ def _create_new_mediated_device(self, parent, uuid=None):
8152
8155
# The device is not the one that was called, not creating
8153
8156
# the mdev
8154
8157
continue
8158
+ LOG.debug('Trying on: %s.', dev_name)
8155
8159
dev_supported_type = self._get_vgpu_type_per_pgpu(dev_name)
8156
8160
if dev_supported_type and device['types'][
8157
8161
dev_supported_type]['availableInstances'] > 0:
@@ -8161,7 +8165,13 @@ def _create_new_mediated_device(self, parent, uuid=None):
8161
8165
pci_addr = "{}:{}:{}.{}".format(*dev_name[4:].split('_'))
8162
8166
chosen_mdev = nova.privsep.libvirt.create_mdev(
8163
8167
pci_addr, dev_supported_type, uuid=uuid)
8168
+ LOG.info('Created mdev: %s on pGPU: %s.',
8169
+ chosen_mdev, pci_addr)
8164
8170
return chosen_mdev
8171
+ LOG.debug('Failed: No available instances on device.')
8172
+ LOG.info('Failed to create mdev. '
8173
+ 'No free space found among the following devices: %s.',
8174
+ [dev['dev_id'] for dev in devices])
8165
8175
8166
8176
@utils.synchronized(VGPU_RESOURCE_SEMAPHORE)
8167
8177
def _allocate_mdevs(self, allocations):
@@ -8244,13 +8254,16 @@ def _allocate_mdevs(self, allocations):
8244
8254
# Take the first available mdev
8245
8255
chosen_mdev = mdevs_available.pop()
8246
8256
else:
8257
+ LOG.debug('No available mdevs where found. '
8258
+ 'Creating an new one...')
8247
8259
chosen_mdev = self._create_new_mediated_device(parent_device)
8248
8260
if not chosen_mdev:
8249
8261
# If we can't find devices having available VGPUs, just raise
8250
8262
raise exception.ComputeResourcesUnavailable(
8251
8263
reason='mdev-capable resource is not available')
8252
8264
else:
8253
8265
chosen_mdevs.append(chosen_mdev)
8266
+ LOG.info('Allocated mdev: %s.', chosen_mdev)
8254
8267
return chosen_mdevs
8255
8268
8256
8269
def _detach_mediated_devices(self, guest):
0 commit comments