MELF: Multivariant Executables for a Heterogeneous World

Publikation: Beitrag in Buch/Bericht/Sammelwerk/KonferenzbandAufsatz in KonferenzbandForschungPeer-Review

Autoren

  • Dominik Töllner
  • Christian Dietrich
  • Illia Ostapyshyn
  • Florian Rommel
  • Daniel Lohmann

Externe Organisationen

  • Technische Universität Hamburg (TUHH)
Forschungs-netzwerk anzeigen

Details

OriginalspracheEnglisch
Titel des SammelwerksProceedings of the 2023 USENIX Annual Technical Conference, ATC 2023
Seiten257-273
Seitenumfang17
ISBN (elektronisch)9781939133359
PublikationsstatusVeröffentlicht - 2023
Veranstaltung2023 USENIX Annual Technical Conference, ATC 2023 - Boston, USA / Vereinigte Staaten
Dauer: 10 Juli 202312 Juli 2023

Abstract

Compilers today provide a plethora of options to optimize and instrument the code for specific processor extensions, safety features and compatibility settings. Application programmers often provide further instrumented variants of their code for similar purposes, controlled again at compile-time by means of preprocessor macros and dead-code elimination. However, the global once-for-all character of compile-time decisions regarding performance-, debugging-, and safety/security-critical features limits their usefulness in heterogeneous execution settings, where available processor features or security requirements may evolve over time or even differ on a per-client level. Our Multivariant ELF (MELF) approach makes it possible to provide multiple per-function compile-time variants within the same binary and flexibly switch between them at run-time, optionally on a per-thread granularity. As MELFs are implemented on binary level (linker, loader), they do not depend on specific language features or compilers and can be easily applied to existing projects. In our case studies with SQLite, memcached, MariaDB and a benchmark for heterogeneous architectures with overlapping ISAs, we show how MELFs can be employed to provide per-client performance isolation of expensive compile-time security or debugging features and adapt to extended instruction sets, when they are actually available.

ASJC Scopus Sachgebiete

Zitieren

MELF: Multivariant Executables for a Heterogeneous World. / Töllner, Dominik; Dietrich, Christian; Ostapyshyn, Illia et al.
Proceedings of the 2023 USENIX Annual Technical Conference, ATC 2023. 2023. S. 257-273.

Publikation: Beitrag in Buch/Bericht/Sammelwerk/KonferenzbandAufsatz in KonferenzbandForschungPeer-Review

Töllner, D, Dietrich, C, Ostapyshyn, I, Rommel, F & Lohmann, D 2023, MELF: Multivariant Executables for a Heterogeneous World. in Proceedings of the 2023 USENIX Annual Technical Conference, ATC 2023. S. 257-273, 2023 USENIX Annual Technical Conference, ATC 2023, Boston, USA / Vereinigte Staaten, 10 Juli 2023. <https://www.usenix.org/conference/atc23/presentation/tollner>
Töllner, D., Dietrich, C., Ostapyshyn, I., Rommel, F., & Lohmann, D. (2023). MELF: Multivariant Executables for a Heterogeneous World. In Proceedings of the 2023 USENIX Annual Technical Conference, ATC 2023 (S. 257-273) https://www.usenix.org/conference/atc23/presentation/tollner
Töllner D, Dietrich C, Ostapyshyn I, Rommel F, Lohmann D. MELF: Multivariant Executables for a Heterogeneous World. in Proceedings of the 2023 USENIX Annual Technical Conference, ATC 2023. 2023. S. 257-273
Töllner, Dominik ; Dietrich, Christian ; Ostapyshyn, Illia et al. / MELF : Multivariant Executables for a Heterogeneous World. Proceedings of the 2023 USENIX Annual Technical Conference, ATC 2023. 2023. S. 257-273
Download
@inproceedings{42db6f246f2e4c02a9e9949e317e8afd,
title = "MELF: Multivariant Executables for a Heterogeneous World",
abstract = "Compilers today provide a plethora of options to optimize and instrument the code for specific processor extensions, safety features and compatibility settings. Application programmers often provide further instrumented variants of their code for similar purposes, controlled again at compile-time by means of preprocessor macros and dead-code elimination. However, the global once-for-all character of compile-time decisions regarding performance-, debugging-, and safety/security-critical features limits their usefulness in heterogeneous execution settings, where available processor features or security requirements may evolve over time or even differ on a per-client level. Our Multivariant ELF (MELF) approach makes it possible to provide multiple per-function compile-time variants within the same binary and flexibly switch between them at run-time, optionally on a per-thread granularity. As MELFs are implemented on binary level (linker, loader), they do not depend on specific language features or compilers and can be easily applied to existing projects. In our case studies with SQLite, memcached, MariaDB and a benchmark for heterogeneous architectures with overlapping ISAs, we show how MELFs can be employed to provide per-client performance isolation of expensive compile-time security or debugging features and adapt to extended instruction sets, when they are actually available.",
author = "Dominik T{\"o}llner and Christian Dietrich and Illia Ostapyshyn and Florian Rommel and Daniel Lohmann",
year = "2023",
language = "English",
pages = "257--273",
booktitle = "Proceedings of the 2023 USENIX Annual Technical Conference, ATC 2023",
note = "2023 USENIX Annual Technical Conference, ATC 2023 ; Conference date: 10-07-2023 Through 12-07-2023",

}

Download

TY - GEN

T1 - MELF

T2 - 2023 USENIX Annual Technical Conference, ATC 2023

AU - Töllner, Dominik

AU - Dietrich, Christian

AU - Ostapyshyn, Illia

AU - Rommel, Florian

AU - Lohmann, Daniel

PY - 2023

Y1 - 2023

N2 - Compilers today provide a plethora of options to optimize and instrument the code for specific processor extensions, safety features and compatibility settings. Application programmers often provide further instrumented variants of their code for similar purposes, controlled again at compile-time by means of preprocessor macros and dead-code elimination. However, the global once-for-all character of compile-time decisions regarding performance-, debugging-, and safety/security-critical features limits their usefulness in heterogeneous execution settings, where available processor features or security requirements may evolve over time or even differ on a per-client level. Our Multivariant ELF (MELF) approach makes it possible to provide multiple per-function compile-time variants within the same binary and flexibly switch between them at run-time, optionally on a per-thread granularity. As MELFs are implemented on binary level (linker, loader), they do not depend on specific language features or compilers and can be easily applied to existing projects. In our case studies with SQLite, memcached, MariaDB and a benchmark for heterogeneous architectures with overlapping ISAs, we show how MELFs can be employed to provide per-client performance isolation of expensive compile-time security or debugging features and adapt to extended instruction sets, when they are actually available.

AB - Compilers today provide a plethora of options to optimize and instrument the code for specific processor extensions, safety features and compatibility settings. Application programmers often provide further instrumented variants of their code for similar purposes, controlled again at compile-time by means of preprocessor macros and dead-code elimination. However, the global once-for-all character of compile-time decisions regarding performance-, debugging-, and safety/security-critical features limits their usefulness in heterogeneous execution settings, where available processor features or security requirements may evolve over time or even differ on a per-client level. Our Multivariant ELF (MELF) approach makes it possible to provide multiple per-function compile-time variants within the same binary and flexibly switch between them at run-time, optionally on a per-thread granularity. As MELFs are implemented on binary level (linker, loader), they do not depend on specific language features or compilers and can be easily applied to existing projects. In our case studies with SQLite, memcached, MariaDB and a benchmark for heterogeneous architectures with overlapping ISAs, we show how MELFs can be employed to provide per-client performance isolation of expensive compile-time security or debugging features and adapt to extended instruction sets, when they are actually available.

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

M3 - Conference contribution

AN - SCOPUS:85180363540

SP - 257

EP - 273

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

Y2 - 10 July 2023 through 12 July 2023

ER -