“Néhány ember egy finom ital mellett lazít a medence mellett, én pedig úgy lazítok, hogy az inline [Assembly kóddal] játszok”– ez egy szép idézet a napról, ahogy Linus Torvalds elmagyarázta, miután javítani kezdett egy teljesítményoptimalizáló javításon, amelyet a felhasználók számára javasoltak. a folyamatban lévő Linux 6.5 egyesítési ablak.

A csum_partial teljesítményoptimalizáló javítását ma elküldtük a következő címen: x86/egyéb lekérési kérés. Miközben Linus Torvalds átnézte a kódot, megjegyzést fűzött a a levelezőlistához:

“Őszintén szólva, a javítást nézve a reakcióm az, hogy”miért bontották ki 64 bájtos darabokban, ha 40 bájt a varázslatos érték”?

Különösen, ha van, hogy”csináljon egy 32 bájtonként hajtson végre műveletet, hogy függetlenné tegye a 32 bájtos darabokat, és növelje az ILP-t”. Tehát még a 64 bájtos eset sem *valójában* végez 64 bájtos kibontást, hanem valójában két 32 bájtos kibontást végez párhuzamosan.

Tehát három”varázslatos”értéke van, és a Valószínűleg csak a 40 bájtos számít igazán.

Igen, igen, a 64 bájt a szokásos cacheline-méret, és”hagyományos”a kibontáshoz. De nincs ebben semmi varázslatos.

A végeredmény: nem lett volna jó, ha csak 40 bájtos darabokat készítünk, és a 64 bájtos „két egymást átfedő 32 bájtos darabot” a 40 bájtos darabok közül kettővé alakítjuk.

Olyan, mint a (TELJESEN NEM TESZTELT!) csatolt javítás?

Még egyszer: ez *nem* tesztelt. Gyorsan megnéztem a generált szerelvényt, és nagyjából úgy nézett ki, mint amire számítottam, de lehet, hogy teljes szemét.

Csak azért tettem hozzá pár”valószínű()”dolgot, mert így természetesebbnek tűnt a generált asm (azaz követte az ottani forráskód sorrendjét), ezek egyébként megkérdőjelezhető annotációk.

Végezetül: említettem már, hogy ez teljesen teszteletlen?”

Az üzenet elküldése után rájött egy egyszerű hibára a kézzel írt Assembly kódjában, és hozzáadva:

“…Ezt úgy vettem észre, hogy még egyszer megnéztem a tapaszt. Nem történt tényleges *tesztelés*. Lehet, hogy még mindig bugos szemét, még azzal a”+r”-rel is. Ez csak egy kicsit *kevesebb* bugos szemét.

Most visszamegyek a barlangomba, és folytatom a cuccok húzását, csak valami mást kellett csinálnom egy ideig. Vannak, akik egy finom ital mellett lazítanak a medence mellett, én pedig az inline asm-mel játszva lazítok.”

Linus Torvalds végül egyesítette az eredeti csum_partial optimalizálási javítást, miközben a verziója további megjegyzéseken/megbeszéléseken megy keresztül.

Borislav Petkov, az AMD Linux mérnöke, aki kezelte az x86/misc lekérést válaszolt Linus Torvalds üzenetére:

“És van egy harmadik fajta, aki egy jó ital mellett lazít a medence mellett, *miközben* az inline asm-mel játszik. ;-P”

Categories: IT Info