Implement scatter-gather lists support in UBI and UBIFS


 * Summary: Implement scatter-gather lists support in UBI and UBIFS


 * Proposer: Ezequiel García 

Description
Currently UBI and UBIFS seem to allocate a lot vmalloced LEB-sized buffers on mount time. The reason for this is to "reserve" such memory and prevent the big allocations from failing at a later point.

This heavily affects the memory footprint in systems using UBIFS.

A possible solution is to implement scatter-gather lists support in UBI and UBIFS and replace the big (LEB-sized) vmallocations by smaller allocations.

While this is a big effort and will only benefit UBIFS, it is expected that it will help reduce the memory usage in such systems.

In addition, it has the added benefit of addressing another problem. Some ARM platforms don't support DMA on vmalloc'ed buffers; using scatter-gather lists the allocated will be quite smaller -O(page)-, and it will be possible to allocate them on physically contiguous memory (DMA capable).

These are recurrent issues [1, 2, 3] in the UBI mailing list, and it's UBI maintainer's suggested proposal [4].

Related work
As Linus Walleij pointed out [5] the MMC subsystem already implements something along this lines, and so this work might start by looking at that.

Scope
Unknown.

Contractor Candidates
None yet.

Comments

 * [1] http://lists.infradead.org/pipermail/linux-mtd/2009-August/026817.html
 * [2] http://lists.infradead.org/pipermail/linux-mtd/2012-November/044982.html
 * [3] http://lists.infradead.org/pipermail/linux-mtd/2012-October/044586.html
 * [4] http://lists.infradead.org/pipermail/linux-mtd/2012-November/045140.html
 * [5] http://lists.infradead.org/pipermail/linux-mtd/2012-October/044608.html