freenode
Kernel & Low-Level

NVIDIA posts vGPU manager series for nova-core kernel driver

A 32-patch v2 submission adds host-side creation, VRAM layout, and GSP plugin control for NVIDIA virtual GPUs on Linux.

NVIDIA engineers have posted a second-round, 32-patch series that teaches the in-tree nova-core driver how to create and manage NVIDIA vGPU instances on the physical function.

Until now, nova-core has focused on bringing up modern NVIDIA GPUs under an open kernel driver. This work extends that stack so the PF driver can act as a vGPU manager: it assigns types, carves out guest framebuffer and management-heap slots, boots a GSP plugin per virtual function, and tears the instance down when the guest is done. Guests still talk to ordinary NVIDIA drivers inside QEMU; the host path runs through VFIO, with a dedicated NVIDIA VFIO variant driver (submitted separately) binding each VF while nova-core owns firmware-facing lifecycle on the PF.

The series centers on stable resource layout. A dedicated slot allocator reserves exact VRAM ranges from a type-defined pool and tracks them in a bitmap, rejecting requests whose layout does not match the active pool so guest memory is not fragmented across boots. Instance create and destroy follow VFIO open and close: channel IDs and a VRAM slot are reserved up front, the GSP plugin is registered and started with the channel map and framebuffer segments, then shut down and cleaned before those reservations return to the pool. Guest VRAM is scrubbed on allocate and again on teardown so reused slots do not leak prior guest data.

Control traffic after boot uses a shared RPC region mapped through BAR1. The manager negotiates protocol version with the plugin, pushes configuration parameters, and reports bus-master enable so the guest may begin using the vGPU. Zhi Wang led the posting, with co-development from Alok Kumar and Eliot Courtney.

For operators and distros building open NVIDIA stacks, the patches are the host half of first-class vGPU support under nova-core. Full end-to-end use still depends on the separate VFIO variant driver clearing review, but the manager itself is now on the kernel list for integration.