Beim Starten meiner VM wird die CPU-Kernaffinität aller Prozesse auf meinem Archlinux-Host auf alle Kerne zurückgesetzt. Dasselbe passiert, wenn die VM stoppt.
Meine VM verwendet CPU-Pinning, aber das ist erst vor ein paar Monaten passiert. Ich habe versucht, sie mit virt-manager und mit virsh zu starten, beide machen es auf diese Weise.
Ich habe etwas über cgroups gelesen, aber dort steht nicht, dass die Affinitätseinstellungen jemals berührt werden.
aktuelle libvirt-Version: 1:7.5.0-1
Es gibt viele Themen zu CPU-Isolierungen, Core-Abschirmung und mehr für Gaming-VMs, aber ich verstehe nicht, warum die normale Core-Affinität jemals zurückgesetzt werden sollte. Gibt es eine Möglichkeit, herauszufinden, was dies verursacht? Normalerweise stelle ich die Affinität mit dem Taskset ein. Vielleicht soll dies eine neue Funktion sein, aber ich kann keine finden.
Antwort1
Tatsächlich waren es cgroups!
cgroups2, um genauer zu sein. Der „Bug“ wurde wahrscheinlich eingeführt, als meine Distribution, Arch Linux, cgroups änderte.
"Es ist möglich, die Verwendung eines Controllers, auch wenn dieser gemountet ist, über die Konfigurationsdatei /etc/libvirt/qemu.conf explizit abzuschalten." gemäßhttps://libvirt.org/cgroups.html#legacyLayout. Aber das hat bei mir überhaupt nicht funktioniert. Es hat trotzdem einfach CPU-Sets mit Cgroups erstellt (ich frage mich, warum).
Für mich ist das Problem jedoch behoben, da wir einfach Kernel ohne CPU-Sets (oder sogar Cgroups) erstellen können. Randbemerkung:Sie können dies bedenkenlos tun. Alle konfigurierten Kernfixierungen bleiben problemlos erhalten.
Wenn Sie bessere Lösungen oder Erkenntnisse dazu haben, wie die Konfiguration in libvirt funktionieren würde, sind Sie trotzdem willkommen!