fix(pkg): build dkms kvm from 7.2.9 and pin to the exact release
This commit is contained in:
@@ -66,7 +66,7 @@ cd vfio-native/packaging
|
||||
| --- | --- |
|
||||
| `vfio-native` | the three commands, the patches, the ACPI tables, the benchmark, the libvirt hook |
|
||||
| `vfio-native-qemu` | QEMU 11.1.2 with the platform-identity patches, in `/opt/qemu-native` |
|
||||
| `vfio-native-kvm-dkms` | the patched KVM modules, rebuilt by DKMS for every installed 7.2.x kernel |
|
||||
| `vfio-native-kvm-dkms` | the patched KVM modules, rebuilt by DKMS for every installed kernel of its pinned release |
|
||||
|
||||
The modules land in `updates/dkms/`, which modprobe prefers, but nothing reloads them for you.
|
||||
With every VM shut down:
|
||||
@@ -87,8 +87,8 @@ any further to use it:
|
||||
Only `full` needs the QEMU and KVM packages. `native` is domain XML only.
|
||||
|
||||
Not an Arch user? The scripts in `scripts/` are plain shell and work standalone, and the module
|
||||
sources build as `arch/x86/kvm` against any 7.2.x tree; `scripts/install-modules.sh` is the manual
|
||||
path. The packaging is convenience, not a dependency.
|
||||
patches build as `arch/x86/kvm` from a kernel tree of the release you run;
|
||||
`scripts/install-modules.sh` is the manual path. The packaging is convenience, not a dependency.
|
||||
|
||||
### 2. Fix the guest, once
|
||||
|
||||
@@ -215,7 +215,7 @@ corrected.
|
||||
| --- | --- | --- | --- |
|
||||
| `tuned` | 13/85 | nothing | none |
|
||||
| `native` | 7/85 | nothing | none |
|
||||
| `full` | **1/85** | `vfio-native-qemu` + `vfio-native-kvm-dkms`, passthrough switched on after boot | DKMS rebuilds on kernel updates inside 7.2.x |
|
||||
| `full` | **1/85** | `vfio-native-qemu` + `vfio-native-kvm-dkms`, passthrough switched on after boot | bump the DKMS package on every kernel release |
|
||||
|
||||
`tuned` buys the pinning and the cache-domain sizing and nothing else.
|
||||
|
||||
@@ -333,14 +333,15 @@ which libvirt runs after any `qemu` hook you already have, so it does not replac
|
||||
|
||||
| Event | `tuned` / `native` | `full` |
|
||||
| --- | --- | --- |
|
||||
| Kernel update inside 7.2.x | nothing | DKMS rebuilds the modules; reload or reboot |
|
||||
| Kernel update past 7.2 | nothing | **the modules stop building** - bump `_kver` in the DKMS package |
|
||||
| Kernel rebuild of the same release | nothing | DKMS rebuilds the modules; reload or reboot |
|
||||
| Kernel update to a new release | nothing | **the modules stop building** - bump `_kver` in the DKMS package |
|
||||
| QEMU package update | nothing | nothing, `/opt/qemu-native` is its own package |
|
||||
| Newer QEMU base | nothing | re-apply `patches/qemu/` |
|
||||
|
||||
The DKMS tree carries 7.2.3's KVM sources. They build against any 7.2.x headers, and DKMS refuses
|
||||
anything else, so after a kernel upgrade past 7.2 the stock modules load silently, the guest boots
|
||||
fine and scores worse, with nothing to tell you but a pacman hook message:
|
||||
The DKMS tree carries one stable release's KVM sources, and DKMS refuses every other release:
|
||||
stable updates change KVM too, so a mismatched tree either fails to compile or silently builds
|
||||
stale code. After any kernel upgrade the stock modules load silently, the guest boots fine and
|
||||
scores worse, with nothing to tell you but a pacman hook message:
|
||||
|
||||
```sh
|
||||
cat /sys/module/kvm/srcversion /sys/module/kvm_amd/srcversion
|
||||
|
||||
Reference in New Issue
Block a user