Merge pull request #8 from Akilan1999/hugepage

EuroSys paper changes
This commit is contained in:
Akilan Selvacoumar
2025-08-07 21:47:29 +01:00
committed by GitHub
2 changed files with 7 additions and 7 deletions

BIN
docs/EuroSys/.DS_Store vendored

Binary file not shown.

View File

@@ -970,9 +970,9 @@ Benchmarks of the FAT memory allocator and the FAT allocator embedded within Jem
Jemalloc is the default memory allocator for CHERIBSD~\cite{cheribsd}. The objective was to evaluate
the reduction of TLB walks and misses and its impact on the wall clock runtime.
To comprehensively analyse the proposed allocator, the benchmarks~\cite{Benchmark} were categorised into
To comprehensively analyse the implemented allocator, the benchmarks~\cite{Benchmark} were categorised into
two classes which are micro and macro benchmarks. Micro benchmarks comprise smaller
C programs designed to target specific allocator patterns which enables us to evaluate
C programs designed to target specific allocator patterns such as the memory read operations which enables us to evaluate
detailed aspects of the allocators behavior. Macro benchmarks, on the other hand,
encompass larger real-world C programs allowing us to assess the allocators
performance in a more practical and real-world scenarios.
@@ -1004,23 +1004,23 @@ performance in a more practical and real-world scenarios.
\subsection{Experiment setup}
\label{sec:Experiment}
The CHERI Morello~\cite{Morello} board was used to evaluate the proposed memory allocator.
Morello implements the ARM A76 with enhanced server-class memory, featuring a
Morello implements the ARMv8 with enhanced server-class memory, featuring a
quad-core ARM CPU with capability extensions. The L1 and L2 caches were modified
to proliferate the capability bit which ensures compatibility with CHERI's capability-based
memory model. When compiling the C programs for benchmarking, the Benchmark ABI was
memory model. When compiling the C programs for benchmarking, the Benchmark ABI~\cite{BenchmarkABI} was
used as recommended by the CHERI community. This compilation mode was enabled using
the Clang compiler.
The Benchmark ABI~\cite{BenchmarkABI} was specifically designed because the Morello branch predictor
The Benchmark ABI was specifically designed because the Morello branch predictor
was not expanded to predict bounds. Consequently, a capability-based jump introduces
stalls in later PCC-dependent instructions until bounds are established. This issue
stalls in later PCC-dependent(Program Counter Capability) instructions until bounds are established. This issue
is particularly significant during dynamically linked calls and returns between
libraries where bounds are changed to cover the called or returned-to library.
Such stalls can negatively affect performance, making the Benchmark ABI an essential
consideration for this evaluation.
Each C program was executed using two different memory allocators. The first was
the modified C allocator which is imported as a header file. This approach was necessary
the FAT allocator(Section ~\ref{sec:MemoryAllocator}) which is imported as a header file. This approach was necessary
because the Benchmark ABI shared object file exhibited unexpected behavior by
failing to overwrite the C program at runtime with the intended \textit{malloc} functions.
The second allocator was the standard OS memory allocator, which in the case of