[Top] [All Lists]

Re: 2.6.38: XFS/USB/HW issue, or failing USB stick?

To: Tim Soderstrom <tim@xxxxxxxxxxxxxxxxxxxxx>
Subject: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick?
From: Arnd Bergmann <arnd@xxxxxxxx>
Date: Fri, 18 Mar 2011 16:59:46 +0100
Cc: Justin Piszcz <jpiszcz@xxxxxxxxxxxxxxx>, linux-usb@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, Alan Piszcz <ap@xxxxxxxxxxxxx>
In-reply-to: <30463798-7ACB-4248-8CDC-CEFCB6ABC0BE@xxxxxxxxxxxxxxxxxxxxx>
References: <alpine.DEB.2.02.1103181104020.30018@xxxxxxxxxxxxxxxx> <30463798-7ACB-4248-8CDC-CEFCB6ABC0BE@xxxxxxxxxxxxxxxxxxxxx>
User-agent: KMail/1.12.2 (Linux/2.6.37; KDE/4.3.2; x86_64; ; )
On Friday 18 March 2011, Tim Soderstrom wrote:

> > 
> > However, after some amount of time, the errors occur below, is this USB
> > stick failing?  Since it has no SMART, is there any other way to verify
> > the 'health' of a USB stick?
> What prompted you to go with XFS over, say, ext2? The journal will generally
> cause quite a bit more writes onto your USB device. I use ext2 on my CF card 
> in my NAS for that reason (the spinning media is on XFS of course). I know
> that's not an answer to your problem but thought I would add it as a 
> suggestion :)

Using ext2 on flash media instead of ext3 or other file systems is
recommended a lot, but the situation is actually much more complex.
In https://lwn.net/Articles/428584/, I explain how these things work
under the cover. For a drive that can only have very few erase blocks
open, using a journaled file system will always mean thrashing, but
for drives with more open erase blocks, it's probably better to
use a journal than not.

I still need to do simulations to figure out how this exactly
ends up on various file systems, and I had not considered XFS
so far.

Getting back to the rogiinal question, I'd recommend testing the
stick by doing raw accesses instead of a file system. A simple

dd if=/dev/sdX of=/dev/zero iflag=direct bs=4M

will read the entire stick and report any errors. The corresponding

dd of=/dev/zero of=/dev/sdX oflag=direct bs=4M

writes the entire stick. Some media won't report errors on write,
though, so this might not help you at all.

I'm also interested in results from flashbench
(git://git.linaro.org/people/arnd/flashbench.git, e.g. like
That might help explain how the stick failed.



<Prev in Thread] Current Thread [Next in Thread>