make.conf
Dan Lukes
dan at obluda.cz
Thu Jun 27 03:58:51 CEST 2013
On 06/27/13 01:48, Jan Dušátko:
>> Ne, ale pamatuju si, ze nekde v handbooku ci kde je pouziti vlastnich
> nastaveni optimalizace pri prekladu jadra povazovano za neco co delas "na
> vlastni nebezpeci". Muze dojit ke vzniku race-condition zpusobenych
> nevhodnou optimalizaci pri prekladu a jadro pak muze nahodne padat ci
> vykazovat jine "podivne" chovani.
> Jak mne Dan Lukes varoval, muze dojit k problemum s kompatibilitou kompileru
> a jadra, ktera finalne muze skoncit az nefunkcnosti system - to je zivot.
Ona to zas takova selanka neni. Nejde jen o to, ze by nova optimalizace
mohla preskladat instrukce a tak by treba mohly nefungovat spravne
nektere zamky.
Specificka optimalizace muze spocivat i v pouziti specifickych registru,
ktere v obecnych procesorech vubec nejsou. A u tech se objevuje
jednoducha otazka - je jejich stav ukladan pri prepinani kontextu (task
switche, preruseni, obsluha vyjimek) ?
Jestli ne, je funknost kazdeho kusu kodu, ktery takovy registr pouziva,
zavisly na tom, zda v prubehu jeho provadeni dojde k nejake asynchronni
udalosti a pokud ano, zda mu obsluzna rutina te udalosti obsah toho
registru zachova nebo prepise. Normale se stav registru (a komponent
vubec), ktere neulozi sam hardware procesoru v ramci prepnuti stavu
uklada softwarove, v kazde asynchronne spustitelne obsluzne rutine.
Pokud ty ovsem jadru podstrcis uzivani tehle registru "tajne", jako
dusledek implicitni optimalizace prekladce, pak ulozeni stavu nenastane.
Zminoval's, ze optimalizace zrychlila praci s internim hardwarovym
kryptografickym akceratorem. Predstavuju si napriklad, jak mas sifrovany
disk, data se pred ulozenim prohaneji pres akcelerator rizeny
preoptimalizovanym kodem, behem zpracovani prijde nevhodne preruseni,
ktere zmeni stav nektereho z neulozenych registru, ten se po ukonceni
obsluhy preruseni bude dal v ramci algoritmu pouzivat ac se jeho stav
nahodne zmenil a vysledkem bude, ze na disk zapises v podstate nahodna
data aniz by se na to prislo - do doby, nez se ty data pokusis cist a
ono se zjisti, ze po desifrovani sektoru nevznikl puvodni plainttext ale
sypanej caj.
Jak rikas ty, je to zivot, a jak rika klasik, zivot je jen nahoda.
Mozna bys mel zjistit co presne vlastne pro prekladac zapnuti tehle
specificke optimalizace skutecne znamena. Protoze to ti muze pomoct
alespon trochu odhadnout jak velke potize tam mohou vzniknout.
V soucasne chvili mi to co delas pripada jako ruska ruleta, a to ses ani
nepodival kolik komor je nabitejch. Mozna treba zadna, pak mas stesti,
ale mozna je to jinak a nakonec to muze dopadnout docela spatne.
Ale to uz je na tobe.
Dan
More information about the Users-l
mailing list