Opened 2 years ago

Last modified 2 weeks ago

#1678 new defect

attribute spelling is inconsistent between different drivedb entries

Reported by: vthriller Owned by:
Priority: minor Milestone: unscheduled
Component: drivedb Version:
Keywords: Cc:

Description (last modified by vthriller)

For example:

  • Grown_Bad_Block_Count
  • Grown_Bad_Block_Ct
  • Grown_Bad_Blocks
  • Grown_Failing_Block_Ct (?)
  • Total_Bad_Block
  • Total_Bad_Block_Count
  • Total_Bad_Blocks
  • Thermal_Throttle (?)
  • Thermal_Throttle_St
  • Thermal_Throttle_Status
  • ECC_Uncorr_Error_Count
  • Lifetime_UECC_Ct
  • UECC_Ct
  • Uncorrectable_ECC_Cnt
  • Uncorrectable_ECC_Ct
  • Uncorrectable_Err_Ct
  • Uncorrectable_Error_Cnt
  • Uncorrectable_Sector_Ct
  • Uncorrectable_Sectors
  • Erase_Fail_Cnt
  • Erase_Fail_Count
  • Erase_Fail_Ct
  • Unexpect_Power_Loss
  • Unexpect_Power_Loss_Ct
  • Unexpect_PwrLoss_Ct
  • Unexpected_Power_Cycle
  • Unexpected_Power_Loss
  • Unexpected_Pwr_Loss_Cnt
  • Unexpected_Pwr_Loss_Ct
  • Soft_ECC_Correct_Rate
  • Soft_ECC_Correction_Rt
  • DriveLife_Remaining%
  • Drive_Life_Remaining%
  • Lifetime_Left (?)
  • PCT_Life_Remaining
  • Perc_Rated_Life_Remain
  • Percent_Life_Remaining
  • Percent_Lifetime_Remain
  • Remaining_Life
  • Remaining_Lifetime_Perc

And so on and so forth.

Change History (8)

comment:1 by vthriller, 2 years ago

Component: alldrivedb

comment:2 by Christian Franke, 2 years ago

Milestone: unscheduled
Priority: trivialminor

WIP.

comment:3 by Anthony D'Atri, 17 months ago

I think this is a function in part of multiple submitters, but even more that vendor SMART reference documents use different names.

For drive self-reported lifetime, it's even worse:

  • Media_Wearout_Indicator
  • Wear_Leveling_Count
  • Wear_Level_Used
  • Percent_Lifetime_Remain
  • SSD_Life_Left

Some drives report lifetime used, others lifetime remaining. I've seen at least one case where a manufacturer distributed a drivedb.h entry that got the polarity wrong.

I came to the site actually to request a project to align the attribute names, to pick a standard for each and update all drivedb.h entries to follow.

One might argue that tools should use the numeric ID instead, which has some merit, but I've also seen drives that use nonstandard numeric IDs for some metrics.

comment:4 by Christian Franke, 17 months ago

Specific ATA SMART attributes were never part of any standard. The related data block is vendor specific since at least ATA-4 (1991) and has been declared obsolete in ATA ACS-4 (2015).

In practice, HDDs use a rather stable attribute set but SSD vendors still invent new incompatible attribute sets.

comment:5 by vthriller, 2 weeks ago

To add to myriad of power loss counters, there are also Intel SSD entries with different terminology for what looks like the same thing (at least for me):

-v 174,raw48,Unexpect_Power_Loss_Ct
-v 174,raw48,Unsafe_Shutdown_Count

And if anyone thinks that these could be coalesced arbitrarily into something-something-power-loss, here's another pair of attributes with "shutdown" in the name:

    "-v 191,raw48,Clean_Shutdown_Ct "
    "-v 192,raw48,Unclean_Shutdown_Ct "

which would warrant, I don't know, "Expected Power Loss Count"? (-:

Version 0, edited 2 weeks ago by vthriller (next)

comment:6 by vthriller, 2 weeks ago

Description: modified (diff)

comment:7 by vthriller, 2 weeks ago

Description: modified (diff)

If anyone wants to go through other potentially ambiguous names,

egrep -o -- '-v [^ "]+' drivedb.h | cut -d, -f3 | sort -u

comment:8 by vthriller, 2 weeks ago

Here's another tricky set of names, which is harder to reason about because of these attributes from one drivedb entry for WD SSDs:

    "-v 233,raw48,NAND_GB_Written_TLC "
    "-v 234,raw48,NAND_GB_Written_SLC "
  • Lifetime_NAND_Prg_GiB
  • NAND_GB_Written_SLC
  • NAND_GB_Written_TLC
  • NAND_GiB_Written
  • NAND_Writes_1GiB
  • NAND_Writes_GiB
  • TLC_NAND_GB_Writes
  • Total_NAND_Writes_GiB
Note: See TracTickets for help on using tickets.