Implement scatter-gather lists support in UBI and UBIFS

From eLinux.org
Revision as of 19:15, 2 October 2013 by Tim Bird (Talk | contribs) (add proposal)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Summary
Implement scatter-gather lists support in UBI and UBIFS
Proposer
Ezequiel García <ezequiel@vanguardiasur.com.ar>

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.

[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