linux user group brescia

immagine del castello

Archivio della mailing list

Cosa ?

Luca Giuzzi giuzzi a dmf.bs.unicatt.it
Dom 3 Ott 1999 19:48:46 UTC
Il messaggio riguarda l'interfaccia IDE/ATAPI e da quello che capisco dovrebbe
essere relativo ad una funzionalita' che consente di ottimizzare l'uso degli
IRQ fra le periferiche connesse allo stesso canale.
In particolare un `DSC timeout' viene riportato quando una seek su CD
 impiega piu'tempo di quanto dovrebbe essere il timeout, mentre il messaggio
 che tu hai riportato viene stampato dopo che piu' tentativi di ricerca dei
 dati sul cd sono andati a vuoto in quanto si e' verificato un timeout.

In particolare, dallo standard ATAPI:

  Bit 4 SERVICE / DSC This bit signals that the device is requesting service or interrupt. It is set when the interrupt is requested and does not clear until
the Service (A2h) command is issued.
  Note  that  this  bit  is  used  for  the  DSC  function  when  the  overlap
function  is not enabled.
[...]
ATAPI devices use the DSC bit to indicate the completion status of the seek
operation of immediate commands. No INTRQ is issued by these device when the
DSC bit is set, so it the responsibility of the ATAPI driver to poll this bit
to determine the completion status of the immediate command.
[...]

Che dovrebbe chiarire che cosa e' il DSC...
 ...riguardo l'overlap:

Although  the inclusion of a CD-ROM drive would compromise the performance of
another disk on the same ATA Cable, this standard does addresses this through
the use of overlapped operation.
[...]
After detecting INTRQ, the Host
  shall
 read the ATAPI STATUS Register to determine if the selected device is
 requesting service. If there is an overlapped command active on the
 non-selected device, the Host
  shall
 change the DRV Bit and read the ATAPI STATUS Register to determine if service
 is also needed on the non-selected Device. When the state of both Device's
 SERVICE bits are known the Host
  shall
 select one of the Devices, that is requesting service, and issue the Service
(A2h) Command. 
[...]
* Slower Overlapped devices may release control of the ATA bus several times
 while processing an overlapped command

Donde finalmente la spiegazione in italiano:
 se guardi i sorgenti del kernel vedrai che il campo `DSC' e' presente solo
per cd-rom e nastri ATAPI, periferiche tipicamente molto piu' lente dei 
dischi fissi.

Il bit4 nella status word di questi dispositivi puo' avere due funzioni:
1. segnalare se una operazione di seek e' andata a buon fine
  (in modo `non-overlapping')
2. consentire ad una periferica di rilasciare il controllo del bus mentre
 sta eseguendo un comando `lento' (tipo: `riavvolgere il nastro')

Ovviamente la modalita' 2 e' preferibile in condizioni normali (e assomiglia
 al DISCONNECT/RECONNECT di SCSI), ma per qualche motivo sul tuo sistema
 pare che ci siano problemi nella ricerca traccie sul CD 
 (domanda: ti accade con tutti i CD o solo con quelli multisessione?
  quanto e' vecchio il lettore? Il CD e' connesso allo stesso canale
  IDE del disco fisso primario... non sarebbe possibile metterlo sul
  canale secondario?)
 che fanno optare il kernel per una strategia tendezialmente piu' lenta
 (i.e. disattivare l'overlapping) ma praticamente piu' veloce che non 
 continuare costantemente a dare comandi di seek
 [in questo modo invece che tentare piu' volte incrementando proporzionalmente
 il timeout viene semplicemente fatto il polling di DSC sino a che non
 riporta che il comando e' stato eseguito]

Fammi sapere se quello che ho scritto e' comprensibile :))

Ciao,
 lg







Maggiori informazioni sulla lista Lug