Linus Thorvalds har atter en gang sett seg lei av maskinvare-rot.
Mener det kompliserer unødvendig
Denne gangen er det klassifiseringer av x86-64 mikroarkitekturer som irriterer finnen: “Hele “v2”, “v3”, “v4” osv.-navngivningen virker som en gal glibc-artefakt, og det er dumt og bør forsvinne,» mener han – navnesystemet ble introdusert av Florian Weimer hos Red Hat i 2020.
«Det disse nivåene i hovedsak gjør, er å klassifisere CPU-funksjoner på en tidsmessig/kronologisk måte for å forsøke å gjøre det enklere å forbedre maskinvare- og OS/programvare-kompatibilitet og synergi gjennom bedre kompilasjonsoptimaliseringer,» forklarer Neowin og legger ved noen eksempler:
- x86-64-v2 introduserer støtte (blant annet) for vektorinstruksjoner opp til Streaming SIMD Extensions 4.2 (SSE4.2) og Supplemental Streaming SIMD Extensions 3 (SSSE3), POPCNT-instruksjonen (nyttig for dataanalyse og bit-manipulering i enkelte datastrukturer), og CMPXCHG16B (en to-ords sammenlign-og-bytt-instruksjon som er nyttig for samtidige algoritmer).
- x86-64-v3 legger til vektorinstruksjoner opp til AVX2, MOVBE (for big-endian data-tilgang), og flere bit-manipulasjonsinstruksjoner.
- x86-64-v4 inkluderer vektorinstruksjoner fra noen av AVX-512-variantene.
Dere skjønner sikkert for lengst hva Thorvalds bestemte seg for? Jepp: dette blir ikke å finne i Linux-kernelen:
«Det har ingen relevans for noe som helst. Vennligst ikke introducer denne tanketabben i kjernens kildekode. Jeg har ingen anelse om hvem som kom opp med “mikroarkitekturnivå”-tullet, men så vidt jeg kan se, er det helt uoffisielt og et totalt ødelagt konsept. Det finnes en reell modell for mikroarkitekturelle funksjoner, og det er CPUID-bitene. Å forsøke å linearisere disse bitene er teknisk feil, fordi disse tingene rett og slett ikke utgjør noen form for lineær progresjon.
Annonse
Enda verre, det er en “forenkling” som faktisk legger til kompleksitet. Nå, i stedet for å spørre “støtter denne CPU-en instruksjonen cmpxchg16b?”, blir spørsmålet i stedet “hva i all verden betyr ‘v3’ igjen?” Så nei. Vi kommer IKKE til å introdusere denne idiotien i kjernen.»
Linus er for øvrig en del av gruppen for x86-plattformen, så han er uten tvil en støttespiller sammen med Google, Microsoft, Dell, Lenovo, Meta, Oracle, HP, Red Hat og Broadcom.


