Newsgroup: it.comp.os.linux.sys
Titolo: Problema di timeout del DMA

Ciao a tutti,
premetto che ho due hard disk, Quantum, uno da 2.5 G e uno da 10.2 G (modello 
LCT il secondo, il primo non so) rispettivamente configurati come primary 
master e primary slave sul controller IDE.
Sulla porta secondaria non ho nulla.
Ho provato ad usare hdparm con le segg. opzioni:
/sbin/hdparm  -c1 -k1 -d1  /dev/hda
/sbin/hdparm -u1 -c1 -m16 -d1 -k1 -X34 /dev/hdb
Il problema e' che, dopo un certo periodo di inattivita', il kernel invia 
un messaggio sulla console:
hda: timeout waiting for DMA
hda: irq timeout: status=0xd0 { Busy }
ide0: reset: success
cio' non impalla il sistema (posso continuare a lavorare normalmente, tranne
per il fatto che magari avevo ViM aperto con un sorgente e mi spara sul testo
'sto messaggio ... ma poco male, lo posso redirigere )
tuttavia vi chiedo, come risolvere ? Ed inoltre, l'incubo ricorrente di
svegliarsi  e trovare una /lost+found zeppa di files corrotti potrebbe divenire
realta ?
Grazie per ogni (agognato) suggerimento.
-- 
-------------------------------------------------------------------------------
LB
Tesista@
	Dipartimento di Elettronica e Informazione
	Politecnico di Milano
 
Argomento: Creazione di modelli facciali MPEG4 per animazione.
Contattatemi per informazioni e suggerimenti !!
"On a normal ascii line, the only safe condition to detect is a 'BREAK'
- everything else having been assigned functions by Gnu EMACS."
(By Tarl Neustaedter)

[ ... ]
PS Scusate per la signature stra-lunga. E' una buona abitudine, ma a volte 
usare >> invece di > genera questi scherzi ... 
-- 
LB

divenire realta ?
Mah, qui e` un paio d'anni che tiro avanti cosi` :))
Dopo aver spostato parecchie quantita` di dati, per non angosciarmi piu`
di tanto, eseguo il comando "sync". :)
Ciao
Ale
-- 
Home Page: 
http://web.tiscalinet.it/airaghi
Per ottenere il mio indirizzo e-mail sostituire a NOSPAM il mio cognome

Alessandro Airaghi wrote:

Mi spiace di non poter essere piu' preciso, ma da qualche parte avevo visto
una FAQ che riguarda alcuni modelli di HD Quantum UDMA33 e loro problemi di
funzionamento come slave (o master non ricordo) a causa di firmware bacato,
provate a metterlo sull'altro canale ide da solo.

all'hard disk venisse a mancare  tensione. Seguono i messaggi del kernel
Il fatto che l'HD si spenga l'avevo notato anch'io, ma non l'avevo collegato
a questo problema. Ho fatto una prova, togliendo nel BIOS, in particolare
nella sezione del (Advanced) Power Management, le opzioni per lo spegnimento 
o la messa in standby dell'hard disk. Sorpresa ... non da' piu' l'errore  !
Ovviamente il problema non e' risolto, ma e' piu' circostanziato. Sarei 
tentato lasciare tutto cosi', ma mi chiedo, soprattutto considerando uptime
lunghi, se non sia troppo stressante per l'HD  stare sempre acceso, insomma,
se cio' non ne riduca la vita ...
Ecco comunque cio' che ho notato: supponiamo che, ad un dato istante, dopo
un certo periodo di inattivita', si sia spento l'hd. 
Supponiamo che, a questo punto si digiti
# ls /<harddiskmountpoint>
a partire da questa richiesta, passa un po' di tempo prima che si accenda 
il disco, ed e' li' che (a volte) si genera l'errore.
Forse il problema e' soltanto un timeout troppo corto...
Comunque, ecco il nostro sorvegliato speciale:
[root@laika linux]# grep 'timeout waiting for DMA' $(find ./ -name *.c)
./drivers/block/ide.c:                  printk("%s: timeout waiting for DMA\n",
drive->name);
potremmo cercare una patch, oppure chiedere aiuto a qualche kernel hacker per
provare ad allungare il timeout.
Comunque, per adesso metto da parte l'APM che mi sembra la cosa piu' giusta. 
Grazie per l'aiuto. Spero che quanto detto possa servire anche a te. 
Ciao,
-- 
LB

Mi sembra tuttavia che abbia tutte le ragioni di dare quell'errore, linux o
comunque qualunque altro sistema operativo: l'apm ed il relativo bios deve essere
attivato, ma il bios non deve avere nessuna impostazione che riguardi spegnimenti o
standby di nessuna periferica, monitor compreso. Essi risultano inaspettati per
l'os, e non e' un bug del driver od un timeout male impostato. E' l'os che deve
prevedere il power management, e controllare lui stesso gli standby e spegnimenti
vari secondo le impostazioni che decidiamo a livello di driver apm, senza che le
impostazioni effettuate preliminarmente dal bios sui circuiti apm causino effetti
inattesi dall'os.
Anche sco unix/sco open server mi dava problemi del genere, mentre windows9x/nt
qualche volta mi andava in palla (dipendentemente dalla macchina).
Comunque magari in futuro l'apm del so sara' capace di fare un "override" delle
preimpostazioni dei circuiti apm, per evitare simili problemi dovuti alle
impostazioni del bios, che ormai mi sa servono solo per sistemi bios based come
dos/win31 spesso privi di supporto apm nativo.
bye G.L.