|
The ADvanced Systems Laboratory (ADSL)
|
||||||||||||||||
|
Making the Common Case the Only Case with Anticipatory Memory Allocation
Swaminathan Sundararaman,
Yupu Zhang,
Sriram Subramanian,
Andrea C. Arpaci-Dusseau,
Remzi H. Arpaci-Dusseau
Abstract:We present Anticipatory Memory Allocation (AMA), a newmethod to build kernel code that is robust to memoryallocation failures. AMA avoids the usual difficulties in handling allocation failures through a novel combination of static and dynamic techniques. Specifically, a developer, with assistance from AMA static analysis tools, determines how much memory a particular call into a kernel subsystem will need, and then pre-allocates said amount immediately upon entry to the kernel; subsequent allocation requests are serviced from the pre-allocated pool and thus guaranteed never to fail. We describe the static and run-time components of AMA, and then present a thorough evaluation of Linux ext2-mfr, a case study in which we transform the Linux ext2 file system into a memoryfailure robust version of itself. Experiments reveal that ext2-mfr avoids memory-allocation failures successfully while incurring little space or time overhead.
Full Paper:
Postscript,
PDF,
BibTex
|
||||||||||||||||