Spindle: Informed memory access monitoring

Haojie Wang, Jidong Zhai, Xiongchao Tang, Bowen Yu, Xiaosong Ma, Wenguang Chen

Research output: Chapter in Book/Report/Conference proceedingConference contribution

1 Citation (Scopus)

Abstract

Memory monitoring is of critical use in understanding applications and evaluating systems. Due to the dynamic nature in programs' memory accesses, common practice today leaves large amounts of address examination and data recording at runtime, at the cost of substantial performance overhead (and large storage time/space consumption if memory traces are collected). Recognizing the memory access patterns available at compile time and redundancy in runtime checks, we propose a novel memory access monitoring and analysis framework, Spindle. Unlike methods delaying all checks to runtime or performing task-specific optimization at compile time, Spindle performs common static analysis to identify predictable memory access patterns into a compact program structure summary. Custom memory monitoring tools can then be developed on top of Spindle, leveraging the structural information extracted to dramatically reduce the amount of instrumentation that incurs heavy runtime memory address examination or recording. We implement Spindle in the popular LLVM compiler, supporting both single-thread and multi-threaded programs. Our evaluation demonstrated the effectiveness of two Spindle-based tools, performing memory bug detection and trace collection respectively, with a variety of programs. Results show that these tools are able to aggressively prune online memory monitoring processing, fulfilling desired tasks with performance overhead significantly reduced (2.54× on average for memory bug detection and over 200× on average for access tracing, over state-of-the-art solutions).

Original languageEnglish
Title of host publicationProceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018
PublisherUSENIX Association
Pages561-573
Number of pages13
ISBN (Electronic)9781939133021
Publication statusPublished - 1 Jan 2020
Event2018 USENIX Annual Technical Conference, USENIX ATC 2018 - Boston, United States
Duration: 11 Jul 201813 Jul 2018

Publication series

NameProceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018

Conference

Conference2018 USENIX Annual Technical Conference, USENIX ATC 2018
CountryUnited States
CityBoston
Period11/7/1813/7/18

Fingerprint

Data storage equipment
Monitoring
Data recording
Static analysis
Redundancy
Processing

ASJC Scopus subject areas

  • Computer Science(all)

Cite this

Wang, H., Zhai, J., Tang, X., Yu, B., Ma, X., & Chen, W. (2020). Spindle: Informed memory access monitoring. In Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018 (pp. 561-573). (Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018). USENIX Association.

Spindle : Informed memory access monitoring. / Wang, Haojie; Zhai, Jidong; Tang, Xiongchao; Yu, Bowen; Ma, Xiaosong; Chen, Wenguang.

Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018. USENIX Association, 2020. p. 561-573 (Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Wang, H, Zhai, J, Tang, X, Yu, B, Ma, X & Chen, W 2020, Spindle: Informed memory access monitoring. in Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018. Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018, USENIX Association, pp. 561-573, 2018 USENIX Annual Technical Conference, USENIX ATC 2018, Boston, United States, 11/7/18.
Wang H, Zhai J, Tang X, Yu B, Ma X, Chen W. Spindle: Informed memory access monitoring. In Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018. USENIX Association. 2020. p. 561-573. (Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018).
Wang, Haojie ; Zhai, Jidong ; Tang, Xiongchao ; Yu, Bowen ; Ma, Xiaosong ; Chen, Wenguang. / Spindle : Informed memory access monitoring. Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018. USENIX Association, 2020. pp. 561-573 (Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018).
@inproceedings{9406c6371f59494fbd615efb5673ba7d,
title = "Spindle: Informed memory access monitoring",
abstract = "Memory monitoring is of critical use in understanding applications and evaluating systems. Due to the dynamic nature in programs' memory accesses, common practice today leaves large amounts of address examination and data recording at runtime, at the cost of substantial performance overhead (and large storage time/space consumption if memory traces are collected). Recognizing the memory access patterns available at compile time and redundancy in runtime checks, we propose a novel memory access monitoring and analysis framework, Spindle. Unlike methods delaying all checks to runtime or performing task-specific optimization at compile time, Spindle performs common static analysis to identify predictable memory access patterns into a compact program structure summary. Custom memory monitoring tools can then be developed on top of Spindle, leveraging the structural information extracted to dramatically reduce the amount of instrumentation that incurs heavy runtime memory address examination or recording. We implement Spindle in the popular LLVM compiler, supporting both single-thread and multi-threaded programs. Our evaluation demonstrated the effectiveness of two Spindle-based tools, performing memory bug detection and trace collection respectively, with a variety of programs. Results show that these tools are able to aggressively prune online memory monitoring processing, fulfilling desired tasks with performance overhead significantly reduced (2.54× on average for memory bug detection and over 200× on average for access tracing, over state-of-the-art solutions).",
author = "Haojie Wang and Jidong Zhai and Xiongchao Tang and Bowen Yu and Xiaosong Ma and Wenguang Chen",
year = "2020",
month = "1",
day = "1",
language = "English",
series = "Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018",
publisher = "USENIX Association",
pages = "561--573",
booktitle = "Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018",

}

TY - GEN

T1 - Spindle

T2 - Informed memory access monitoring

AU - Wang, Haojie

AU - Zhai, Jidong

AU - Tang, Xiongchao

AU - Yu, Bowen

AU - Ma, Xiaosong

AU - Chen, Wenguang

PY - 2020/1/1

Y1 - 2020/1/1

N2 - Memory monitoring is of critical use in understanding applications and evaluating systems. Due to the dynamic nature in programs' memory accesses, common practice today leaves large amounts of address examination and data recording at runtime, at the cost of substantial performance overhead (and large storage time/space consumption if memory traces are collected). Recognizing the memory access patterns available at compile time and redundancy in runtime checks, we propose a novel memory access monitoring and analysis framework, Spindle. Unlike methods delaying all checks to runtime or performing task-specific optimization at compile time, Spindle performs common static analysis to identify predictable memory access patterns into a compact program structure summary. Custom memory monitoring tools can then be developed on top of Spindle, leveraging the structural information extracted to dramatically reduce the amount of instrumentation that incurs heavy runtime memory address examination or recording. We implement Spindle in the popular LLVM compiler, supporting both single-thread and multi-threaded programs. Our evaluation demonstrated the effectiveness of two Spindle-based tools, performing memory bug detection and trace collection respectively, with a variety of programs. Results show that these tools are able to aggressively prune online memory monitoring processing, fulfilling desired tasks with performance overhead significantly reduced (2.54× on average for memory bug detection and over 200× on average for access tracing, over state-of-the-art solutions).

AB - Memory monitoring is of critical use in understanding applications and evaluating systems. Due to the dynamic nature in programs' memory accesses, common practice today leaves large amounts of address examination and data recording at runtime, at the cost of substantial performance overhead (and large storage time/space consumption if memory traces are collected). Recognizing the memory access patterns available at compile time and redundancy in runtime checks, we propose a novel memory access monitoring and analysis framework, Spindle. Unlike methods delaying all checks to runtime or performing task-specific optimization at compile time, Spindle performs common static analysis to identify predictable memory access patterns into a compact program structure summary. Custom memory monitoring tools can then be developed on top of Spindle, leveraging the structural information extracted to dramatically reduce the amount of instrumentation that incurs heavy runtime memory address examination or recording. We implement Spindle in the popular LLVM compiler, supporting both single-thread and multi-threaded programs. Our evaluation demonstrated the effectiveness of two Spindle-based tools, performing memory bug detection and trace collection respectively, with a variety of programs. Results show that these tools are able to aggressively prune online memory monitoring processing, fulfilling desired tasks with performance overhead significantly reduced (2.54× on average for memory bug detection and over 200× on average for access tracing, over state-of-the-art solutions).

UR - http://www.scopus.com/inward/record.url?scp=85077441031&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=85077441031&partnerID=8YFLogxK

M3 - Conference contribution

AN - SCOPUS:85077441031

T3 - Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018

SP - 561

EP - 573

BT - Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018

PB - USENIX Association

ER -