Kim Lester
2009-Jul-10 11:27 UTC
[zfs-discuss] SMART problems with AOC-SAT2-MV8 / marvell88sx driver
I''ve been trying to get either smartctl or sg3_utils to report properly. They both have the same low-level problems which leads me to suspect either I''m doing something wrong OR there is a problem in the marvell88sx / sd / SATA etc framework. I can access drive name/serial number of all drives on the SAT2 card and the temperature is returned from the IE log page on my two drives that support temperature. (The SATA disks on the motherboard that are attached to the cmdk driver work, but SMART fails because they are treated as ATA drives so ignore those) What appears broken is I cannot access any of the logs such as the typical counters that I *know* exist. If we look at sg3_utils output (prettier than smartctl) src/sg_logs /dev/rdsk/c1t0d0s0 ATA WDC WD15EADS-00R 0A01 Supported log pages: 0x00 Supported log pages 0x00 Supported log pages 0x03 Error counters (read) 0x04 Error counters (read reverse) 0x00 Supported log pages 0x10 Self-test results 0x2f Informational exceptions (SMART) 0x30 Performance counters (Hitachi) First strange matter is that I would EXPECT to see a list in numerical order with 0x00 appearing only once! Well no matter I thought, but then a query on page 3 say tells me I have an illegal field in the CBD. sg_logs -p 3 /dev/rdsk/c1t0d0s0 ATA WDC WD15EADS-00R 0A01 log_sense: field in cdb illegal (smartctl said the same thing). Turns out only the last 4 pages (00, 10, 2f, 30) actually work. The first 4 data values almost seem as if the returned data (12 bytes total: 4 header, 8 data) should actually be 8 header for some reason (although this is not correct for a LOG sense parameter block). The log sense command is run to find the expected data length and it returns "12". Delving further I found (but I''m now out of my depth) that there was a total of 3072 bytes apparently coming back from the log sense command (according to both sg3 and smartctl) !!!??? sg3 shows it neatly. sg_logs -v /dev/rdsk/c1t0d0s0 inquiry cdb: 12 00 00 00 24 00 ATA WDC WD15EADS-00R 0A01 log sense cdb: 4d 00 40 00 00 00 00 00 04 00 log sense: requested 4 bytes but got -3068 bytes log sense cdb: 4d 00 40 00 00 00 00 00 0c 00 log sense: requested 12 bytes but got -3060 bytes Supported log pages: 0x00 Supported log pages 0x00 Supported log pages 0x03 Error counters (read) 0x04 Error counters (read reverse) 0x00 Supported log pages 0x10 Self-test results 0x2f Informational exceptions (SMART) 0x30 Performance counters (Hitachi) Not sure about the -sign - maybe a wrap ? esp given 3068 + 4 == 3060 + 12 == 3072 I hacked smartctl src to give me its count: logSense: pagelen =12 (# bytes driver stated would be returned) Resid = 3072 (#bytes actually returned) Sooo I''m stuck and I still can''t access my drive stats! :-( Any help would be very gratefully received. cheers Kim =========System Details uname -a -> SunOS bigbertha 5.11 NexentaOS_20081207 i86pc i386 i86pc Solaris motherboard: Intel Server SE7320SP2 SATA card: Supermicro AOC-SAT2-MV8 PCI-X prtpicl extract ... pci8086,25ae (pci, d800000132) pci11ab,11ab (obp-device, d800000155) disk (block, d80000017f) disk (block, d8000001a2) disk (block, d8000001c5) disk (block, d8000001e8) disk (block, d80000020b) ... pci-ide (pci-ide, d800000405) ide (obp-device, d80000042c) ide (obp-device, d800000435) pci-ide (pci-ide, d80000043e) ide (ide, d800000466) cmdk (block, d800000477) ide (ide, d80000048e) sd (cdrom, d8000004a5) /etc/path_to_inst "/pci at 0,0/pci8086,25ae at 1c/pci11ab,11ab at 3" 0 "marvell88sx" "/pci at 0,0/pci8086,25ae at 1c/pci11ab,11ab at 3/disk at 0,0" 3 "sd" "/pci at 0,0/pci8086,25ae at 1c/pci11ab,11ab at 3/disk at 2,0" 4 "sd" "/pci at 0,0/pci8086,25ae at 1c/pci11ab,11ab at 3/disk at 3,0" 5 "sd" "/pci at 0,0/pci8086,25ae at 1c/pci11ab,11ab at 3/disk at 4,0" 6 "sd" "/pci at 0,0/pci8086,25ae at 1c/pci11ab,11ab at 3/disk at 1,0" 9 "sd" "/pci at 0,0/pci-ide at 1f,1" 0 "pci-ide" "/pci at 0,0/pci-ide at 1f,1/ide at 0" 0 "ata" "/pci at 0,0/pci-ide at 1f,1/ide at 0/sd at 0,0" 1 "sd" "/pci at 0,0/pci-ide at 1f,1/ide at 1" 1 "ata" "/pci at 0,0/pci-ide at 1f,2" 1 "pci-ide" "/pci at 0,0/pci-ide at 1f,2/ide at 0" 2 "ata" "/pci at 0,0/pci-ide at 1f,2/ide at 0/cmdk at 0,0" 0 "cmdk" "/pci at 0,0/pci-ide at 1f,2/ide at 0/sd at 0,0" 7 "sd" "/pci at 0,0/pci-ide at 1f,2/ide at 1" 3 "ata" "/pci at 0,0/pci-ide at 1f,2/ide at 1/sd at 0,0" 0 "sd" "/pci at 0,0/pci-ide at 1f,2/ide at 1/sd at 1,0" 8 "sd" "/pci at 0,0/pci-ide at 1f,2/ide at 1/cmdk at 0,0" 1 "cmdk" and for what it''s worth 85 -rwxr-xr-x 1 root sys 85592 Dec 8 2008 /kernel/drv/amd64/ marvell88sx 58 -rwxr-xr-x 1 root sys 58224 Dec 8 2008 /kernel/drv/marvell88sx
Ross
2009-Jul-10 11:50 UTC
[zfs-discuss] SMART problems with AOC-SAT2-MV8 / marvell88sx driver
I don''t know how relevant this is to you on Nexenta, but I can tell you that the driver support for that card improved tremendously with OpenSolaris 2008.11. All of our hot swap problems went away with that release but the change wasn''t documented anywhere that I could see. It might be worth simply booting off a 2009.06 live CD and seeing if any of these commands work. -- This message posted from opensolaris.org