Am Freitag wurde eine aktualisierte Reihe von Patches veröffentlicht, die offenbar die Leistung der Linux-Gast-VM verbessern, wenn der Host unter starker Speicherauslastung steht.
Seit Mitte 2021 verwendet Googles ChromeOS ähnlichen Code auf „zig Millionen Geräten“ und kürzlich hat der Google-Ingenieur Yu Zhao – bekannt für seine Arbeit an MGLRU – daran gearbeitet, diese Verbesserung vorzustreamen.
Der Zweck der Patches besteht darin, einen schnellen Weg zum Löschen des Zugriffsbits bereitzustellen, ohne die KVM-MMU-Sperre zu nehmen. Yu Zhao hat diese Patches bereits im Februar veröffentlicht, während die v2-Patches vom Freitag den Code umgestalten und Feedback aus früheren Überprüfungen einbeziehen.
Die Patch-Serie erklärt:
“Das Ziel dieses Patchsets ist um die Leistung von Gästen zu optimieren, wenn der Hostspeicher überlastet ist. Es konzentriert sich auf einen einfachen, aber häufigen Fall, bei dem Hardware das Zugriffsbit in KVM-PTEs festlegt und VMs nicht verschachtelt sind. Komplexe Fälle greifen auf den vorhandenen langsamen Pfad zurück, bei dem kvm->mmu_lock Dann wird gewählt.
Der schnelle Weg basiert auf zwei Techniken, um das Bit, auf das zugegriffen wird, sicher zu löschen: RCU und CAS. Ersteres schützt KVM-Seitentabellen vor der Freigabe, während letzteres das Bit, auf das zugegriffen wird, atomar sowohl auf der Hardware-als auch auf der anderen Softwareseite löscht Tischwanderer.”
Benchmarks sollen bald verfügbar sein, um die Leistungsverbesserung des VM-Gasts zu quantifizieren, während der Host durch Speicherdruck herausgefordert wird.
Google-Ingenieure arbeiten außerdem an Working Set Reporting für einen besseren Umgang mit überlasteten VMs als weitere Verbesserung für den Kernel.