[GIT,PULL] UBI fastmap for 3.7-rc1

Submitted by Artem Bityutskiy on Oct. 8, 2012, 11:17 a.m.


Message ID 1349695030.1992.48.camel@sauron.fi.intel.com
State Accepted
Headers show


git://git.infradead.org/linux-ubi.git tags/upstream-3.7-rc1-fastmap

Commit Message

Artem Bityutskiy Oct. 8, 2012, 11:17 a.m.
Hi Linus,

here is the second UBI pull request which contains a big new
experimental feature. Please, pull with my apologies that it was exposed
to linux-next for shorter time than I usually do. Details are in the
signed tag.


The following changes since commit 55393ba1bdedc5ded79b34b4cc08898a7776cddb:

  UBI: fix trivial typo 'it' => 'is' (2012-09-26 13:22:50 +0300)

are available in the git repository at:

  git://git.infradead.org/linux-ubi.git tags/upstream-3.7-rc1-fastmap

for you to fetch changes up to 76ac66e469f084d41742ba08923de76fbdc7dce3:

  UBI: Wire-up fastmap (2012-10-03 16:39:37 +0300)

This pull request contains the UBI fastmap support implemented by Richard
Weinberger from Linutronix. Fastmap is designed to address UBI's slow scanning
issues. Namely, it introduces a new on-flash data-structure called "fastmap",
which stores the information about logical<->physical eraseblocks mappings.
So now to get this information just read the fastmap, instead of doing full
scan. More information here can be found in Richard's announcement in LKML
(Subject: UBI: Fastmap request for inclusion (v19)):


One thing I want to explicitly say is that fastmap did not have large
enough linux-next exposure. It is partially my fault - I did not respond
quickly enough. I _really_ apologize for this. But it had good testing and
disabled by default, so I do not expect that we'll break anything.

Fastmap is declared as experimental so far, and it is off by default. We
did declare that the on-flash format may be changed. The reason for this is
that no one used it in real production so far, so there is a high risk that
something is missing. Besides, we do not have user-space tools supporting
fastmap so far.

Nevertheless, I suggest we merge this feature. Many people want UBI's scanning
bottleneck to be fixed and merging fastmap now should accelerate its production
use. The plan is to make it bullet-prove, somewhat clean-up, and make it the
default for UBI. I do not know how many kernel releases will it take.

Basically, I what I want to do for fastmap is something like Linus did for
btrfs few years ago.

Richard Weinberger (10):
      UBI: Add fastmap on-flash data structures
      UBI: Add fastmap stuff to ubi.h
      UBI: Export next_sqnum()
      UBI: Add self_check_eba()
      UBI: Add fastmap bits to build.c
      UBI: Wire-up ->fm_sem
      UBI: Add fastmap stuff to attach.c
      UBI: Add fastmap support to the WL sub-system
      UBI: Add fastmap core
      UBI: Wire-up fastmap

 MAINTAINERS                 |    6 +
 drivers/mtd/ubi/Kconfig     |   21 +++
 drivers/mtd/ubi/Makefile    |    1 +
 drivers/mtd/ubi/attach.c    |  386 ++++++++++++++++++++++++++++++++----------------
 drivers/mtd/ubi/build.c     |   70 ++++++++-
 drivers/mtd/ubi/eba.c       |  126 ++++++++++++++--
 drivers/mtd/ubi/fastmap.c   | 1537 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/mtd/ubi/ubi-media.h |  137 +++++++++++++++++
 drivers/mtd/ubi/ubi.h       |  118 ++++++++++++++-
 drivers/mtd/ubi/wl.c        |  599 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------
 10 files changed, 2790 insertions(+), 211 deletions(-)
 create mode 100644 drivers/mtd/ubi/fastmap.c