PDA

View Full Version : Disabilitare l'NCQ


Al Azif
24-05-2007, 12:09
May 23 11:30:41 localhost kernel: SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA
May 23 11:31:16 localhost kernel: ata1: EH in ADMA mode, notifier 0x0 notifier_error 0x0 gen_ctl 0x1501000 status 0x400 next cpb count 0x0 next cpb idx 0x0
May 23 11:31:16 localhost kernel: ata1: CPB 1: ctl_flags 0x1f, resp_flags 0x2
May 23 11:31:16 localhost kernel: ata1: CPB 2: ctl_flags 0x1f, resp_flags 0x2
May 23 11:31:16 localhost kernel: ata1: timeout waiting for ADMA IDLE, stat=0x400
May 23 11:31:16 localhost kernel: ata1: timeout waiting for ADMA LEGACY, stat=0x400
May 23 11:31:16 localhost kernel: ata1.00: exception Emask 0x0 SAct 0x6 SErr 0x400000 action 0x2 frozen
May 23 11:31:16 localhost kernel: ata1.00: cmd 61/e8:08:97:f2:00/01:00:00:00:00/40 tag 1 cdb 0x0 data 249856 out
May 23 11:31:16 localhost kernel: res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)

... e mi si freeza l'hd naturalmente. Ho scoperto che il problema è riconducibile all'NCQ, infatti l'HD sul canale 1 sata lo ha (quello che si freeza), l'HD sul canale 2 non lo ha. Per disabilitarlo ho visto qui: http://linux-ata.org/faq.html#ncq

@ubuntubox:~$ sudo echo 1 > /sys/block/sda/device/queue_depth
bash: /sys/block/sda/device/queue_depth: Permesso negato


@ubuntubox:~$ sudo sh -c "echo 1 > /sys/block/sda/device/queue_depth"
Password:
sh: cannot create /sys/block/sda/device/queue_depth: Permission denied


E sto bestemmiando perchè mi si blocca ogni tanto mentre lavoro, per fortuna non ho perso nulla per ora. Ho provato anche a creare uno script init, ma non me ne intendo molto, e non è cambiato nulla, probabilmente non l'ho saputo fare.
Qualcuno ha idee?

p.s.: lo faceva anche su windows, ma qui è bastato disabilitarlo dalle proprietà del controller sata.

ilsensine
24-05-2007, 14:15
[CODE]@ubuntubox:~$ sudo echo 1 > /sys/block/sda/device/queue_depth
bash: /sys/block/sda/device/queue_depth: Permesso negato


@ubuntubox:~$ sudo sh -c "echo 1 > /sys/block/sda/device/queue_depth"
Password:
sh: cannot create /sys/block/sda/device/queue_depth: Permission denied


Il reindirizzamento (>) non viene eseguito da sudo, ma dalla tua shell. Ha quindi i privilegi dell'utente, da qui l'accesso negato.
Diventa prima root con "sudo su", quindi esegui l'echo.

Al Azif
24-05-2007, 14:39
Il reindirizzamento (>) non viene eseguito da sudo, ma dalla tua shell. Ha quindi i privilegi dell'utente, da qui l'accesso negato.
Diventa prima root con "sudo su", quindi esegui l'echo.

Grazie della risposta, ma il problema permane:
root@ubuntubox:~# echo 1 > /sys/block/sda/device/queue_depth
bash: /sys/block/sda/device/queue_depth: Permesso negato


Ho provato in tutti i modi, anche modificando il file con nano da root, mi dice che non ho i permessi per scriverci, non so più dove sbattere la testa, anche perchè quel comando se dato poi dovrebbe sparire se si riavvia la macchina, e invece vorrei che sia permanente, ecco perchè avevo pensato ad uno script init, il problema che non so dove metter mani, ho conoscenze basse sugli init :)

ilsensine
24-05-2007, 14:44
A me funziona...

Al Azif
24-05-2007, 15:22
Ho scoperto che root ha solo i permessi di lettura di quel file, anche cambiandoli il comando poi va, ma dopo aver salvato ritorna a 31, ecco cosa mi ritorna ora il comando tra l'altro:

root@ubuntubox:~# echo 1 > /sys/block/sda/device/queue_depth
bash: echo: errore di scrittura: Errore di I/O


Secondo me è da settare qualcosa al boot, ma non so cosa, sul web non ho trovato nulla tranne che questo comando.

ilsensine
24-05-2007, 16:03
No, forse hai un kernel vecchio che non supporta la modifica di quel parametro. Non giocare con chmod e sysfs.

Al Azif
24-05-2007, 16:34
No, forse hai un kernel vecchio che non supporta la modifica di quel parametro. Non giocare con chmod e sysfs.
Ehm...

Linux ubuntubox 2.6.21.1-feisty-ck2 x86_64 GNU/Linux


:D

Il kernel è nuovo, proprio oggi è uscito anche il 21.2, nel .20 e nel .21 c'erano vari fix proprio sulll'ADMA e sui controller nvidia e libata. Ora ho staccato l'altro HD e va tutto bene, il problema che l'altro mi serve, c'è il mio lavoro sopra.
Piccola cosa, la stringa per il montaggio del sysfs non c'è in fstab, non l'ho messa perchè inutile nei nuovi kernel e nelle nuove distro.
Bella rogna... :/

ilsensine
25-05-2007, 08:40
Ah boh io ho ancora il 2.6.20 e funziona...:D