[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-hackers
Subject:    Re: please help translate smartctl output to human language
From:       Ravi Pokala <rpokala () freebsd ! org>
Date:       2019-08-15 17:05:24
Message-ID: 0D470EB1-D893-4855-B081-0351DB9FF93E () panasas ! com
[Download RAW message or body]

> Date: Thu, 15 Aug 2019 11:28:47 +0100
> From: Graham Perrin <grahamperrin@gmail.com>
> To: freebsd-hackers@freebsd.org
> Subject: Re: please help translate smartctl output to human language
> Message-ID: <7bed2865-46c0-8649-d6b4-79a096f563c8@gmail.com>
> Content-Type: text/plain; charset=utf-8; format=flowed
> 
> Where the Reallocated_Sector_Ct RAW_VALUE comprises three values, two of which are \
> in parentheses: 
> - what are the two raw values in parentheses?
> 
> A guess: are the two, in parentheses, representations of 
> Current_Pending_Sector and Reallocated_Event_Count?

This doesn't really have anything to do with FreeBSD, but rather with smartmontools.

The short version is, the SMART "raw" value is a 48-bit value, which has different \
interpretations for different attributes.

I happen to have a copy of the smartmontools source handy, so I did some quick \
`grep'ing. In drivedb.h, "Reallocated_Sector_Ct" by default uses the format string \
"raw16(raw16)".

The manpage for `smartctl' reports:

> raw16(raw16)  -  Print the raw attribute as a 16-bit value and two optional 16-bit \
> values if these words are nonzero.  This is the default for Attributes 5 and 196.

In atacmds.cpp, "raw16(raw16)" is associated with RAWFMT_RAW16_OPT_RAW16, which goes \
to this code:

> case RAWFMT_RAW16_OPT_RAW16:
> s = strprintf("%u", word[0]);
> if (word[1] || word[2])
> s += strprintf(" (%u %u)", word[2], word[1]);
> break;

So, it's treating the 48-bit value as three separate 16-bit words, and is reporting \
them separately.

In your case, the value of the low 16-bits is 24 (0x0018), the value of the middle \
16-bits is 3 (0x0003), and the value of the high 16-bits is 0 (0x0000).

-Ravi (rpokala@)

> Here, for example:
> 
> root@momh167-gjp4-8570p:~ # smartctl -a /dev/ada0 | grep -E 'Reall|Pending'
> ? 5 Reallocated_Sector_Ct?? 0x0033?? 100?? 100?? 005??? Pre-fail Always?????? \
> -?????? 24 (0 3) 196 Reallocated_Event_Count 0x0032?? 100?? 100?? 000??? Old_age  \
> Always?????? -?????? 3 197 Current_Pending_Sector? 0x0032?? 100?? 100?? 000??? \
> Old_age  Always?????? -?????? 0 root@momh167-gjp4-8570p:~ #
> 
> In context:
> 
> <https://s.put.re/dwcfGGKE.png>
> 
> <https://gist.github.com/grahamperrin/e624d443d3f10c7162ac7986f599fbd6#file-hgst_hts725050a7e630_tf0500y906l81l_2019-08-15-txt-L69>
> 



_______________________________________________
freebsd-hackers@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic