Intels Skylake- och Kaby Lake-processorer har Hyperthreading-relaterat fel

Permalänk
Medlem
Skrivet av SeF.Typh00n:

Intressant, men ganska orelevant. Det är precis som alla andra sådana här grejer extrema edge-case där det händer.

Frågan är inte enbart om hur ofta det händer utan också om hur mycket skada det kan ställa till med när det händer.
I fall där programmet uträttar något viktigt så kan man kanske leva med om programmet krashar - för då upptäcker man det och kan starta om. Men om programmet bara levererar inkorrekta beräkningar utan att man upptäcker det så kan det ställa till saker.

AMD Ryzen har förresten en liknande bugg och jag har ännu inte sett något uttalande från AMD om det. Ganska många användare med Linux-distributioner där alla program kompileras för att installeras har varit med om att kompilatorn krashat om och om igen. En kernel-utvecklare för en BSD-distribution har lyckats reproducera felet varje gång.
Men det är svårt att hitta bra information om det i olika forum därför att folk och fä skriker på varandra om hur oviktigt det skulle vara, eller att man skulle behöva skylla sig själv eftersom plattformen är ny, anklagelser om att de som har problem skulle ha överklockat och att det egentligen skulle ha varit orsakat av överklockning. Och sen alla dessa ovidkommande kommentarer från folk som postar reflexmässigt utan att ha förstått innebörden i det/de inlägg de kommenterar eller i förnekelse över sitt nya dyra inköp etc. etc ... Man blir galen.

Visa signatur

För övrigt anser jag att tobak ska förbjudas.

Permalänk

Ajfan, får hoppas att Asus uppdaterar sina äldre modeller också då. Senaste bios-uppdateringen var visserligen i April, så det kan nog dyka upp.

Jag anser mitt system vara väldigt stabilt iaf, med överklockningen. Rullar ofta dygnet runt och pysslar en hel del med rendering i olika program, samt spelande såklart. Det flummiga med denna buggen är väl att det inte är så specifikt med vad som faktiskt kan hända. Det behöver väl inte resultera i total frysning med bluescreen, utan kan säkert krasha enstaka applikationer, men då är det ju enklare att skylla på mjukvaran i sig eller Windows

Menar bara att det kan vara väldigt svårt att koppla diverse fel med denna typen av bugg. Skulle tex 3d Studio Max få för sig att krasha mitt under arbetet så skulle jag väl inte direkt börja svära över min processors buggiga hyperthreading. Så egentligen vet man väl inte hur pass allvarligt det är.

Visa signatur

Intel i7 6700k @4.7Ghz | Be Quet! Dark Rock Pro 3 | Asus Z170 ROG Hero VIII | 32GB DDR4 Corsair Vengeance 3000Mhz | Asus 1080Ti Strix OC | Samsung 950 Pro M.2 250GB, Samsung EVO 850 120GB, Samsung EVO 840 250GB, & Seagate 7200rpm 4TB | Corsair HX 1050W | Fractal Design S | Asus Xonar U7 | Sennheiser PC360 | TrackIR 5 + ProClip | Eizo 27" EV2736W | HTC Vive | Windows 10 Pro

Permalänk
Medlem
Skrivet av Nivity:

Min processor är helt stabil med överklock.
Ska man gå efter någon sällsynt bugg som kan hända så kan man lika gärna säga att plötsligt kan X del i datorn dö, det kan hända, händer inte ofta men det kan, dvs ditt system är aldrig HELT STABILT.

Nej, min dator är iaf stabil, om detta sällsynta felet skulle slå mig någon gång i framtiden kan jag ändra min mening, tills dess nopp stabilt

Nu måste jag undra... har du gjort det testet för att framkalla felet som beskrivs då? Eller har du bara kört vanliga benchmark i 24h och därför antagit att det är "good2go"?

Du kan ha fel som rättas till med ECC långt innan du får fel i program eller fel i tester. Ofta ser man dessa genom att prestandan minskas när man är på gränsen, då ECC tar lite tid, vilket stör. Risken är större att du får större fel när du redan är inne på och norpar av detta skydd på tex L2 cachen.

Problemet som jag tror @anon159643 här försöker förklara är att när man utvecklar saker och speciellt testar kod... får inget bli fel pga defekt hårdvara. Om det gör det kan du spendera timmar och 100-tals kronor på att jaga fel som inte finns, eller kompilera defekta bibliotek som kan göra att andra sedan kraschar utan förklaring.

Så att det ens finns en risk för honom att få okontrollerade och oväntade fel förstår jag är ett problem. Detta fel kan ju påverka på helt okända sätt, vilket kan vara orsaken att du kraschade i ett spel för ett tag sedan, även om du trodde det var spelet...

Sen för dig som sitter och OCar och lite skiter i om du får ett udda fel, eller ECC måste kicka in nån gång, eller tom frå BSOD 1 gång på ett år, är en helt annan miljö. Det är inte hela världen om du får ett mindre problem, och du ofta tom märker inte ens dessa fel då programkod ofta har en hel del självkorrigering i sig. Man märker detta rätt fort på ett Alpha spel tex, som saknar dessa skydd, om man har instabil CPU. Svåra är att hitta CPU felen från programmerings buggarna.

Om det är något jag dock sett mycket väl så är det folk som tror deras setup "är 100% stabil"... när den bara är 99.9%... de har bara inte lyckats hitta den 0.1% som triggar då de kör samma tester om och om igen.

Ang artikeln så är det ett litet fel, men ändå ett som behöver uppdagas då det kan påverka känsliga saker. Normalt väntar många utvecklare på att en CPU eller en generation av modekort ska bli "pålitliga" innan de hoppar på den.

De rör tex inte Ryzen än, då det är för instabilt, men med B2 så kanske det kan ändras. Av samma anledning rörde de inte Skylake i början med sina minnesfel heller, utan höll sig till Haswell som var stabil och felen fixade. Ingen CPU är felfri, och det är viktigare att felen hittas, än att man tror att det inte finns några.

Permalänk
Medlem

Nog för att ingen verkar ha märkt av om de ev. drabbats i något avseende.
Att det förekommer buggar i CPU:er är knappast något nytt, finns väl ingen processor som varit helt buggfri from scratch?
Det är ju lite därför som BIOS är en viktig och nödvändig komponent att hålla up to date.

En annan aspekt på situationen är att se om BIOS uppdateringar av denna kaliber letar sig ut till alla konsument-PC's.
För folket på Swec. lär det inte vara några bekymmer med att ligga på senaste BIOS, troligtvis är situationen rätt annorlunda för kreti och pleti.
Kan buggen t.ex nyttjas av skadlig kod för att sabotera ouppdaterade datorsystem?

Visa signatur

Tower: ace Battle IV | CPU AMD Phenom II X2 BE unlocked 4cores@3,2GHz | RAM 8GB DDR2@800MHz | MB ASUS M4A785-M | GFK AMD Radeon HD 6850 1GB | HDD Kingston SSD Now 60GB (/) Seagate 2TB(/home) | OS Ubuntu 20.04 LTS
-Numera titulerad: "dator-hipster" då jag har en AMD GPU och dessutom kör Linux.

Permalänk
Medlem

Och vad innebär detta i praktiken? Är det ovanligt med färre än 64 instruktioner i dessa register? Vilka typ av situationer/applikationer använder dessa?

Skickades från m.sweclockers.com

Permalänk
Medlem

Min dator e bara för spel men får väl tro att MSI fixar,

Visa signatur

"When I get sad, I stop being sad and be awsome instead, true story."

Permalänk
Medlem
Skrivet av SeF.Typh00n:

Ja, är det relevant om det gått obemärkt förbi och ingen har noterat att bli drabbad av det?

Det är en intressant notis, men inget mer än det.

Har du ens fattat vad det innebär?

Det är inte korrekt att ingen blivit drabbad av det. Hela soppan började med det här inlägget:

https://lists.debian.org/debian-devel/2017/06/msg00308.html

(som låg högst upp på hackernews större delen avs söndagen). Buggen orsakar krascher, och har jagats i vissa sammanhang i mer än ett år nu. Det tog ända tills i maj i år innan någon lyckades identifiera exakt vad buggen var. Därefter har Intel missat i kommunikationen, eftersom de har fixat buggen utan att meddela den som rapporterade den, men i övrigt verkar de ha reagerat snabbt.

Slutsatsen är inte att det är irrelevant, eller att man skall slänga bort sin processor. Slutsatsen är att man kommer att behöva uppdatera BIOS, vilket inte sker automatiskt och åtminstone jag inte brukar göra regelbundet när det är två år sen jag byggde datorn.

Visa signatur

5900X | 6700XT

Permalänk
Medlem

Kan fortfarande inte hitta vad problemet är.

Om jag lider av detta vad innebär det då? Microstutter, BSOD? Vad!?

Visa signatur

I7 7700k 4,8GHZ | Asus Strix 1080TI 2000Mhz | Corsair Vengeance RGB DDR4 3100mhz| Gigabyte GA-Z270X-Ultra Gaming | Corsair RM850i 850W. AOC AG271QG.

Permalänk
Medlem

Tjejen fick en bsod på hennes nya high end laptop. Antagligen relaterat till detta.

Ska bli skönt sen när man kan köpa AMD rakt igenom igen på alla ens maskiner.

Permalänk
Medlem
Skrivet av Cameltotem:

Kan fortfarande inte hitta vad problemet är.

Om jag lider av detta vad innebär det då? Microstutter, BSOD? Vad!?

Kan mycket väl ge allt mellan bsod och ingenting alls, beroende på vad för program som påverkas av felet.

Skickades från m.sweclockers.com

Visa signatur

WS: MSI B350M Mortar | AMD Ryzen 7 1700 | PH-TC14PE | 32GB DDR4 3000MHz | 1TB Kingston NV2 | Intel Arc A750 8GB | 2*BenQ G2420HDB
Router: Gigabyte GA-870-UD3 | AMD Phenom II x6 1055t @ 2600MHz, 1.25V | 12GB DDR3 | 2*250GB HDD @ RAID1 | 4TB HDD
Laptop: Thinkpad X220 4291-QF6

Permalänk
Medlem
Skrivet av Findecanor:

Frågan är inte enbart om hur ofta det händer utan också om hur mycket skada det kan ställa till med när det händer.
I fall där programmet uträttar något viktigt så kan man kanske leva med om programmet krashar - för då upptäcker man det och kan starta om. Men om programmet bara levererar inkorrekta beräkningar utan att man upptäcker det så kan det ställa till saker.

AMD Ryzen har förresten en liknande bugg och jag har ännu inte sett något uttalande från AMD om det. Ganska många användare med Linux-distributioner där alla program kompileras för att installeras har varit med om att kompilatorn krashat om och om igen. En kernel-utvecklare för en BSD-distribution har lyckats reproducera felet varje gång.
Men det är svårt att hitta bra information om det i olika forum därför att folk och fä skriker på varandra om hur oviktigt det skulle vara, eller att man skulle behöva skylla sig själv eftersom plattformen är ny, anklagelser om att de som har problem skulle ha överklockat och att det egentligen skulle ha varit orsakat av överklockning. Och sen alla dessa ovidkommande kommentarer från folk som postar reflexmässigt utan att ha förstått innebörden i det/de inlägg de kommenterar eller i förnekelse över sitt nya dyra inköp etc. etc ... Man blir galen.

Fanns en AMD tråd angående detta, där de först bekräftade att de fann något och skulle komma ut i en AGESA uppdatering och att det gick komma runt det med någon inställning i BIOS => att folk klagade eller inte kunde hitta sagda inställning eller att det inte hjälpte. Längre än så minns jag inte vad som skedde i den tråden, finns säkert att hitta på AMD forumet eller via reddit.

Dock något moderkort tillverkare borde fixa är IOMMU stöd, helt patetiskt hur det ser ut.

Skrivet av Cameltotem:

Kan fortfarande inte hitta vad problemet är.

Om jag lider av detta vad innebär det då? Microstutter, BSOD? Vad!?

"unpredictable system behaviour" => 1+2 = 4 => 42

Visa signatur

Arch - Makepkg, not war -||- Gigabyte X570 Aorus Master -||- GSkill 64GiB DDR4 14-14-15-35-1T 3600Mhz -||- AMD 5900x-||- Gigabyte RX6900XT -||- 2x Adata XPG sx8200 Pro 1TB -||- EVGA G2 750W -||- Corsair 570x -||- O2+ODAC-||- Sennheiser HD-650 -|| Boycott EA,2K,Activision,Ubisoft,WB,EGS
Arch Linux, one hell of a distribution.

Permalänk
Medlem
Skrivet av Cameltotem:

Kan fortfarande inte hitta vad problemet är.

Om jag lider av detta vad innebär det då? Microstutter, BSOD? Vad!?

"Unexpected behavior" betyder att precis vad som helst kan hända, men det vanliga är BSOD.

Skickades från m.sweclockers.com

Visa signatur

5900X | 6700XT

Permalänk

Oj oj oj och hoppsan så bra det var med nästan allt det allra nyaste då. Not! Och nu är 2066 plattformen här. Vilka fel och brister det har återstår att se. Ursäkta för min skeptiska inställning men, nä jag tuffar vidare på 1150 plattform. Duger bra och stabilt

Visa signatur

R5 | i5 12600K | RTX 3060 | Z690 | 16 GB RAM | 1 TB M.2 SSD | 3xNH-A14 | NH-D15S | 750 W PSU

Permalänk
Medlem

Det jobbigaste vore ju om denna bug kan triggas av kompilering av kod. Det är ju ganska mycket kod som kompileras "native", och om något går fel där så kan det ju ställa till en hel del strul. (typ om någon av windows uppdateringar fuckar upp)

Permalänk
Medlem

Var väl en ganska mild bug, betydligt värre är den till iommu/vt-d i xeon 55xx och 56xx vilket gör passthrough i virtuella maskiner mer eller mindre omöjligt. https://support.citrix.com/article/CTX136517

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av theailer:

Var väl en ganska mild bug, betydligt värre är den till iommu/vt-d i xeon 55xx och 56xx vilket gör passthrough i virtuella maskiner mer eller mindre omöjligt. https://support.citrix.com/article/CTX136517

Skickades från m.sweclockers.com

Den att TSX inte fungerar ordentligt i Haswell var ändå bäst. Intel's svar var att stänga av den funktionen helt. Tråkigt om man köpte processorn för att man ville ha den funktionen.

Visa signatur

5900X | 6700XT

Permalänk
Datavetare
Skrivet av Pellepelikan:

Och vad innebär detta i praktiken? Är det ovanligt med färre än 64 instruktioner i dessa register? Vilka typ av situationer/applikationer använder dessa?

Att det krävs få instruktioner i en loop för att trigga problemet pekar på att en förutsättning är att instruktionerna kommer från mikro-op cachen alt. andra "front-end" optimeringar för korta loopar. Korta loopar är väldigt vanligt förekommande.

Att båda trådar är aktiva i en fysisk kärna är inte heller speciellt osannolikt om man jobbar med batch-jobb som t.ex. beräkningar, kompilering eller liknande.

Det som gör fallet väldigt osannolikt är sista kravet: programmet måste inom de 64 instruktionerna använda ett specifikt x86 register både genom EAX/RAX (32-bitar eller 64-bitar) och genom AL (de höga 8-bitarna av de lägsta 16-bitarna).

Som redan nämnts bör ingen kompilator eller assemblerhackare skapa sådan kod då det är en dålig idé ur prestandasynpunkt på alla Intel CPU modeller sedan PentiumPro och alla AMD modeller sedan ursprungliga Athlon. För det vetgirige, läs om "partial register access" här.

I OCaml fallet (OCaml är ett programspråk) verkan man tvingat gcc att genera sådan kod (antagligen helt omedvetet) genom att lägga restriktioner som normalt inte finns på kodgenereringen.

"There were extra constraints being placed on gcc by OCaml, which would explain why gcc apparently rarely generates this pattern."

Som nämns flera gånger så har alla moderna CPUer buggar. Tyvärr är x86 långa historia en kvarnsten här då dessa har fler gropar man kan kliva i och de tar därmed lägre tid att validera. Just den här buggen är inte ens tekniskt möjlig på t.ex. ARM, det är ett resultat av något som var en god idé på 80-talet när 8086 var aktuell men som ingen skulle stoppa in i en modern CPU-design.

Gissar att fixen i detta fall blir att man på något sätt identifierar fall register där ah/bh/ch/dh läses/skrives nära läsning/skrivning av eax/ebx/ecx/edx/rax/rbx/ecx/edx (problemet är alltså access av samma register, men olika delmängder av registret). Ser man ett sådant fall gör man nog helt sonika någon form av fördröjning mellan dessa instruktioner. D.v.s. slutresultatet är att sådan kod antagligen kommer köras långsammare, ett icke-problem då det redan är väldigt ineffektivt och därför bör undvikas på alla x86-modeller nyare än ~15 år.

Gissar att de flesta CPU-buggar löses på ett sätt som gör att sekvensen som triggar problemet kommer köras långsammare. Detta blir ett problem först om/när man hittar ett fel i fall som ofta inträffar i vanligt förekommande kod. Sådana fall är som tur är ovanliga, ett sådan fel visar sig normalt under testning och i värsta fall kort efter att produkten når marknaden.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Yoshman:

Att det krävs få instruktioner i en loop för att trigga problemet pekar på att en förutsättning är att instruktionerna kommer från mikro-op cachen alt. andra "front-end" optimeringar för korta loopar. Korta loopar är väldigt vanligt förekommande.

Att båda trådar är aktiva i en fysisk kärna är inte heller speciellt osannolikt om man jobbar med batch-jobb som t.ex. beräkningar, kompilering eller liknande.

Det som gör fallet väldigt osannolikt är sista kravet: programmet måste inom de 64 instruktionerna använda ett specifikt x86 register både genom EAX/RAX (32-bitar eller 64-bitar) och genom AL (de höga 8-bitarna av de lägsta 16-bitarna).

Som redan nämnts bör ingen kompilator eller assemblerhackare skapa sådan kod då det är en dålig idé ur prestandasynpunkt på alla Intel CPU modeller sedan PentiumPro och alla AMD modeller sedan ursprungliga Athlon. För det vetgirige, läs om "partial register access" här.

I OCaml fallet (OCaml är ett programspråk) verkan man tvingat gcc att genera sådan kod (antagligen helt omedvetet) genom att lägga restriktioner som normalt inte finns på kodgenereringen.

"There were extra constraints being placed on gcc by OCaml, which would explain why gcc apparently rarely generates this pattern."

Som nämns flera gånger så har alla moderna CPUer buggar. Tyvärr är x86 långa historia en kvarnsten här då dessa har fler gropar man kan kliva i och de tar därmed lägre tid att validera. Just den här buggen är inte ens tekniskt möjlig på t.ex. ARM, det är ett resultat av något som var en god idé på 80-talet när 8086 var aktuell men som ingen skulle stoppa in i en modern CPU-design.

Gissar att fixen i detta fall blir att man på något sätt identifierar fall register där ah/bh/ch/dh läses/skrives nära läsning/skrivning av eax/ebx/ecx/edx/rax/rbx/ecx/edx (problemet är alltså access av samma register, men olika delmängder av registret). Ser man ett sådant fall gör man nog helt sonika någon form av fördröjning mellan dessa instruktioner. D.v.s. slutresultatet är att sådan kod antagligen kommer köras långsammare, ett icke-problem då det redan är väldigt ineffektivt och därför bör undvikas på alla x86-modeller nyare än ~15 år.

Gissar att de flesta CPU-buggar löses på ett sätt som gör att sekvensen som triggar problemet kommer köras långsammare. Detta blir ett problem först om/när man hittar ett fel i fall som ofta inträffar i vanligt förekommande kod. Sådana fall är som tur är ovanliga, ett sådan fel visar sig normalt under testning och i värsta fall kort efter att produkten når marknaden.

Tack för ett utförligt svar!

Skickades från m.sweclockers.com