problem s K5, noname MB s VIA chipsetem

Leos Bitto bitto na atrey.karlin.mff.cuni.cz
Pátek Prosinec 5 13:09:43 CET 1997


On Fri, 5 Dec 1997, Vojtech Bubnik wrote:

> Dobry den,
> zakoupil jsem procesor K5PR166, MB noname (rider ci co) s VIA chipsetem.
> Pokud bylo jadro zkompilovano s optimalizaci pro 486 a vyse, 
> potom pri nasledne kompilaci jadra dojde k tradicni chybe 11.
> Pokud bylo jadro zkompilovano pro 386, pak to jde dobre.
> Mate nekdo vysvetleni? Pro me je to zahada. Mam ten motherboard 
> omlatit prodejci o hlavu? Pripadne i s tim procesorem?
> Nebo se ten procesor tak chova? Co vlastne je ta optimalizace pro 486?

Optimalizace pro 486 (Pentium, Pentium Pro) je vicero drobnych odlisnosti
pri kompilaci, majici za nasledek (obvykle) zvysemni vykonu na patricnem
CPU. Jedna z optimalizaci ktera se zapina pri kompilaci pro 486 a vyse je
vyuzivani instrukce invlpg. Zatim vsechny K5 co jsem videl tuto instrukci
nemaji rady a chovaji se presne tak jak popisujete. Co s tim? Kouknout se
do souboru /usr/src/linux/include/asm-i386/pgtable.h, najit tuto sekci:

#ifdef CONFIG_M386
#define __flush_tlb_one(addr) flush_tlb()
#else
#define __flush_tlb_one(addr) \
__asm__ __volatile__("invlpg %0": :"m" (*(char *) addr))
#endif

a zmenit ji aby vypadala takto:

#define __flush_tlb_one(addr) flush_tlb()

takze se ta instrukce invlpg nikdy nebude pouzivat, kdyz ji K5 nesnasi. 
Kdysi jsem mel AMD K5 PR75, zjistil jsem ze kdyz kompiluji kernel s pro
cokoliv jineho naz 386 tak to blbne, tak jsem tak nekomiloval a pri prvni
prilezitosti jsem CPU v praci vymenil nejakemu wokynkari za cyrixe. :-) 
Miri <miri na atrey.karlin.mff.cuni.cz> ho nevymenil a tak se jal prolezat
konference a vsemozne archivy a nasel ze to je tou instrukci invlpg a ze
se to ma opravit jak jsem popsal. 

Navic jsem koukal ze v experimentalnim kernelu 2.0.33-pre1 je pouzivani
instrukce invlpg nejak pozmeneno, mozna ze bude uz fungovat i na K5.
Nevim, nezkousel jsem.

> Diky za radu, rad bych vedel, jestli muzu to zelezo reklamovat.

Bohuzel, ackoliv je to zcela zjevne nekompatibilita s Intelem, reklamace
asi neprojde, protoze to maji vsechny K5 a tudiz to nebude prohlaseno za
bug ale za feature. :-(



Leos Bitto



Další informace o konferenci Linux