Linux 6.17 kernel: Intel LKGS támogatás és továbbfejlesztett AMD SEV cache-kezelés a KVM-ben

A Linux 6.17 kernel KVM frissítéseinek egyik kiemelt eleme az ARM64 platformon a GICv5 megszakításvezérlő támogatása, amely a legújabb generációs hardver képességeit hozza el, beleértve az MSI-kezelést, a megszakítások átirányítását, a megszakításfordítási mechanizmusokat és a hagyományos, fizikai vonalon érkező megszakításokat. A rendszer a FEAT_GCIE_LEGACY funkció segítségével GICv3-at használó virtuális gépeket is képes futtatni GICv5 hardveren, és a felhasználói térből szabályozhatóvá vált a ‘nASSGIcap’ beállítás. Javult a cache-kezelés bizonyos hardverfunkciók mellett, bővült a FEAT_RAS és FEAT_DoubleFault2 támogatás nested virtualizációs környezetben, valamint több rendszerregiszter-kezelés konfigurációvezérelt működésre állt át.

A LoongArch architektúrán fejlesztették a kernelbe épített megszakításvezérlő emulációt, statisztikai adatokkal és új tracepontokkal bővítve a CPUCFG és CSR emulációs kilépések figyelését. RISC-V platformon megjelent a gyűrűalapú módosított memóriafigyelés, pontosabb lett a teljesítménymérés az interrupt események jelentésével, az illegális utasítás csapdák delegálása VS módba került, és több fejlesztést hajtottak végre a nested virtualizációt támogató MMU-folyamatokban, míg az s390 architektúra kisebb, célzott hibajavításokat kapott.

Linux 6.17 kernel: Intel LKGS támogatás és továbbfejlesztett AMD SEV cache-kezelés a KVM-ben

Általános KVM alrendszer- és tesztfejlesztések

A központi KVM kódbázisban teljesen újratervezték az irqbypass alrendszert, így az nagy számú virtuális gép esetén is hatékonyan működik. Új tracepoint került be a memóriaattribútumok módosításának nyomon követésére, eltávolították a fölösleges fájlrendszeri lekérdezéseket, és javították a dirty ring feldolgozását, hogy a felhasználói tér ne tudja túlterhelni a rendszert. Egyszerűsítették a kódot, megszüntetve a már nem szükséges architektúraspecifikus megszakításkezelési horgokat. A KVM önellenőrző tesztjei új ellenőrzésekkel bővültek, például annak vizsgálatával, hogy a modul valóban betöltődött-e, és a jogosultsági hibákhoz kapcsolódó hibaüzenetek pontosításával. Ezek a változtatások a teljesítmény, a biztonság és a skálázhatóság javítását szolgálják minden támogatott architektúrán, és felkészítik a KVM-et a következő generációs hardverekre és virtualizációs technológiákra.

Info
A KVM (Kernel-based Virtual Machine) a Linux kernelbe épített virtualizációs technológia, amely lehetővé teszi, hogy a rendszer hardveres virtualizációs képességeit (például Intel VT-x vagy AMD-V) kihasználva több, teljes értékű virtuális gép fusson párhuzamosan, mindegyik saját operációs rendszerrel és erőforrás-hozzáféréssel.

x86 és gyártóspecifikus fejlesztések

Az x86 architektúrában megjelent a CONFIG_KVM_IOAPIC opció, amellyel a kernel fordításakor letiltható az I/O APIC, a PIC és a PIT emuláció. Az SVM és a VMX kódjai közötti eszközszintű megszakításkezelés közös alapra került, és továbbfejlesztették a MMIO stale data elleni védelmet. Egységesítették az MSR-intercept mechanizmust, és bekerült az új LKGS utasítás támogatása. Stabilitásjavításként eltávolítottak egy felhasználói művelettel előidézhető figyelmeztetést, lehetővé tették az APERF/MPERF olvasások megszakításának letiltását, valamint pontosították a TSC frekvencia beállításának szabályait.

Az AMD platformon javították az AVIC működésével kapcsolatos hibákat, biztonságosabbá tették a processzorhibák kezelését, rugalmasabbá vált az IPI-virtualizáció vezérlése, és hatékonyabb lett a SEV cache-karbantartás. Az Intel oldalon kiemelt figyelmet kapott a DEBUGCTL.FREEZE_IN_SMM állapot megőrzése, valamint pontosították a nested virtualizációs beállításokat annak érdekében, hogy a rendszer ne fusson nem támogatott konfigurációkban.

A KVM fejlesztésekkel kapcsolatos pull request itt olvasható.