Re: SMART Self-test: Reserved (0x80)

Andreas Mohr <[email protected]>
Newsgroups gmane.linux.utilities.smartmontools
Message-ID <[email protected]>
Hi,

On Sun, Sep 14, 2014 at 10:26:27PM +0000, [email protected] wrote:
> Date: Wed, 10 Sep 2014 16:05:50 +0300
> From: [email protected]

> Hello 
> Could you explain me what does it mean:
> 
> SMART Self-test log structure revision number 0
> Warning: ATA Specification requires self-test log structure revision number = 1
> Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
> # 1  Reserved (0x80)     Aborted by host               60%     42798         -
> # 2  Short offline       Completed without error       00%     42787         -
> # 3  Short offline       Aborted by host               00%     42763         -
> 
> I'm interested about #1 test. what does it mean: Reserved (0x80) ? 
> The system was under heavy load, so i had to abort the test.

I cannot fully answer the question (all I can say from source review
is that smartmontools encountered a seemingly spec-"reserved" value 0x80
and logged it as that),
but since that entry was interestingly registered as a "reserved" value:
it would be useful at least to know how you requested that test,
e.g. which test type (see manual section
"SMART RUN/ABORT OFFLINE TEST AND self-test OPTIONS:")

So, which of -t offline/short/long/conveyance did you use?
And was it in captive mode (-C)?

And especially: which device was it?


For reference, atacmds.cpp ataPrintSmartSelfTestEntry() says:


  std::string msgtest;
  switch (test_type) {
    case 0x00: msgtest = "Offline";            break;
    case 0x01: msgtest = "Short offline";      break;
    case 0x02: msgtest = "Extended offline";   break;
    case 0x03: msgtest = "Conveyance offline"; break;
    case 0x04: msgtest = "Selective offline";  break;
    case 0x7f: msgtest = "Abort offline test"; break;
    case 0x81: msgtest = "Short captive";      break;
    case 0x82: msgtest = "Extended captive";   break;
    case 0x83: msgtest = "Conveyance captive"; break;
    case 0x84: msgtest = "Selective captive";  break;
    default:
      if ((0x40 <= test_type && test_type <= 0x7e) || 0x90 <= test_type)
        msgtest = strprintf("Vendor (0x%02x)", test_type);
      else
        msgtest = strprintf("Reserved (0x%02x)", test_type);
  }

Or perhaps 0x80 indeed has changed from "reserved" to a specific meaning
(or we never had the correct meaning of 0x80 in the first place??).
One would have to do some Internet specs research
to try to get an answer on this.
I did not find much during a short research though.

Judging from the range of values (e.g. since 0x7f indicates abort of offline)
it might seem that 0x80 might in fact be abort of captive tests.
But who knows...

Thanks for your report!

Andreas Mohr

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.