Why nothing matters: The impact of zeroing

Xi Yang*, Stephen M. Blackburn, Daniel Frampton, Jennifer B. Sartor, Kathryn S. Mckinley

*Corresponding author for this work

    Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

    40 Citations (Scopus)

    Abstract

    Memory safety defends against inadvertent and malicious misuse of memory that may compromise program correctness and security. A critical element of memory safety is zero initialization. The direct cost of zero initialization is surprisingly high: up to 12.7%, with average costs ranging from 2.7 to 4.5% on a high performance virtual machine on IA32 architectures. Zero initialization also incurs indirect costs due to its memory bandwidth demands and cache displacement effects. Existing virtual machines either: a) minimize direct costs by zeroing in large blocks, or b) minimize indirect costs by zeroing in the allocation sequence, which reduces cache displacement and bandwidth. This paper evaluates the two widely used zero initialization designs, showing that they make different tradeoffs to achieve very similar performance. Our analysis inspires three better designs: (1) bulk zeroing with cache-bypassing (non-temporal) instructions to reduce the direct and indirect zeroing costs simultaneously, (2) concurrent non-temporal bulk zeroing that exploits parallel hardware to move work off the application's critical path, and (3) adaptive zeroing, which dynamically chooses between (1) and (2) based on available hardware parallelism. The new software strategies offer speedups sometimes greater than the direct overhead, improving total performance by 3% on average. Our findings invite additional optimizations and microarchitectural support. Copyright is held by the author / owner(s).

    Original languageEnglish
    Title of host publicationOOPSLA'11 - Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications
    Pages307-324
    Number of pages18
    DOIs
    Publication statusPublished - 2011
    Event2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA'11 - Portland, OR, United States
    Duration: 22 Oct 201127 Oct 2011

    Publication series

    NameProceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA

    Conference

    Conference2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA'11
    Country/TerritoryUnited States
    CityPortland, OR
    Period22/10/1127/10/11

    Fingerprint

    Dive into the research topics of 'Why nothing matters: The impact of zeroing'. Together they form a unique fingerprint.

    Cite this