[PATCHv2 0/3] mtd: onenand: add cache program feature for 4kb page onenand

Kyungmin Park kmpark at infradead.org
Thu Nov 4 08:47:34 EDT 2010


I think it has some slow write performance since two page write is lower
than one page. It means cache program is not work as expected.
That's reason no warning message. In my case I enabled the sync write and
get 10MiB or more performance. Please see my speedtest result.

Thank you,
Kyungmin Park

Sent from Android
On Nov 4, 2010 9:40 PM, "Roman Tereshonkov" <roman.tereshonkov at nokia.com>
wrote:
>
> Hi Park,
>
> I tried several times
> fsstress -p 3 -n 10000 -d /mnt/ubifs
> for 28 MB onenand partition. No warnings observed.
> The logs are below.
>
>
> # modprobe ubi mtd=4
> [ 101.013549] UBI: attaching mtd4 to ubi0
> [ 101.017486] UBI: physical eraseblock size: 262144 bytes (256 KiB)
> [ 101.023895] UBI: logical eraseblock size: 253952 bytes
> [ 101.029510] UBI: smallest flash I/O unit: 4096
> [ 101.034271] UBI: VID header offset: 4096 (aligned 4096)
> [ 101.040405] UBI: data offset: 8192
> [ 101.054565] UBI: empty MTD device detected
> [ 101.058868] UBI: create volume table (copy #1)
> [ 101.067504] UBI: create volume table (copy #2)
> [ 101.077239] UBI: attached mtd4 to ubi0
> [ 101.081054] UBI: MTD device name: "swap"
> [ 101.086090] UBI: MTD device size: 32 MiB
> [ 101.091033] UBI: number of good PEBs: 123
> [ 101.095733] UBI: number of bad PEBs: 5
> [ 101.100280] UBI: max. allowed volumes: 128
> [ 101.104949] UBI: wear-leveling threshold: 8192
> [ 101.109771] UBI: number of internal volumes: 1
> [ 101.114257] UBI: number of user volumes: 0
> [ 101.118804] UBI: available PEBs: 117
> [ 101.123504] UBI: total number of reserved PEBs: 6
> [ 101.128295] UBI: number of PEBs reserved for bad PEB handling: 2
> [ 101.134399] UBI: max/mean erase counter: 0/0
> [ 101.138763] UBI: image sequence number: 0
> [ 101.142852] UBI: background thread "ubi_bgt0d" started, PID 104
> [ 101.150085] modprobe used greatest stack depth: 6068 bytes left
> # modprobe ubifs
> # ubimkvol /dev/ubi0 -N test -m
> Set volume size to 29712384
> Volume ID 0, size 117 LEBs (29712384 bytes, 28.3 MiB), LEB size [
111.348449] ubimkvol used greatest stack depth: 5820 bytes left
> 253952 bytes (248.0 KiB), dynamic, name "test", alignment 1
> #mount -t ubifs ubi0_0 /mnt/ubifs
> [ 133.515991] UBIFS: default file-system created
> [ 133.565490] UBIFS: mounted UBI device 0, volume 0, name "test"
> [ 133.571594] UBIFS: file system size: 27426816 bytes (26784 KiB, 26 MiB,
108 LEBs)
> [ 133.579406] UBIFS: journal size: 2031617 bytes (1984 KiB, 1 MiB, 6 LEBs)
> [ 133.586791] UBIFS: media format: w4/r0 (latest is w4/r0)
> [ 133.592712] UBIFS: default compressor: lzo
> [ 133.596893] UBIFS: reserved for root: 1295435 bytes (1265 KiB)
> [ 133.604675] mount used greatest stack depth: 5768 bytes left
> # fsstress -p 3 -n 10 -d /mnt/ubifs
> seed = 397323
> # fsstress -p 3 -n 100 -d /mnt/ubifs
> seed = 826848
> # fsstress -p 3 -n 1000 -d /mnt/ubifs
> seed = 209658
> # fsstress -p 3 -n 10000 -d /mnt/ubifs
> seed = 748381
> #
>
>
> mtd_speedtest gives no warnings also. Only bad block related errors:
>
> # insmod mtd_speedtest.ko dev=4
> [ 23.759948]
> [ 23.761505] =================================================
> [ 23.767639] mtd_speedtest: MTD device: 4
> [ 23.771728] mtd_speedtest: MTD device size 33554432, eraseblock size
262144, page size 4096, count of eraseblocks 128, pages per eraseblock 64,
OOB size 128
> [ 23.800933] mtd_speedtest: scanning for bad eraseblocks
> [ 23.808441] Bad eraseblock 42 at 0x00a80000
> [ 23.812713] mtd_speedtest: block 22 is bad
> [ 23.818542] Bad eraseblock 60 at 0x00f00000
> [ 23.822814] mtd_speedtest: block 40 is bad
> [ 23.827423] Bad eraseblock 65 at 0x01040000
> [ 23.831665] mtd_speedtest: block 45 is bad
> [ 23.837860] Bad eraseblock 87 at 0x015c0000
> [ 23.842163] mtd_speedtest: block 67 is bad
> [ 23.850891] Bad eraseblock 136 at 0x02200000
> [ 23.855224] mtd_speedtest: block 116 is bad
> [ 23.860534] mtd_speedtest: scanned 128 eraseblocks, 5 are bad
> [ 24.010498] mtd_speedtest: testing eraseblock write speed
> [ 26.267669] mtd_speedtest: eraseblock write speed is 13988 KiB/s
> [ 26.273803] mtd_speedtest: testing eraseblock read speed
> [ 27.286437] mtd_speedtest: eraseblock read speed is 31269 KiB/s
> [ 27.430114] mtd_speedtest: testing page write speed
> [ 36.082855] mtd_speedtest: page write speed is 3641 KiB/s
> [ 36.088409] mtd_speedtest: testing page read speed
> [ 37.086517] mtd_speedtest: page read speed is 31678 KiB/s
> [ 37.444854] mtd_speedtest: testing 2 page write speed
> [ 60.709533] mtd_speedtest: 2 page write speed is 1353 KiB/s
> [ 60.715148] mtd_speedtest: testing 2 page read speed
> [ 61.624176] mtd_speedtest: 2 page read speed is 34870 KiB/s
> [ 61.629791] mtd_speedtest: Testing erase speed
> [ 61.868347] mtd_speedtest: erase speed is 133991 KiB/s
> [ 61.873565] mtd_speedtest: finished
> [ 61.877105] =================================================
>
>
>
> Regards
> Roman Tereshonkov
>
> On Thu, Nov 04, 2010 at 10:10:36AM +0100, ext Kyungmin Park wrote:
>> On Thu, Nov 4, 2010 at 5:58 PM, <roman.tereshonkov at nokia.com> wrote:
>> >
>> > Hi,
>> >
>> >
>> > I used driver/mtd/tests and did not observe any warnings except a
couple of bad blocks for some boards.
>> Yes in case of mtd_test* there's no messages.
>> >
>> > Can you discribe your test case for me to reproduce it. And show your
kernel log when it happens if possible?
>> > Is it for 2kb or 4kb page onenand?
>>
>> Mount ubifs on OneNAND which has 4KiB pagesize and run fsstress -p 3
>> -n 1000000000 -d /ubifs
>>
>> then you can or maybe see the UBI scrubbing message.
>>
>> Thank you,
>> Kyungmin Park
>> >
>> >
>> > Regards
>> > Roman Tereshonkov
>> >
>> >
>> >>-----Original Message-----
>> >>From: kyungmin78 at gmail.com [mailto:kyungmin78 at gmail.com] On
>> >>Behalf Of ext Kyungmin Park
>> >>Sent: 04 November, 2010 03:15
>> >>To: Tereshonkov Roman (Nokia-MS/Helsinki)
>> >>Cc: linux-mtd at lists.infradead.org
>> >>Subject: Re: [PATCHv2 0/3] mtd: onenand: add cache program
>> >>feature for 4kb page onenand
>> >>
>> >>Hi,
>> >>
>> >>One concern is that after apply patch, there are some 1-bit ECC
>> >>warnings so UBI scrubbing messages are displayed.
>> >>
>> >>Are there these message at your board?
>> >>
>> >>Thank you,
>> >>Kyungmin Park
>> >>
>> >>On Wed, Nov 3, 2010 at 7:55 PM, Roman Tereshonkov
>> >><roman.tereshonkov at nokia.com> wrote:
>> >>> Implement cache program feature for 4KB page onenand.
>> >>> This feature improves the write data performance.
>> >>> The observed 128KB data program speed change is
>> >>> from 8827KB/s to 14156 KB/s when the feature is enabled.
>> >>>
>> >>> Roman Tereshonkov (3):
>> >>>  mtd: onenand: add option and variable for cache program feature
>> >>>  mtd: onenand: fix omap2 code to handle cache program feature
>> >>>  mtd: onenand: implement cache program feature for 4kb page onenand
>> >>>
>> >>>  drivers/mtd/onenand/omap2.c        |   12 +++++++++---
>> >>>  drivers/mtd/onenand/onenand_base.c |   22 +++++++++++++++++++---
>> >>>  include/linux/mtd/onenand.h        |   12 ++++++++++++
>> >>>  3 files changed, 40 insertions(+), 6 deletions(-)
>> >>>
>> >>>
>> >>> ______________________________________________________
>> >>> Linux MTD discussion mailing list
>> >>> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>> >>>
>> >>
>> > ______________________________________________________
>> > Linux MTD discussion mailing list
>> > http://lists.infradead.org/mailman/listinfo/linux-mtd/
>> >
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/linux-mtd/attachments/20101104/6e8054f8/attachment-0001.html>


More information about the linux-mtd mailing list