Yrittäisit edes ottaa asioista selvää.
Käyttöjärjestelmäkutsu(INT) on se mikrokoodilla suoritettava käsky, jonka toimintaa spectre-patch muuttaa. Tämän käskyn toimintaa muutettiin siten, että se muun toiminnan lisäksi flushaa osittain BTBn (ilmeisesti siitä osan RSB, return stack buffer)
Samoin ilmeisesti poikkeusten toimintaa muutettiin siten että aina (ennen) kun mennään käyttöjärjestelmän poikkeuskäsittelijään, tehdään sama osittainen BTB-flush. (poikkeuksen heittäminen on myös sen verran monimutkainen asia, että siihen joka tapauksessa myös aina liityy mikrokoodia)
Näiden yhteisvaikutus on se, että user-tilassa tehdyt ennustukset eivät vaikuta kernel-tilassa haarautumisennustimen epäsuorien hyppyjen ennustimeen, koska BTBn olennaiset osat on aina flushattu välissä. Tällöin prosessoria ei epäsuorilla hypyillä saa suorittamaan spekulatiivisesti haluttua koodia kernel-tilassa, mihin perustui specren 2.variantti.
Tämä "korjaus", vaikka toimisi eikä sisältäisi tuota vakausbugia, olisi kuitenkin siitä huono, että se RSB:n data on hukattu aina kernel-kutsun jälkeen, jolloin kernel-kutsuissa ja niiden jälkeen haarautumisenennustin ennustaa huonosti. Kunnollinen korjaus olisi sellainen, että RSBn data tagattaisiin paremmin siten että user-tilassa sinne talletettu data ei vaikuttaisi kernel-tilassa tehtyihin haarautumisiin, mutta se data voitaisiin säilyttää.
Tätä tagaamista ei kuitenkaan mikrokoodipatchillä voi tehdä, koska se vaatii uusia bittejä tuonne RSB-tietorakenteeseen. Tämä "kunnollinen, hidastamaton" korjaus vaatii uuden version prosessorista valmistamisen.
Ja Linus on tästä haukkunut intelin, koska intelin tapa tuoda tuo mikrokoodi vaikuttaa siltä, että Intel on täysin tyytyväinen ratkaisuunsa ja pitää sitä jopa "hienona" eikä ole mahdollisimman nopeasti tuomassa tätä "oikeaa korjausta" RSB-tagibittien muodossa prosessoreihinsa vaan aikoisi jatkaa tuon hidastavan flushaus-workaroundinsa kanssa pitkään.
Näissä patcheissä ei missään yritetä heikentää minkään ajastimien toimintaa siten että side channel ei toimisi koska tarpeeksi tarkkoja ajastuksia ei saada. Se olisi aivan järjetön suo, eikä suojaisi kuitenkaan mitenkään, ellei käytännössä koko välimuistia poistaisi käytöstä, koska aina tekemällä tarpeeeksi monta lukemista ja laskemalla niiden keskiarvoja voisi kuitenkin päätellä jotain, vaikka ajoitukset vähän heittäisikin.