From 070c3fa657b6f24db4c4a17bccde6ae0a5f2594a Mon Sep 17 00:00:00 2001 From: Alex Lyn Date: Thu, 7 Mar 2024 20:31:07 +0800 Subject: [PATCH] docs: add doc about building kernel with upcall and GPU hotplug We need some docs about how to build a guest kernel to support both Upcall and Nvidia GPU Passthrough(hotplug) at the same time. This patch is to do such thing to help users to build a guest kernel with support both Upcall and Nvidia GPU hotplug/unlplug. Fixes: #9140 Signed-off-by: Alex Lyn --- .../NVIDIA-GPU-passthrough-and-Kata.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs/use-cases/NVIDIA-GPU-passthrough-and-Kata.md b/docs/use-cases/NVIDIA-GPU-passthrough-and-Kata.md index e1b5af76e3..7c54de53c3 100644 --- a/docs/use-cases/NVIDIA-GPU-passthrough-and-Kata.md +++ b/docs/use-cases/NVIDIA-GPU-passthrough-and-Kata.md @@ -154,6 +154,29 @@ $ ./build-kernel.sh -v 5.15.23 -g nvidia build $ sudo -E ./build-kernel.sh -v 5.15.23 -g nvidia install ``` +However, there are special cases like `Dragonball VMM`. It directly supports device `hot-plug/hot-unplug` +via upcall to avoid `ACPI` virtualization and minimize `VM` overhead. Since upcall isn't upstream kernel +code, using `Dragonball VMM` for NVIDIA GPU `hot-plug/hot-unplug` requires applying the Upcall patchset in +addition to the above kernel configuration items. Follow these steps to build for NVIDIA GPU `hot-[un]plug` +for `Dragonball`: + +```sh +# Prepare .config to support both upcall and nvidia gpu +$ ./build-kernel.sh -v 5.10.25 -e -t dragonball -g nvidia -f setup + +# Build guest kernel to support both upcall and nvidia gpu +$ ./build-kernel.sh -v 5.10.25 -e -t dragonball -g nvidia build + +# Install guest kernel to support both upcall and nvidia gpu +$ sudo -E ./build-kernel.sh -v 5.10.25 -e -t dragonball -g nvidia install +``` + +> **Note**: +> - `-v 5.10.25` is for the guest kernel version. +> - `-e` here means experimental, mainly because `upcall` patches are not in upstream Linux kernel. +> - `-t dragonball` is for specifying hypervisor type. +> - `-f` is for generating `.config` file. + To build NVIDIA Driver in Kata container, `linux-headers` are required. This is a way to generate deb packages for `linux-headers`: