vGPU Migration(3)

NAME
vGPU Migration -

  Data Structures

struct nvmlVgpuMetadata_t
struct nvmlVgpuPgpuMetadata_t
struct nvmlVgpuPgpuCompatibility_t

  Enumerations

enum nvmlVgpuVmCompatibility_t { NVML_VGPU_VM_COMPATIBILITY_NONE = 0x0, NVML_VGPU_VM_COMPATIBILITY_COLD = 0x1, NVML_VGPU_VM_COMPATIBILITY_HIBERNATE = 0x2, NVML_VGPU_VM_COMPATIBILITY_SLEEP = 0x4, NVML_VGPU_VM_COMPATIBILITY_LIVE = 0x8 }
enum nvmlVgpuPgpuCompatibilityLimitCode_t { NVML_VGPU_COMPATIBILITY_LIMIT_NONE = 0x0, NVML_VGPU_COMPATIBILITY_LIMIT_HOST_DRIVER = 0x1, NVML_VGPU_COMPATIBILITY_LIMIT_GUEST_DRIVER = 0x2, NVML_VGPU_COMPATIBILITY_LIMIT_GPU = 0x4, NVML_VGPU_COMPATIBILITY_LIMIT_OTHER = 0x80000000 }

  Functions

nvmlReturn_t DECLDIR nvmlVgpuInstanceGetMetadata (nvmlVgpuInstance_t vgpuInstance, nvmlVgpuMetadata_t *vgpuMetadata, unsigned int *bufferSize)
nvmlReturn_t DECLDIR nvmlDeviceGetVgpuMetadata (nvmlDevice_t device, nvmlVgpuPgpuMetadata_t *pgpuMetadata, unsigned int *bufferSize)
nvmlReturn_t DECLDIR nvmlGetVgpuCompatibility (nvmlVgpuMetadata_t *vgpuMetadata, nvmlVgpuPgpuMetadata_t *pgpuMetadata, nvmlVgpuPgpuCompatibility_t *compatibilityInfo)

Detailed Description

This chapter describes NVML operations that are associated with vGPU Migration.

Enumeration Type Documentation

  enum nvmlVgpuPgpuCompatibilityLimitCode_t

vGPU-pGPU compatibility limit codes

Enumerator:

NVML_VGPU_COMPATIBILITY_LIMIT_NONE
    Compatibility is not limited.

NVML_VGPU_COMPATIBILITY_LIMIT_HOST_DRIVER
    Compatibility is limited by host driver version.

NVML_VGPU_COMPATIBILITY_LIMIT_GUEST_DRIVER
    Compatibility is limited by guest driver version.

NVML_VGPU_COMPATIBILITY_LIMIT_GPU
    Compatibility is limited by GPU hardware.

NVML_VGPU_COMPATIBILITY_LIMIT_OTHER
    Compatibility is limited by an undefined factor.

  enum nvmlVgpuVmCompatibility_t

vGPU VM compatibility codes

Enumerator:

NVML_VGPU_VM_COMPATIBILITY_NONE
    vGPU is not runnable

NVML_VGPU_VM_COMPATIBILITY_COLD
    vGPU is runnable from a cold / powered-off state (ACPI S5)

NVML_VGPU_VM_COMPATIBILITY_HIBERNATE
    vGPU is runnable from a hibernated state (ACPI S4)

NVML_VGPU_VM_COMPATIBILITY_SLEEP
    vGPU is runnable from a sleeped state (ACPI S3)

NVML_VGPU_VM_COMPATIBILITY_LIVE
    vGPU is runnable from a live/paused (ACPI S0)

Function Documentation

  nvmlReturn_t DECLDIR nvmlDeviceGetVgpuMetadata (nvmlDevice_t device, nvmlVgpuPgpuMetadata_t * pgpuMetadata, unsigned int * bufferSize)

Returns a vGPU metadata structure for the physical GPU indicated by device. The structure contains information about the GPU and the currently installed NVIDIA host driver version that's controlling it, together with an opaque data section containing internal state.

The caller passes in a buffer via pgpuMetadata, with the size of the buffer in bufferSize. If the pgpuMetadata structure is too large to fit in the supplied buffer, the function returns NVML_ERROR_INSUFFICIENT_SIZE with the size needed in bufferSize.

Parameters:
    device The identifier of the target device
    pgpuMetadata Pointer to caller-supplied buffer into which pgpuMetadata is written
    bufferSize Pointer to size of pgpuMetadata buffer

Returns:

    •   NVML_SUCCESS GPU metadata structure was successfully returned

    •   NVML_ERROR_INSUFFICIENT_SIZE pgpuMetadata buffer is too small, required size is returned in bufferSize

    •   NVML_ERROR_INVALID_ARGUMENT if bufferSize is NULL or device is invalid; if pgpuMetadata is NULL and the value of bufferSize is not 0.

    •   NVML_ERROR_NOT_SUPPORTED vGPU is not supported by the system

    •   NVML_ERROR_UNKNOWN on any unexpected error

  nvmlReturn_t DECLDIR nvmlGetVgpuCompatibility (nvmlVgpuMetadata_t * vgpuMetadata, nvmlVgpuPgpuMetadata_t * pgpuMetadata, nvmlVgpuPgpuCompatibility_t * compatibilityInfo)

Takes a vGPU instance metadata structure read from nvmlVgpuInstanceGetMetadata(), and a vGPU metadata structure for a physical GPU read from nvmlDeviceGetVgpuMetadata(), and returns compatibility information of the vGPU instance and the physical GPU.

The caller passes in a buffer via compatibilityInfo, into which a compatibility information structure is written. The structure defines the states in which the vGPU / VM may be booted on the physical GPU. If the vGPU / VM compatibility with the physical GPU is limited, a limit code indicates the factor limiting compability. (see nvmlVgpuPgpuCompatibilityLimitCode_t for details).

Note: vGPU compatibility does not take into account dynamic capacity conditions that may limit a system's ability to boot a given vGPU or associated VM.

Parameters:
    vgpuMetadata Pointer to caller-supplied vGPU metadata structure
    pgpuMetadata Pointer to caller-supplied GPU metadata structure
    compatibilityInfo Pointer to caller-supplied buffer to hold compatibility info

Returns:

    •   NVML_SUCCESS vGPU metadata structure was successfully returned

    •   NVML_ERROR_INVALID_ARGUMENT if vgpuMetadata or pgpuMetadata or bufferSize are NULL

    •   NVML_ERROR_UNKNOWN on any unexpected error

  nvmlReturn_t DECLDIR nvmlVgpuInstanceGetMetadata (nvmlVgpuInstance_t vgpuInstance, nvmlVgpuMetadata_t * vgpuMetadata, unsigned int * bufferSize)

Returns vGPU metadata structure for a running vGPU. The structure contains information about the vGPU and its associated VM such as the currently installed NVIDIA guest driver version, together with host driver version and an opaque data section containing internal state.

nvmlVgpuInstanceGetMetadata() may be called at any time for a vGPU instance. Some fields in the returned structure are dependent on information obtained from the guest VM, which may not yet have reached a state where that information is available. The current state of these dependent fields is reflected in the info structure's guestInfoState field.

The VMM may choose to read and save the vGPU's VM info as persistent metadata associated with the VM, and provide it to GRID Virtual GPU Manager when creating a vGPU for subsequent instances of the VM.

The caller passes in a buffer via vgpuMetadata, with the size of the buffer in bufferSize. If the vGPU Metadata structure is too large to fit in the supplied buffer, the function returns NVML_ERROR_INSUFFICIENT_SIZE with the size needed in bufferSize.

Parameters:
    vgpuInstance vGPU instance handle
    vgpuMetadata Pointer to caller-supplied buffer into which vGPU metadata is written
    bufferSize Size of vgpuMetadata buffer

Returns:

    •   NVML_SUCCESS vGPU metadata structure was successfully returned

    •   NVML_ERROR_INSUFFICIENT_SIZE vgpuMetadata buffer is too small, required size is returned in bufferSize

    •   NVML_ERROR_INVALID_ARGUMENT if bufferSize is NULL or vgpuInstance is 0; if vgpuMetadata is NULL and the value of bufferSize is not 0.

    •   NVML_ERROR_NOT_FOUND if vgpuInstance does not match a valid active vGPU instance on the system

    •   NVML_ERROR_UNKNOWN on any unexpected error

Author

Generated automatically by Doxygen for NVML from the source code.