RISC-V has led the Open Hardware revolution in recent years, with promising applications from edge sensors to HPC facilities. However, the software stack is struggling to keep pace with RISC-V's widespread diffusion, with many libraries still unavailable for this architecture. This thesis describes a full-featured porting of the syscall_intercept library, initially developed for x86_64 by Intel PMEM, to the RV64C ISA. This library provides a low-level interface for hooking Linux system calls in user space by hot patching the machine code of libc in the memory of a process. It constitutes the low-level interface of several HPC file systems in user space, including MadFS, ranked first in the IO 500 2023 competition. The core logic of syscall_intercept is implemented directly in assembly, making it a perfect example for analysing the technical and methodological difficulties of performance-efficient RISC-V porting.

Negli ultimi anni RISC-V ha condotto la rivoluzione Open Hardware attraverso promettenti applicazioni che spaziano da edge sensors alle strutture HPC. Tuttavia lo stack software fatica a tenere il ritmo della diffusione capillare di RISC-V, risultando nell’indisponibilità per quest’architettura di diverse librerie. Questa tesi descrive un porting completo della libreria syscall_intercept, originariamente sviluppata da Intel PMEM per x86_64, all’ISA RV64C. Tale libreria fornisce un’interfaccia di basso livello per intercettare le chiamate di sistema di Linux nello spazio utente tramite l’hotpatching del codice in linguaggio macchina della libc nella memoria di un processo. Costituisce l’interfaccia di basso livello nello spazio utente di numerosi file system HPC, tra cui MadFS, primo classificato nella competizione IO 500 2023. La logica fondamentale di syscall_intercept è implementata direttamente in assembly, rendendola così un ottimo esempio per l’analisi delle difficoltà tecniche e metodologiche di un porting per RISC-V efficiente dal punto di vista prestazionale.

Syscall Intercept: porting per RISC-V

MONTICELLI, OTTAVIO
2023/2024

Abstract

Negli ultimi anni RISC-V ha condotto la rivoluzione Open Hardware attraverso promettenti applicazioni che spaziano da edge sensors alle strutture HPC. Tuttavia lo stack software fatica a tenere il ritmo della diffusione capillare di RISC-V, risultando nell’indisponibilità per quest’architettura di diverse librerie. Questa tesi descrive un porting completo della libreria syscall_intercept, originariamente sviluppata da Intel PMEM per x86_64, all’ISA RV64C. Tale libreria fornisce un’interfaccia di basso livello per intercettare le chiamate di sistema di Linux nello spazio utente tramite l’hotpatching del codice in linguaggio macchina della libc nella memoria di un processo. Costituisce l’interfaccia di basso livello nello spazio utente di numerosi file system HPC, tra cui MadFS, primo classificato nella competizione IO 500 2023. La logica fondamentale di syscall_intercept è implementata direttamente in assembly, rendendola così un ottimo esempio per l’analisi delle difficoltà tecniche e metodologiche di un porting per RISC-V efficiente dal punto di vista prestazionale.
Syscall Intercept: RISC-V porting
RISC-V has led the Open Hardware revolution in recent years, with promising applications from edge sensors to HPC facilities. However, the software stack is struggling to keep pace with RISC-V's widespread diffusion, with many libraries still unavailable for this architecture. This thesis describes a full-featured porting of the syscall_intercept library, initially developed for x86_64 by Intel PMEM, to the RV64C ISA. This library provides a low-level interface for hooking Linux system calls in user space by hot patching the machine code of libc in the memory of a process. It constitutes the low-level interface of several HPC file systems in user space, including MadFS, ranked first in the IO 500 2023 competition. The core logic of syscall_intercept is implemented directly in assembly, making it a perfect example for analysing the technical and methodological difficulties of performance-efficient RISC-V porting.
Autorizzo consultazione esterna dell'elaborato
File in questo prodotto:
File Dimensione Formato  
Syscall_Intercept__RISC_V_porting_Versione_Consegna.pdf

non disponibili

Dimensione 2.13 MB
Formato Adobe PDF
2.13 MB Adobe PDF

I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.14240/7577