[PATCH v4] Retry Large Buffer Allocations

Ben Gardiner bengardiner at nanometrics.ca
Fri Apr 8 10:45:20 EDT 2011


Hi Grant, Artem

Thanks for this fix!

On Thu, Apr 7, 2011 at 1:40 PM, Grant Erickson <marathon96 at gmail.com> wrote:
> When handling user space read or write requests via mtd_{read,write}
> or JFFS2 medium scan requests, exponentially back off on the size of
> the requested kernel transfer buffer until it succeeds or until the
> requested transfer buffer size falls below the page size.
>
> This helps ensure the operation can succeed under low-memory,
> highly-fragmented situations albeit somewhat more slowly.
>
>  v2: Incorporated coding style and comment feedback from Artem.
>  v3: Incorporated more feedback from Artem. Retargeted patch against
>      l2-mtd-2.6.
>  v4: Incorporated feedback from Artem about compilation on 64-bit
>      architectures.
>
> Signed-off-by: Grant Erickson <marathon96 at gmail.com>

I tested this on da850evm by cherry-picking commit
64542ac252d378dc7a1122064821a884e85a9954 from
git://git.infradead.org/users/dedekind/l2-mtd-2.6.git.

I have a memory hole @32M (bootargs: mem=32M at 0xc0000000
mem=64M at 0xc4000000) and I was also (like Bastian) getting "ubiformat:
page allocation failure" errors.  Cherry-picking this commit fixed the
problem for me; I was able to do 3x repeated ubiformats without error.

Tested-by: Ben Gardiner <bengardiner at nanometrics.ca>

Best Regards,
Ben Gardiner

---
Nanometrics Inc.
http://www.nanometrics.ca



More information about the linux-mtd mailing list