From: Stefani Seibold <stefani@seibold.net>
To: dedekind1@gmail.com
Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>,
"Enzinger,
Robert \(EXT-Other - DE/Munich\)" <robert.enzinger.ext@nsn.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH] Add quick erase format option
Date: Mon, 09 Aug 2010 15:37:07 +0200 [thread overview]
Message-ID: <1281361027.19869.40.camel@wall-e.seibold.net> (raw)
In-Reply-To: <1281353344.2332.8.camel@brekeke>
Am Montag, den 09.08.2010, 14:29 +0300 schrieb Artem Bityutskiy:
> On Mon, 2010-08-09 at 10:52 +0200, Stefani Seibold wrote:
> > Am Montag, den 09.08.2010, 09:37 +0100 schrieb David Woodhouse:
> > > On Mon, 2010-08-09 at 09:25 +0100, stefani@seibold.net wrote:
> > > > From: Stefani Seibold <stefani@seibold.net>
> > > >
> > > > This patch add a quick format option which skips erasing of already erased
> > > > flash blocks. This is useful for first time production environments where
> > > > the flash arrived erased.
> > > >
> > > > Signed-off-by: Stefani Seibold <stefani@seibold.net>
> > >
> > > This scares me, given the lengths we had to go to in JFFS2 to cope with
> > > blocks which *look* like they're erased, but which actually start losing
> > > data as soon as you start writing to them because the erase didn't
> > > complete.
> > >
> >
> > I know the drawback. This is why it is only an option which must be
> > enabled. And in most use cases there is a subsequent ubimkvol, which
> > will fail if the flash is not correct initialized.
> >
> > Flash are normally delivered erased. So this save in our production
> > environment (Nokia Siemens Networks) about 5 minutes per device (256 MB
> > NOR CFI Flash).
> >
> > The old JFFS2 was very fast to install the first time on a flash, it was
> > only a simple mount of the MTD partition.
>
> Not sure what you do, but both UBI and UBIFS auto-format flash if it is
> empty, and attaching empty flash should be very fast.
>
I was never able to mount UBIFS without a previous ubimkvol, despite the
flash is already erased.
> But yes, the first volume creation ioctl will block until everything is
> erased, although this is just an implementation issue and in theory,
> fixable.
>
Here are my timing results for mounting an empty flash as UBIFS:
ubiattach /dev/ubi_ctrl -m 5 -d 1 --> 2.023 sec
ubimkvol /dev/ubi1 -m -N flash --> 294.574 sec
mount -t ubifs -o sync ubi1:flash /mnt --> 0.221 sec
or
ubiformat /dev/mtd5 --> 299.111 sec
ubiattach /dev/ubi_ctrl -m 5 -d 1 --> 0.129 sec
ubimkvol /dev/ubi1 -m -N flash --> 1.784 sec
mount -t ubifs -o sync ubi1:flash /mnt --> 0.220 sec
So there is no real benefit between an empty flash and a formated flash.
And this are the timing results for formating and mounting an empty
flash with my patched ubiformat tool:
ubiformat /dev/mtd5 -E --> 5.475 sec
ubiattach /dev/ubi_ctrl -m 5 -d 1 --> 0.130 sec
ubimkvol /dev/ubi1 -m -N flash --> 1.699 sec
mount -t ubifs -o sync ubi1:flash /mnt --> 0.220 sec
As you can see this is 296,818 vs. 7,522 or 40 times faster!
But maybe i do something wrong. Could you explain this?
> > Which the quick format option i have now only a slightly first time
> > installation overhead compared to JFFS2. Without this option the
> > overhead is more than 5 minutes.
>
> Are you flashing an UBI image in production? Then what you can do if you
> want to be faster is to flash only the blocks which contain image date,
> and leave the rest intact, UBI will erase them and write EC header to
> them when you first boot the device.
>
No, we only initialize the flash, mount the UBIFS it and copy files.
> So I think it is better to add an --pristine-flash option, or something
> like this. In this case ubiformat won't erase anything, and will assume
> everything is 0xFFed without reading. This should be faster and I think
> is better to do.
>
My patch assumes nothing, it check if the EC header is 0xff and i think
this is safer than your suggestion. My patch skips the erase if all
bytes in the header are 0xff skip, otherwise erase it.
- Stefani
WARNING: multiple messages have this Message-ID (diff)
From: Stefani Seibold <stefani@seibold.net>
To: dedekind1@gmail.com
Cc: David Woodhouse <dwmw2@infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
Artem Bityutskiy <Artem.Bityutskiy@nokia.com>,
"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
"Enzinger,
Robert (EXT-Other - DE/Munich)" <robert.enzinger.ext@nsn.com>
Subject: Re: [PATCH] Add quick erase format option
Date: Mon, 09 Aug 2010 15:37:07 +0200 [thread overview]
Message-ID: <1281361027.19869.40.camel@wall-e.seibold.net> (raw)
In-Reply-To: <1281353344.2332.8.camel@brekeke>
Am Montag, den 09.08.2010, 14:29 +0300 schrieb Artem Bityutskiy:
> On Mon, 2010-08-09 at 10:52 +0200, Stefani Seibold wrote:
> > Am Montag, den 09.08.2010, 09:37 +0100 schrieb David Woodhouse:
> > > On Mon, 2010-08-09 at 09:25 +0100, stefani@seibold.net wrote:
> > > > From: Stefani Seibold <stefani@seibold.net>
> > > >
> > > > This patch add a quick format option which skips erasing of already erased
> > > > flash blocks. This is useful for first time production environments where
> > > > the flash arrived erased.
> > > >
> > > > Signed-off-by: Stefani Seibold <stefani@seibold.net>
> > >
> > > This scares me, given the lengths we had to go to in JFFS2 to cope with
> > > blocks which *look* like they're erased, but which actually start losing
> > > data as soon as you start writing to them because the erase didn't
> > > complete.
> > >
> >
> > I know the drawback. This is why it is only an option which must be
> > enabled. And in most use cases there is a subsequent ubimkvol, which
> > will fail if the flash is not correct initialized.
> >
> > Flash are normally delivered erased. So this save in our production
> > environment (Nokia Siemens Networks) about 5 minutes per device (256 MB
> > NOR CFI Flash).
> >
> > The old JFFS2 was very fast to install the first time on a flash, it was
> > only a simple mount of the MTD partition.
>
> Not sure what you do, but both UBI and UBIFS auto-format flash if it is
> empty, and attaching empty flash should be very fast.
>
I was never able to mount UBIFS without a previous ubimkvol, despite the
flash is already erased.
> But yes, the first volume creation ioctl will block until everything is
> erased, although this is just an implementation issue and in theory,
> fixable.
>
Here are my timing results for mounting an empty flash as UBIFS:
ubiattach /dev/ubi_ctrl -m 5 -d 1 --> 2.023 sec
ubimkvol /dev/ubi1 -m -N flash --> 294.574 sec
mount -t ubifs -o sync ubi1:flash /mnt --> 0.221 sec
or
ubiformat /dev/mtd5 --> 299.111 sec
ubiattach /dev/ubi_ctrl -m 5 -d 1 --> 0.129 sec
ubimkvol /dev/ubi1 -m -N flash --> 1.784 sec
mount -t ubifs -o sync ubi1:flash /mnt --> 0.220 sec
So there is no real benefit between an empty flash and a formated flash.
And this are the timing results for formating and mounting an empty
flash with my patched ubiformat tool:
ubiformat /dev/mtd5 -E --> 5.475 sec
ubiattach /dev/ubi_ctrl -m 5 -d 1 --> 0.130 sec
ubimkvol /dev/ubi1 -m -N flash --> 1.699 sec
mount -t ubifs -o sync ubi1:flash /mnt --> 0.220 sec
As you can see this is 296,818 vs. 7,522 or 40 times faster!
But maybe i do something wrong. Could you explain this?
> > Which the quick format option i have now only a slightly first time
> > installation overhead compared to JFFS2. Without this option the
> > overhead is more than 5 minutes.
>
> Are you flashing an UBI image in production? Then what you can do if you
> want to be faster is to flash only the blocks which contain image date,
> and leave the rest intact, UBI will erase them and write EC header to
> them when you first boot the device.
>
No, we only initialize the flash, mount the UBIFS it and copy files.
> So I think it is better to add an --pristine-flash option, or something
> like this. In this case ubiformat won't erase anything, and will assume
> everything is 0xFFed without reading. This should be faster and I think
> is better to do.
>
My patch assumes nothing, it check if the EC header is 0xff and i think
this is safer than your suggestion. My patch skips the erase if all
bytes in the header are 0xff skip, otherwise erase it.
- Stefani
next prev parent reply other threads:[~2010-08-09 13:54 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-09 8:25 [PATCH] Add quick erase format option stefani
2010-08-09 8:37 ` David Woodhouse
2010-08-09 8:37 ` David Woodhouse
2010-08-09 8:52 ` Stefani Seibold
2010-08-09 8:52 ` Stefani Seibold
2010-08-09 11:29 ` Artem Bityutskiy
2010-08-09 11:29 ` Artem Bityutskiy
2010-08-09 13:37 ` Stefani Seibold [this message]
2010-08-09 13:37 ` Stefani Seibold
2010-08-09 13:54 ` Stefani Seibold
2010-08-09 13:54 ` Stefani Seibold
2010-08-29 11:30 ` Artem Bityutskiy
2010-08-29 11:30 ` Artem Bityutskiy
2010-08-29 12:20 ` Artem Bityutskiy
2010-08-29 12:20 ` Artem Bityutskiy
2010-08-31 6:42 ` Stefani Seibold
2010-08-31 6:42 ` Stefani Seibold
2010-09-01 0:47 ` Artem Bityutskiy
2010-09-01 0:47 ` Artem Bityutskiy
2010-09-02 6:53 ` Stefani Seibold
2010-09-02 6:53 ` Stefani Seibold
2010-09-02 10:58 ` Artem Bityutskiy
2010-09-02 10:58 ` Artem Bityutskiy
2010-09-02 11:42 ` Stefani Seibold
2010-09-02 11:42 ` Stefani Seibold
2018-06-20 5:38 ` Richard Weinberger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1281361027.19869.40.camel@wall-e.seibold.net \
--to=stefani@seibold.net \
--cc=Artem.Bityutskiy@nokia.com \
--cc=akpm@linux-foundation.org \
--cc=dedekind1@gmail.com \
--cc=dwmw2@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=robert.enzinger.ext@nsn.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.