Monday, May 30, 2022

Re: SMART treshold (not) exceeded

From a quick glance in the code atactl calls
ATAPI_SMART/ATA_SMART_STATUS, which maps to section 7.31.6 of the ATA-3
spec[0] (there's newer standards, but shouldn't have changed). Here it
states:
NORMAL OUTPUTS - If the device has not detected a thrshold exceeded
condition, the device sets the Cylinder Low register to 4Fh and the
Cylinder High register to C2h. If the device has detected a threshold
exceeded condition, the device sets the Cylinder Low register to F4h and
the Cylinder High register to 2Ch.

The message "No SMART threshold exceeded" only shows when
req.cylinder == 0xc24f. So unless I'm missing something it's your disk's
SMART that returns something that doesn't make sense.

martijn@

[0] https://www.scs.stanford.edu/10wi-cs140/pintos/specs/ata-3-std.pdf

On Mon, 2022-05-30 at 15:24 +0200, Jan Stary wrote:
> This is current/adm64 on a PC (dmesg below).
> I monitor disk status with atactl.
> On one of the disks, I get this:
>
> # atactl sd2 identify
> Model: WDC WD3200AAJS-00VWA0, Rev: 12.01B02, Serial #: WD-WMARW0118535
> Device type: ATA, fixed
> Cylinders: 16383, heads: 16, sec/track: 63, total sectors: 625142448
> Device capabilities:
> ATA standby timer values
> IORDY operation
> IORDY disabling
> Device supports the following standards:
> ATA-1 ATA-2 ATA-3 ATA-4 ATA-5 ATA-6 ATA-7 ATA-8
> Master password revision code 0xfffe
> Device supports the following command sets:
> NOP command
> READ BUFFER command
> WRITE BUFFER command
> Host Protected Area feature set
> Read look-ahead
> Write cache
> Power Management feature set
> Security Mode feature set
> SMART feature set
> Flush Cache Ext command
> Flush Cache command
> Device Configuration Overlay feature set
> 48bit address feature set
> Automatic Acoustic Management feature set
> Set Max security extension commands
> Set Features subcommand required
> Power-up in standby feature set
> DOWNLOAD MICROCODE command
> SMART self-test
> SMART error logging
> Device has enabled the following command sets/features:
> NOP command
> READ BUFFER command
> WRITE BUFFER command
> Host Protected Area feature set
> Read look-ahead
> Write cache
> Power Management feature set
> SMART feature set
> Flush Cache Ext command
> Flush Cache command
> Device Configuration Overlay feature set
> 48bit address feature set
> Automatic Acoustic Management feature set
> Set Features subcommand required
> DOWNLOAD MICROCODE command
>
> # atactl sd2 readattr
> Attributes table revision: 16
> ID Attribute name Threshold Value Raw
> 1 Raw Read Error Rate 51 199 0x0000000309c6
> 3 Spin Up Time 21 157 0x000000001405
> 4 Start/Stop Count 0 100 0x0000000002b7
> 5 Reallocated Sector Count 140 200 0x000000000000
> 7 Seek Error Rate 51 200 0x000000000000
> 9 Power-On Hours Count 0 76 0x000000004660
> 10 Spin Retry Count 51 100 0x000000000000
> 11 Calibration Retry Count 51 100 0x000000000000
> 12 Device Power Cycle Count 0 100 0x0000000001ec
> 192 Power-Off Retract Count 0 200 0x000000000124
> 193 Load Cycle Count 0 200 0x0000000002b7
> 194 Temperature 0 105 0x00000000002a
> 196 Reallocation Event Count 0 200 0x000000000000
> 197 Current Pending Sector Count 0 200 0x00000000000a
> 198 Off-Line Scan Uncorrectable Sect 0 200 0x000000000003
> 199 Ultra DMA CRC Error Count 0 200 0x00000000001d
> 200 *Write Error Rate 51 1 0x00000000b290
> One or more threshold values exceeded!
>
> # atactl sd2 smartstatus
> No SMART threshold exceeded
>
> Either some threshold was exceeded or it wasn't:
> am I missing some subtle semantics here?
>
> Jan
>

No comments:

Post a Comment