An Analysis of Call-Site Patching without Strong Hardware Support for Self-Modifying-Code

Tim Hartley, Foivos Zakkak, Christos Kotselidis, Mikel Luján

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

488 Downloads (Pure)

Abstract

With micro-services continuously gaining popularity and low-power processors making their way into data centers, efficient execution of managed runtime systems on low-power architectures is also gaining interest. Apart from the inherent performance differences between high and low power processors, porting a managed runtime system to a low-power architecture may result in spuriously introducing additional overheads and design trade-offs.

In this work we investigate how the lack of strong hardware support for Self Modifying Code (SMC) in low-power architectures, influences Just-In-Time (JIT) compilation and execution in modern virtual machines. In particular, we examine how low-power architectures, with no or limited hardware support for SMC, impose restrictions on call-site implementations, when the latter need to be patchable by the runtime system. We present four different memory-safe implementations for call-site generation and discuss their advantages and disadvantages in the absence of strong hardware support for SMC. Finally, we evaluate each technique on different workloads using micro-benchmarks and we evaluate the best two techniques on the Dacapo benchmark suite showcasing performance differences up to 15%.
Original languageEnglish
Title of host publicationProceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (MPLR '19)
PublisherAssociation for Computing Machinery
ISBN (Electronic)978-1-4503-6977-0/19/10
DOIs
Publication statusAccepted/In press - 12 Sept 2019

Keywords

  • JIT compilation
  • Self modifying code
  • AArch64
  • RISC

Fingerprint

Dive into the research topics of 'An Analysis of Call-Site Patching without Strong Hardware Support for Self-Modifying-Code'. Together they form a unique fingerprint.

Cite this