A Linux nyugdíjba küldi 32 bites MSR-felületeit

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

A 32 bites MSR-felületek, például az rdmsr() és rdmsr_safe() használatát fokozatosan kivezetik, mert a 64 bites felületek – mint az rdmsrq() – fejlettebbek. Így az összes MSR-hozzáférési makrót inline függvénnyé lehet alakítani, és könnyebb lesz az MSR-kód átszervezése és fejlesztése a jövőben. Juergen Gross a javítócsomag-sorozatban így magyarázta:

„A helyi CPU MSR-regisztereinek elérésére kétféle felület létezik: a „modern” 64 bitesek (rdmsrq() stb.), illetve a 32 bitesek (rdmsr() stb.), amelyek a 64 bites MSR-regiszterértékek alsó és felső 32 bites felét használják.

A 32 bites felületek három okból sem ideálisak:

  • Úgyis 64 bites értékeket használó primitívekre épülnek.
  • A modern x86 CPU-k már támogatják az MSR-hozzáférési utasításokat, ahol az MSR címe egy azonnali érték, miközben maga az érték egy 64 bites regiszterben van.
  • Az rdmsr() egy makró, amely a felső és alsó 32 bites felet a makróparaméterként megadott változókba menti. Ez elrejti a változó-hozzárendelést egy makró mögé. Ráadásul az rdmsrq() is ezt a mintát követi, szintén makróként, ahol a célváltozó szintén paraméterként szerepel.

Ezért teljesen el kell hagyni a 32 bites felületeket az x86 MSR-regiszterek eléréséhez, és csak a 64 bites változatokat szabad használni.

Így végül az összes „magas szintű” MSR-hozzáférési makrót inline függvénnyé lehet alakítani.

Ezt a sorozatot alapnak szánjuk az MSR-hozzáférési függvények további átszervezéséhez, különösen azért, hogy az MSR-hozzáférési utasításokat teljesen inline módon használjuk, még akkor is, ha a paravirtualizáció aktív.”

A javítócsomagok egy részét az elmúlt napban már be is sorolták a

tip/tip.Git x86/msr Git ágba, hogy a közös x86 kernel kód különböző részein megszüntessék a 32 bites MSR-felületek használatát. A többi javítócsomag várhatóan a saját alrendszerük ágain keresztül érkezik majd. Mivel ez a munka már megjelent a tip/tip.Git ágban, várhatóan a Linux 7.3 kernel ciklusában, az év későbbi részében kerül be. Ha a többi javítócsomagot is besorolják a következő hetekben a megfelelő ágakba, az régi felületek kivezetéséhez vezethet a mainline kernel-ból még idén.

A levelezőlistán felmerült, hogy a 32 bites MSR-felületek eltávolítása nem érinti a Linux x86 32 bites CPU-támogatását. Csupán a hívási konvenciók változnak a kernel kódon belül, a régebbi 32 bites CPU-k továbbra is működni fognak.