This message is from the T13 list server.

Hi Pat,

Thanks for your comments.

> > some ATA drives don't set their Current and/or Offline
> >  Pending Sector Counts (backwards compatible ATA-4/SFF-8035i SMART data
> >  Attributes) to zero, even when an extended read scan indicates that 
> > ALL
> >  the disk sectors can be read.
> 
> Thanks for sharing.
> 
> >  Why is this?
> 
> I'm here hoping I can help by asking ignorant questions ...
> 
> > Is it because after a sector goes onto the pending sector list, it 
> > can't be cleared from the list until it is WRITEn to, even if there is 
> > a subsequent sucessful READ of that  sector?
> 
> What's a "SMART" "pending sector list"?

I think it's just the 'pending sector list'.  My understanding is that
this is a list of candidates for reallocation.  A sector typically gets
added to the list when it has inconsistent ECC or is not readable for
other resaons.

> Is it the list of blocks for which read attempts failed?

That's my understanding.

> Yes, automagically erasing those blocks could destroy data, if the 
> unreadability was temporary e.g. due to heat, electric fields, magnetic 
> fields, muck on the heads, etc.  Yes, having failed to read once 
> correlates well with failing to read later, even if a read in between 
> did work.  So yes, especially in the removable world where more heads 
> are available, some people like the policy of waiting to reallocate 
> such blocks until rewritten.

Well, this *would* explain it.  In other words, the sector gets added to
the pending sector list when (for example) the drive has to make a
half-dozen attempts to read that sector, before sucessfully reading it.

But it seems odd to me that the drive would not *immediately* reallocate
the sector in this situation, since waiting until 'the next WRITE' to
reallocate the sector runs the (obviously elevated) risk of (again) not
being able to READ the data from that sector.  This would be a problem if
the user tries again to READ it, before issuing another WRITE to that LBA.

So I guess I don't really understand the logic of delaying the
reallocation until the next write, when:
  (1) the sector IS readable, and
  (2) the sector IS on the pending-sector list.
Delaying the reallocation simply increases the probability of not being
able to re-read the sector in the future.  And if one is confident that
the sector is OK and doesn't need reallocation, it would make sense to
remove it from the pending sector list.

Is there something wrong with this logic?

Cheers,
        Bruce
 

Reply via email to