Cyrix MII a 'use HLT when idle' a power saving mod ==> divna vec pri cteni z cdrom

Frantisek Dufka dufkaf na merit.cz
Pátek Říjen 8 16:18:04 CEST 1999


Dobry den,

Minuly tyden jsem si upgradnul moje pentium 120 na 150Mhz(75x2) na MII 300+
(3x75=225) a hral jsem si s utilitkama set6x86 na nastaveni specialitek kolem
tohoto procesoru a zjistil jsem podivnou vec.

Vsecko funguje krasne (a trosku rychleji :) az na jednu vec

nejak hodne podivne funguje cteni z IDE cdromky a to tak, ze pomalu a s chybama.

Moje konfigurace je zhruba : hdb = cdrom Goldstar 4x, hdc = hdd maxtor 6.4 GB
deska je Elite Group P5-VX-Be
kernel 2.2.12 mnou kompilovany na debianu 2.1 nebo originalni RedHat 2.2.5-22 

zjistil jsem problem pri prehravani MPtrojek pomoci xmms primo z /cdrom.
prekvapive to nestihalo a hralo to desne trhane,  presto ze nebezelo vubec nic
jineho.

tak jsem zkusil hdparm -t /dev/cdrom a bezelo to velmi pomalu a zhruba po 15
minutach jsem to prerusil, nebot by to asi nedobehlo.
hdparm -t /dev/hdc skonci v pohode z vysledkem zhruba 10MB/s (muj kernel) nebo
12MB (RedHat kernel), IDE chipset je PII3X nebo tak nejak, vsak vite.

Zajimava vec je, ze jakmile se zacne zatezovat procesor (napr. kompilace
kernelu, rychle scrollovani v editoru a podobne) funguje to dobre.
hdparm -t /dev/cdrom skonci s rychlosti asi 0.59 MB/s tak jak ma (cdromka je
4x), prehravani mp3 neskace.

zkousel jsem taky kopirovat data z cdcka pomoci midnight commanderu ( klavesa
F5) a dival se na rychlost kopirovani a zkousel stridave zatezovat procesor a
zapinat a vypinat power saving mod procesoru (instrukce HLT snizi spotrebu z
cca 20W na cca 0,skoronic W)

nu a vysledek byl :
 asi 40 Kb/s pri nezatizenem procesoru a zapnutem power savingu
 asi 80 Kb/s pri nezatizenem procesoru a vypnutem power savingu
asi 400-500 Kb/s pri soucasne kompilaci jadra  

krome te pomalosti to taky cte ty CDcka dost divne, hlasi na nich v syslogu
chyby (ale data nakonec precte) a tak. 
komunikace s HDD je naprosto v poradku ve vsech pripadech

V NT 4.0 (ktere asi HLT instrukci nepouzivaji a z nejakym power savingem na
Cyrixu si asi taky nehraji) podobne akce fungujou dobre.

Kdyz tam vratim pentium funguje vsecko taky dobre.
Predpokladam, ze kdyz vypnu pri kompilaci jadra  volbu 'use HLT when idle' bude
vsecko OK, ale ja bych chtel setrit elektrickou energii a min ohrivat vzduch v
mistnosti :)

moje teorie je, ze se treba ztraceji nejake preruseni od IDE kanalu kdyz je
prenos relativne pomaly (600Kb/s), nebo ten prechod procesoru do normalniho
rezimu trva nejak brutalne moc taktu a neco se ztrati.

v technicke dokumentaci na www.cyrix.com (asi 2MB velky soubor mii_all.pdf) jsem
o tom nic uzitecneho nenasel.

Nu a otazka je, pozoroval nekdo neco podobneho ?
Mam to psat do linux-kernel jako bug, nebo je to FAQ?

Frantisek Dufka

P.S. ten power saving mod jde dost dobre slyset podle frekvence huceni vetraku
 ve zdroji :)


Další informace o konferenci Linux