cfi_cmdset_0002: do_write_buffer timeouts

Brian Norris computersforpeace at gmail.com
Thu Apr 11 05:00:30 EDT 2013


[Sorry for the repeat email for some; Gmail switched me back to
HTML-mode, so my previous email couldn't be delivered to the MTD list]

Hi all,

I'm having some trouble where I am getting timeouts in cfi_cmdset_0002.c:

MTD do_write_buffer(): software timeout

I'm using a 64Mbyte Spansion S29GL512 NOR flash:

physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank.
Manufacturer ID 0x000001 Chip ID 0x002301

I can reproduce the timeout approximately 0.5% of the time on a simple
reboot, mount UBI rootfs test. My system has CONFIG_HZ=250, and so the
timeout comes out to just 1 jiffy. I have to increase this timeout to
at least 3 ticks to avoid the timeouts. (I've been running reboot
tests successfully for several days with the timeout as 3 jiffies.)

So my question is: what is the "best" way to decide these timeouts?
I'm inclined to just increase the timeout (and to use the proper
msecs_to_jiffies() macro, as a cleanup). But according to the
datasheets (which agree with the comments in the code), the max time
should be less than a millisecond. So simply increasing the timeout
may in fact just be masking some other bug.

Huang,

I noticed you recently sent a patch that adjusts the timeout print
message in do_write_buffer(). Have you had problems with this code
recently?

Any thoughts from any interested (or uninterested) party would be useful.

Thanks,
Brian



More information about the linux-mtd mailing list