Problemi e discussioni inerenti al kernel e al supporto hardware in ambiente Linux

Messaggio5 gennaio 2017, 19:39 - Errori xfermode e READ LOG DMA EXT sul mio SDD durante il boot #179233

Salve a tutti, sono qui perché ho provato a esporre il mio problema sul forum internazionale, ma non sono stato minimamente calcolato. Spero di aver miglior fortuna qui.

Dunque, due settimane fa ho dovuto comprare un nuovo laptop a causa della rottura del vecchio. La mia scelta è ricaduta su un HP 255 G5.
All'interno possedeva un HDD meccanico e, sentendo che le memorie fisse di nuova generazione sono più veloci, l'ho sostituito con un SDD da 240 GB della Qumox.

Ho installato Arch Linux e va tutto bene, la differenza coi vecchi HDD si nota molto, sul precedente laptop il boot durava un tempo circa tre volte maggiore.
Tuttavia ci sono delle piccole pecche (che comunque non inficiano il corretto utilizzo del sistema). Sin dal primo boot, nel journal ho notato queste linee:
Codice: Seleziona tutto
ata1.00: qc timeout (cmd 0x47)
ata1.00: READ LOG DMA EXT failed, trying unqueued
ata1.00: failed to get Log Directory Emask 0x40
ata1.00: ATA-10: Qumox 240GB SSD, V2.7, max UDMA/133
ata1.00: 468862128 sectors, multi 1: LBA48 NCQ (depth 31/32),
ata1.00: failed to get Identify Device Data, Emask 0x40
ata1.00: failed to set xfermode (err_mask=0x40)
ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
ata1.00: NCQ Send/Recv Log not supported
ata1.00: NCQ Send/Recv Log not supported
ata1.00: configured for UDMA/133


Partiamo da "NCQ Send/Recv Log not supported". È un problema noto.
L'SSD (o il chipset?) non supporta il Linux Native Command Queueing (NCQ). Quindi l'ho disabilitato aggiungendo il parametro libata.force=noncq in systemd-boot.

Fatto ciò, mi compaiono queste linee nel journal:
Codice: Seleziona tutto
ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
ata1.00: FORCE: horkage modified (noncq)
ata1.00: ATA-10: Qumox 240GB SSD, V2.7, max UDMA/133
ata1.00: 468862128 sectors, multi 1: LBA48 NCQ (not used)


Il che farebbe presumere che sia tutto okay, ma ci sono anche queste altre linee:
Codice: Seleziona tutto
ata1.00: qc timeout (cmd 0x47)
ata1.00: READ LOG DMA EXT failed, trying unqueued
ata1.00: failed to get Identify Device Data, Emask 0x40
ata1.00: failed to set xfermode (err_mask=0x40)
ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
ata1.00: configured for UDMA/133


Ora, cercando di andare con ordine, credo che qui ci siano tre problemi.

Il primo: qc timeout. Cosa sarebbe? Ho provato a cercare qualcosa, ma non ho trovato nulla.

Il secondo: failed to set xfermode. Questo è mostrato in rosso (anche prima di aggiungere libata.force=noncq come parametro kernel) e sembra essere collegato a "failed to get Identify Device Data". Anche in questo caso, ho provato a cercare, ma non ho trovato nulla di risolutivo.

E per ultimo, ma non meno importante: READ LOG DMA EXT failed. Non so se questo sia collegato a qc timeout, ma dopo aver fatto alcune ricerche sembra che l'SDD non supporti l'accesso DMA al log, dunque il kernel torna a utilizzare la modalità ATA CMD READ LOG EXT. Vedere qui.
L'SDD annuncerebbe al sistema di essere abilitato all'accesso DMA, ma in realtà questo non è supportato.
In effetti, dando il comando "hdparm -I /dev/sda", mi esce questa linea:
Codice: Seleziona tutto
Commands/features:
           *    READ_LOG_DMA_EXT equivalent to READ_LOG_EXT

READ_LOG_DMA_EXT equivalente a READ_LOG_EXT, dunque il kernel si aspetterebbe di poter effettuare un accesso DMA al log, ma questo fallisce e il timeout verrebbe raggiunto, giusto?

Quindi mi chiedo: per prevenire questo problema, c'è un modo per disabilitare durante il boot la modalità di lettura DMA del log? In sostanza, usare in predefinito ATA CMD READ LOG EXT invece che READ LOG DMA EXT? Purtroppo non sono riuscito a trovare un parametro kernel che permetta di fornire questa direttiva. Esiste qualche altro modo?

E per quanto riguarda "failed to set xfermode (err_mask=0x40)", questo problema è collegato a quanto esposto sopra o si tratta di un qualcosa di indipendente?

Prima che mi suggeriate di aggiornare il firmware del bios e dell'SSD: quello del bios l'ho già aggiornato dopo l'installazione di Windows 8.1 (sono in dual boot) e, per quanto riguarda l'SSD, mi duole dire che non esiste alcun aggiornamento (la versione 2.7, che si vede scritta nel log del journal sopra riportato, è l'unica disponibile).
Spero che possiate aiutarmi, grazie.
digitalone
Novello Arciere
 
Messaggi: 69
Iscritto il: 1 febbraio 2011, 0:49
Top

Re: Errori xfermode e READ LOG DMA EXT sul mio SDD durante il boot

Messaggio6 gennaio 2017, 19:01 - Errori xfermode e READ LOG DMA EXT sul mio SDD durante il boot #179243

Ti posso suggerire di cercare su kernel.org o LKML. Se metti NCQ SSD site:kernel.org in una ricerca trovi diversi bug report ;)
Avatar utente
TheSaint
Robin Hood
 
Messaggi: 6112
Iscritto il: 8 settembre 2007, 7:43
Località: davanti al computer
Architettura: x86_64 (64bit)
Top

Re: Errori xfermode e READ LOG DMA EXT sul mio SDD durante il boot

Messaggio6 gennaio 2017, 19:13 - Errori xfermode e READ LOG DMA EXT sul mio SDD durante il boot #179247

TheSaint ha scritto:Ti posso suggerire di cercare su kernel.org o LKML. Se metti NCQ SSD site:kernel.org in una ricerca trovi diversi bug report ;)

Provato a fare ricerche più approfondite, purtroppo non ne vengo a capo.
A quanto pare il NCQ è supportato, ma fallisce l'accesso DMA al log durante il boot perché l'SSD segnala tale accesso come abilitato quando in realtà non è vero.
Il NCQ non funziona solo per l'accesso al log, ma per il resto può essere abilitato e dovrebbe incrementare le prestazioni. Questo dovrebbe significare che non è supportato il queued TRIM, dunque quando si effettua il TRIM, lo fa in modalità unqueued.

Quello che non riesco a capire è come fare durante il boot per forzare il sistema ad andare direttamente ad accedere al log nella modalità normale piuttosto che quella DMA. So che è un problema del firmware dell'SSD, ma non credo la Qumox farà mai un aggiornamento, dunque speravo di poter trovare un workaround.
digitalone
Novello Arciere
 
Messaggi: 69
Iscritto il: 1 febbraio 2011, 0:49
Top

Re: Errori xfermode e READ LOG DMA EXT sul mio SDD durante il boot

Messaggio6 gennaio 2017, 19:26 - Errori xfermode e READ LOG DMA EXT sul mio SDD durante il boot #179250

Ma ci sono gravi scompensi ?
Avatar utente
TheSaint
Robin Hood
 
Messaggi: 6112
Iscritto il: 8 settembre 2007, 7:43
Località: davanti al computer
Architettura: x86_64 (64bit)
Top

Re: Errori xfermode e READ LOG DMA EXT sul mio SDD durante il boot

Messaggio6 gennaio 2017, 19:30 - Errori xfermode e READ LOG DMA EXT sul mio SDD durante il boot #179251

TheSaint ha scritto:Ma ci sono gravi scompensi ?

A quanto pare no, per ora non riscontro problemi, tuttavia quell'errore non mi piace e comunque il boot rimane in stallo per qualche secondo prima di arrivare al timeout mostrato sopra e vorrei evitare questo comportamento.
digitalone
Novello Arciere
 
Messaggi: 69
Iscritto il: 1 febbraio 2011, 0:49
Top


Torna a Kernel e supporto hardware

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti

Moderatori: 4javier, aleph, veleno77, adriano, Hilinus