delayed close on mtdblock

Alexander Stein alexander.stein at systec-electronic.com
Wed Jan 4 09:18:21 EST 2012


Hello,

I observed an somewhat interesting situation regarding mtdblock. I have a NOR-
Flash with several mtd partitions. One holds the configuration from the 
bootloader and another one contains UBI/UBIFS.
During bootup I attach UBI and mount UBIFS, no problems so far. To read the 
bootloader coniguration I open the corresponding mtdblock with O_RDONLY, do an 
lseek, read and close it afterwards, nothing special. But I noticed the 
close() call take >1s which seems to far big, as there is nothing to be 
written into this mtdblock device.
I digged into the kernel and get to mtdblock_release(). I can see that 
write_cached_data does nothing as the cache is clean. But mbd->mtd->sync 
(cfi_amdstd_sync in my case) takes a while because the chip state is currently 
FL_ERASING. The retry loop is taken several times before exiting the function.
If I don't mount UBIFS there is no such delay. I'm wondering if there is 
actually a need to sync the chip if the cache is clean. Can someone explain 
this to me?

Best regards,
Alexander
-- 
Dipl.-Inf. Alexander Stein

SYS TEC electronic GmbH
August-Bebel-Str. 29
D-07973 Greiz

Tel: +49-3661-6279-0, Fax: +49-3661-6279-99
eMail:    Alexander.Stein at systec-electronic.com
Internet: http://www.systec-electronic.com

Managing Director: Dipl.-Phys. Siegmar Schmidt
Commercial registry: Amtsgericht Jena, HRB 205563



More information about the linux-mtd mailing list