← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1948705] [NEW] vGPU instance is not reattached to guest on resume

 

Public bug reported:

Description
===========
When suspending a guest with a vGPU instance attached to it, Nova asks libvirt to detach that device, since the guest can't be suspended otherwise. When resuming that guest, however, it comes back without the vGPU instance previously attached to it.

This happens because, at the time the feature was developed, libvirt did
not support hot unplugging mediated devices [1]. That limitation has
been lifted since then, and the resume operation needs to be modified in
order to reattach the mediated device (vGPU instance) that was detached
on suspend.

[1]
https://opendev.org/openstack/nova/src/branch/master/nova/virt/libvirt/driver.py#L8003

Steps to reproduce
==================
1 - Set up the environment in order to provide vGPU capabilities to Nova;
2 - Spawn an instance using a flavor that asks for a vGPU;
3 - Suspend the instance;
4 - Resume the instance;


Expected result
===============
After resuming the instance, it should still have a vGPU instance attached.


Actual result
=============
The instance comes back without a vGPU attached.


Environment
===========
- Tested on StarlingX OpenStack - Ussuri; master code still does not provide a fix.
- Libvirt v4.7.0 + KVM.

** Affects: nova
     Importance: Undecided
     Assignee: Gustavo Santos (gooshtavow)
         Status: In Progress

** Changed in: nova
     Assignee: (unassigned) => Gustavo Santos (gooshtavow)

** Changed in: nova
       Status: New => In Progress

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1948705

Title:
  vGPU instance is not reattached to guest on resume

Status in OpenStack Compute (nova):
  In Progress

Bug description:
  Description
  ===========
  When suspending a guest with a vGPU instance attached to it, Nova asks libvirt to detach that device, since the guest can't be suspended otherwise. When resuming that guest, however, it comes back without the vGPU instance previously attached to it.

  This happens because, at the time the feature was developed, libvirt
  did not support hot unplugging mediated devices [1]. That limitation
  has been lifted since then, and the resume operation needs to be
  modified in order to reattach the mediated device (vGPU instance) that
  was detached on suspend.

  [1]
  https://opendev.org/openstack/nova/src/branch/master/nova/virt/libvirt/driver.py#L8003

  Steps to reproduce
  ==================
  1 - Set up the environment in order to provide vGPU capabilities to Nova;
  2 - Spawn an instance using a flavor that asks for a vGPU;
  3 - Suspend the instance;
  4 - Resume the instance;

  
  Expected result
  ===============
  After resuming the instance, it should still have a vGPU instance attached.

  
  Actual result
  =============
  The instance comes back without a vGPU attached.

  
  Environment
  ===========
  - Tested on StarlingX OpenStack - Ussuri; master code still does not provide a fix.
  - Libvirt v4.7.0 + KVM.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1948705/+subscriptions



Follow ups