SSD / failed command: READ FPDMA QUEUED

Tomas Vondra tv na fuzzy.cz
Sobota Červen 18 21:54:36 CEST 2011


Ahoj,

pořídil jsem si SSD do desktopu, ale při kopírování dat z / na SSD se
občas objeví chyby podobné tomuto (kompletní výpis viz.
http://pastebin.com/X5SkUjmg):

=====================================================================
Jun 18 21:57:28 livecd kernel: ata6: EH in SWNCQ mode,QC:qc_active
0x7FFFFFFF sactive 0x7FFFFFFF
Jun 18 21:57:28 livecd kernel: ata6: SWNCQ:qc_active 0xFFFFF0 defer_bits
0x7F00000F last_issue_tag 0x17
Jun 18 21:57:28 livecd kernel: dhfis 0x7FFFF0 dmafis 0x10 sdbfis 0x0
Jun 18 21:57:28 livecd kernel: ata6: ATA_REG 0x40 ERR_REG 0x0
Jun 18 21:57:28 livecd kernel: ata6: tag : dhfis dmafis sdbfis sacitve
Jun 18 21:57:28 livecd kernel: ata6: tag 0x4: 1 1 0 1
Jun 18 21:57:29 livecd kernel: ata6: tag 0x5: 1 0 0 1
...
Jun 18 21:57:29 livecd kernel: ata6: tag 0x17: 0 0 0 1
Jun 18 21:57:29 livecd kernel: ata6.00: exception Emask 0x0 SAct
0x7fffffff SErr 0x0 action 0x6 frozen
Jun 18 21:57:29 livecd kernel: ata6.00: failed command: READ FPDMA QUEUED
Jun 18 21:57:29 livecd kernel: ata6.00: cmd
60/08:00:54:dc:dd/00:00:0a:00:00/40 tag 0 ncq 4096 in
Jun 18 21:57:29 livecd kernel: res 40/00:00:00:00:00/00:00:00:00:00/00
Emask 0x4 (timeout)
Jun 18 21:57:29 livecd kernel: ata6.00: status: { DRDY }
Jun 18 21:57:29 livecd kernel: ata6.00: failed command: READ FPDMA QUEUED
Jun 18 21:57:29 livecd kernel: ata6.00: cmd
60/10:08:b4:98:db/00:00:0a:00:00/40 tag 1 ncq 8192 in
Jun 18 21:57:29 livecd kernel: res 40/00:00:00:00:00/00:00:00:00:00/00
Emask 0x4 (timeout)
Jun 18 21:57:29 livecd kernel: ata6.00: status: { DRDY }
...
Jun 18 21:57:29 livecd kernel: ata6.00: status: { DRDY }
Jun 18 21:57:29 livecd kernel: ata6.00: failed command: READ FPDMA QUEUED
Jun 18 21:57:29 livecd kernel: ata6.00: cmd
60/08:f0:dc:a2:db/00:00:0a:00:00/40 tag 30 ncq 4096 in
Jun 18 21:57:29 livecd kernel: res 40/00:00:00:00:00/00:00:00:00:00/00
Emask 0x4 (timeout)
Jun 18 21:57:29 livecd kernel: ata6.00: status: { DRDY }
Jun 18 21:57:29 livecd kernel: ata6: hard resetting link
Jun 18 21:57:29 livecd kernel: ata6: nv: skipping hardreset on occupied port
Jun 18 21:57:29 livecd kernel: ata6: SATA link up 3.0 Gbps (SStatus 123
SControl 300)
Jun 18 21:57:29 livecd kernel: ata6.00: configured for UDMA/133
Jun 18 21:57:29 livecd kernel: ata6.00: device reported invalid CHS sector 0
Jun 18 21:57:29 livecd kernel: ata6.00: device reported invalid CHS sector 0
Jun 18 21:57:29 livecd kernel: ata6.00: device reported invalid CHS sector 0
Jun 18 21:57:29 livecd kernel: ata6.00: device reported invalid CHS sector 0
Jun 18 21:57:29 livecd kernel: ata6.00: device reported invalid CHS sector 0
...
Jun 18 21:57:29 livecd kernel: ata6: EH complete
Jun 18 21:57:30 livecd kernel: usb-storage: queuecommand called
=====================================================================

přičemž na ata6 je právě to SSD. Občas se objevuje také "WRITE" varianta
(jinak se to neliší). Evidentně je to nějaký problém se zařazováním I/O
requestů do fronty, ale proč k tomu dochází netuším.

Projevuje se to tak že práce s daným diskem na chvíli zamrzne (nic se
nezapisuje ani nečte) a po pár vteřinách se pokračuje dál. Při
kopírování 40GB dat se mi to stalo cca 3x, zdá se že k žádnému poškození
filesystému nedošlo ale i tak se mi to moc nelíbí.

Trápil jsem google, našel jsem dvě doporučení

(1) kernel parametr libata.force=noncq (zkoušel jsem, nepomohlo)

(2) nastavit "hdparm -Q 1" na daném device (aktuálně 31, zatím jsem
změnit nezkoušel), IMHO pokud nepomohlo (1) tak je toto asi bezpředmětné
ale zkusit to mohu. Projeví se to nějak na výkonu?

* SSD: Intel 320 (120GB verze, aktuální firmware)

* kernel: 2.6.36 (na tom livecd, používám Gentoo takže oboje jsou
gentoo-sources verze s nějakými dalšími patchi)

* MB je Asus M2N-E (není tam aktuální BIOS, nemám jak to opatchovat bez
windows - nové verze ale podle release notes akorát přidávají podporu
nových CPU)

Kabely apod. jsem kontroloval, doteď jsem nic podobného nezaznamenal (na
tom samém kabelu / SATA portu jsem měl několik let standardní SATA
disk). Nějaké další nápady čím by to mohlo být / jak to opravit?

díky
Tomáš


Další informace o konferenci Linux