added new CHERI ssh for file transfer
This commit is contained in:
BIN
docs/EuroSys/.DS_Store
vendored
BIN
docs/EuroSys/.DS_Store
vendored
Binary file not shown.
71
docs/EuroSys/Paper/changelog.org
Normal file
71
docs/EuroSys/Paper/changelog.org
Normal file
@@ -0,0 +1,71 @@
|
||||
** Changelog
|
||||
|
||||
*** General
|
||||
- [x] Change name (Thinking of using (Fat Address Translation) -> similar to GNU))
|
||||
- [x] Avoid words which create options
|
||||
- [x] Use citation with ```~/cite{foo}```
|
||||
- [x] Clear distinction on Literature review and contribution done
|
||||
- [x] Generalise capitalisation
|
||||
- [x] Instead of "Leverage" -> "use"
|
||||
- [ ] Remove whitespace from figures to be compressed
|
||||
- [ ] Uniform font sizes in figures
|
||||
- [ ] Symmetrical lines on the figure
|
||||
- [x] TLB with acronym only once for the first instance in the paper
|
||||
|
||||
*** Abstract (Re-read required later on)
|
||||
- [x] Reduce Abstract to a single paragraph'
|
||||
- [x] "Mitigate gap, capacity" -> Expand on for instance on how is it measured.
|
||||
- [x] Huge pages moved to the introduction.
|
||||
- [ ] Robs proposed structure (This paper presents <NAME> user-space memory allocator. It uses capability-based addressing to <list properties>.
|
||||
|
||||
*** Introduction
|
||||
- [x] "It becomes possible" expand more with baseline compressed bounds (Relook into this later on).
|
||||
- [x] "This paper makes the following contribution" -. bullet points with marked sections.
|
||||
- [x] Research questions removed.
|
||||
- [x] "This implementation" Specify implementation
|
||||
- [ ] Robs recommended Introduction structure (Expansion of the abstract, Name of the existing system, clearly describe limitation, Introduce memory allocator).
|
||||
|
||||
*** 2.1 Encoding ranges as bounds
|
||||
- [x] Repetition "Tracking of memory ranges using information in pointers" -> remove this
|
||||
- [x] Paraphrase last sentence (To be looked into later on again).
|
||||
|
||||
*** 2.2 128 bit compressed bounds
|
||||
- [x] Cites Jemalloc paragraph.
|
||||
- [x] Last sentence needs rewriting. (Needs re-check)
|
||||
|
||||
*** 2.3 Instrumenting block based allocator
|
||||
- [x] Needs citation "Which increases overhead and adds complexity"
|
||||
- [x] Elaborate on "this method"
|
||||
- [x] "precise" memory management (Elaborate on this and prove which aspects of the other allocator are not precise). (Todo be looked later on).
|
||||
|
||||
*** Memory allocator design
|
||||
- [x] Remove from heading "sample" and ":"
|
||||
- [x] Remove future work paragraph
|
||||
- [x] "unmapped" -> unmap
|
||||
- [x] "Risks of memory leaks with metadata lookups or complex data structures" -> Elaborate on this (Commented until further notice).
|
||||
|
||||
*** Evaluation
|
||||
- [x] Name of the project keeps the sentence shorter.
|
||||
- [x] "Such as" -> Definitive and exhaustive.
|
||||
- [x] Section reference on evaluation expanded.
|
||||
- [x] Remove "Providing a solid foundation for meaningful comparisons"
|
||||
- [x] Decide to use Macro or instead "real world C programs"
|
||||
|
||||
- [x] Experiment section typo heading
|
||||
- [x] Fix Latex benchmarks structure
|
||||
- [x] Change from "Diagram" to "Figure"
|
||||
|
||||
- [x] Result para 2 -> too wordy
|
||||
- [x] "aimed" first use of past tense (Recommendation: avoid)
|
||||
- [x] Rewrite usability (Changed to Analysis)
|
||||
|
||||
*** Related work
|
||||
- [x] Related work lifted up after introduction based on the reflection of the feedback.
|
||||
|
||||
*** Conclusion
|
||||
- [x] Rewrite
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
76
docs/EuroSys/Paper/changelog.org~
Normal file
76
docs/EuroSys/Paper/changelog.org~
Normal file
@@ -0,0 +1,76 @@
|
||||
** Changelog
|
||||
|
||||
*** General
|
||||
- [x] Change name (Thinking of using (Fat Address Translation) -> similar to GNU))
|
||||
- [x] Avoid words which create options
|
||||
- [x] Use citation with ```~/cite{foo}```
|
||||
- [x] Clear distinction on Literature review and contribution done
|
||||
- [x] Generalise capitalisation
|
||||
- [x] Instead of "Leverage" -> "use"
|
||||
- [ ] Remove whitespace from figures to be compressed
|
||||
- [ ] Uniform font sizes in figures
|
||||
- [ ] Symmetrical lines on the figure
|
||||
- [x] TLB with acronym only once for the first instance in the paper
|
||||
|
||||
*** Abstract (Re-read required later on)
|
||||
- [x] Reduce Abstract to a single paragraph'
|
||||
- [x] "Mitigate gap, capacity" -> Expand on for instance on how is it measured.
|
||||
- [x] Huge pages moved to the introduction.
|
||||
- [ ] Robs proposed structure (This paper presents <NAME> user-space memory allocator. It uses capability-based addressing to <list properties>.
|
||||
|
||||
*** Introduction
|
||||
- [x] "It becomes possible" expand more with baseline compressed bounds (Relook into this later on).
|
||||
- [x] "This paper makes the following contribution" -. bullet points with marked sections.
|
||||
- [x] Research questions removed.
|
||||
- [x] "This implementation" Specify implementation
|
||||
- [ ] Robs recommended Introduction structure (Expansion of the abstract, Name of the existing system, clearly describe limitation, Introduce memory allocator).
|
||||
|
||||
*** 2.1 Encoding ranges as bounds
|
||||
- [x] Repetition "Tracking of memory ranges using information in pointers" -> remove this
|
||||
- [x] Paraphrase last sentence (To be looked into later on again).
|
||||
|
||||
*** 2.2 128 bit compressed bounds
|
||||
- [x] Cites Jemalloc paragraph.
|
||||
- [x] Last sentence needs rewriting. (Needs re-check)
|
||||
|
||||
*** 2.3 Instrumenting block based allocator
|
||||
- [x] Needs citation "Which increases overhead and adds complexity"
|
||||
- [x] Elaborate on "this method"
|
||||
- [x] "precise" memory management (Elaborate on this and prove which aspects of the other allocator are not precise). (Todo be looked later on).
|
||||
|
||||
*** Memory allocator design
|
||||
- [x] Remove from heading "sample" and ":"
|
||||
- [x] Remove future work paragraph
|
||||
- [x] "unmapped" -> unmap
|
||||
- [x] "Risks of memory leaks with metadata lookups or complex data structures" -> Elaborate on this (Commented until further notice).
|
||||
|
||||
*** Evaluation
|
||||
- [x] Name of the project keeps the sentence shorter.
|
||||
- [x] "Such as" -> Definitive and exhaustive.
|
||||
- [x] Section reference on evaluation expanded.
|
||||
- [x] Remove "Providing a solid foundation for meaningful comparisons"
|
||||
- [x] Decide to use Macro or instead "real world C programs"
|
||||
|
||||
- [x] Experiment section typo heading
|
||||
- [x] Fix Latex benchmarks structure
|
||||
- [x] Change from "Diagram" to "Figure"
|
||||
|
||||
- [x] Result para 2 -> too wordy
|
||||
- [x] "aimed" first use of past tense (Recommendation: avoid)
|
||||
- [x] Rewrite usability (Changed to Analysis)
|
||||
|
||||
*** Related work
|
||||
- [x] Related work lifted up after introduction based on the reflection of the feedback.
|
||||
|
||||
*** Conclusion
|
||||
- [x] Rewrite
|
||||
|
||||
*** Experiment work
|
||||
- [x] 3 line switch in as mmap in Jemalloc for with sample C program.
|
||||
- [x] Ported Libc ```shm_large_page``` to a kernel module to ensure multiple large scale allocators can use our implementation.
|
||||
- [ ] Testing the Ported Libc kernel module (Micro benchmark for TLB stress test)
|
||||
- [ ] Port this over to Jemalloc
|
||||
|
||||
|
||||
|
||||
|
||||
BIN
docs/EuroSys/Paper/changelog.pdf
Normal file
BIN
docs/EuroSys/Paper/changelog.pdf
Normal file
Binary file not shown.
117
docs/EuroSys/Paper/changelog.tex
Normal file
117
docs/EuroSys/Paper/changelog.tex
Normal file
@@ -0,0 +1,117 @@
|
||||
% Created 2025-04-12 Sat 12:37
|
||||
% Intended LaTeX compiler: pdflatex
|
||||
\documentclass[11pt]{article}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{longtable}
|
||||
\usepackage{wrapfig}
|
||||
\usepackage{rotating}
|
||||
\usepackage[normalem]{ulem}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amssymb}
|
||||
\usepackage{capt-of}
|
||||
\usepackage{hyperref}
|
||||
\author{Akilan}
|
||||
\date{\today}
|
||||
\title{}
|
||||
\hypersetup{
|
||||
pdfauthor={Akilan},
|
||||
pdftitle={},
|
||||
pdfkeywords={},
|
||||
pdfsubject={},
|
||||
pdfcreator={Emacs 30.1 (Org mode 9.7.11)},
|
||||
pdflang={English}}
|
||||
\begin{document}
|
||||
|
||||
\tableofcontents
|
||||
|
||||
\section{Changelog}
|
||||
\label{sec:orgccfe838}
|
||||
|
||||
\subsection{General}
|
||||
\label{sec:org1309166}
|
||||
\begin{itemize}
|
||||
\item Change name (Thinking of using (Fat Address Translation) -> similar to GNU))
|
||||
\item Avoid words which create options
|
||||
\item Use citation with ```\textasciitilde{}/cite\{foo\}```
|
||||
\item Clear distinction on Literature review and contribution done
|
||||
\item Generalise capitalisation
|
||||
\item Instead of "Leverage" -> "use"
|
||||
\item[{$\square$}] Remove whitespace from figures to be compressed
|
||||
\item[{$\square$}] Uniform font sizes in figures
|
||||
\item[{$\square$}] Symmetrical lines on the figure
|
||||
\item TLB with acronym only once for the first instance in the paper
|
||||
\end{itemize}
|
||||
\subsection{Abstract (Re-read required later on)}
|
||||
\label{sec:org8685c9f}
|
||||
\begin{itemize}
|
||||
\item Reduce Abstract to a single paragraph'
|
||||
\item "Mitigate gap, capacity" -> Expand on for instance on how is it measured.
|
||||
\item Huge pages moved to the introduction.
|
||||
\item[{$\square$}] Robs proposed structure (This paper presents <NAME> user-space memory allocator. It uses capability-based addressing to <list properties>.
|
||||
\end{itemize}
|
||||
\subsection{Introduction}
|
||||
\label{sec:org53e6522}
|
||||
\begin{itemize}
|
||||
\item "It becomes possible" expand more with baseline compressed bounds (Relook into this later on).
|
||||
\item "This paper makes the following contribution" -. bullet points with marked sections.
|
||||
\item Research questions removed.
|
||||
\item "This implementation" Specify implementation
|
||||
\item[{$\square$}] Robs recommended Introduction structure (Expansion of the abstract, Name of the existing system, clearly describe limitation, Introduce memory allocator).
|
||||
\end{itemize}
|
||||
\subsection{2.1 Encoding ranges as bounds}
|
||||
\label{sec:org87f02f1}
|
||||
\begin{itemize}
|
||||
\item Repetition "Tracking of memory ranges using information in pointers" -> remove this
|
||||
\item Paraphrase last sentence (To be looked into later on again).
|
||||
\end{itemize}
|
||||
\subsection{2.2 128 bit compressed bounds}
|
||||
\label{sec:org767dd8c}
|
||||
\begin{itemize}
|
||||
\item Cites Jemalloc paragraph.
|
||||
\item Last sentence needs rewriting. (Needs re-check)
|
||||
\end{itemize}
|
||||
\subsection{2.3 Instrumenting block based allocator}
|
||||
\label{sec:org727e319}
|
||||
\begin{itemize}
|
||||
\item Needs citation "Which increases overhead and adds complexity"
|
||||
\item Elaborate on "this method"
|
||||
\item "precise" memory management (Elaborate on this and prove which aspects of the other allocator are not precise). (Todo be looked later on).
|
||||
\end{itemize}
|
||||
\subsection{Memory allocator design}
|
||||
\label{sec:org0a7d2f0}
|
||||
\begin{itemize}
|
||||
\item Remove from heading "sample" and ":"
|
||||
\item Remove future work paragraph
|
||||
\item "unmapped" -> unmap
|
||||
\item "Risks of memory leaks with metadata lookups or complex data structures" -> Elaborate on this (Commented until further notice).
|
||||
\end{itemize}
|
||||
\subsection{Evaluation}
|
||||
\label{sec:orgfee80dd}
|
||||
\begin{itemize}
|
||||
\item Name of the project keeps the sentence shorter.
|
||||
\item "Such as" -> Definitive and exhaustive.
|
||||
\item Section reference on evaluation expanded.
|
||||
\item Remove "Providing a solid foundation for meaningful comparisons"
|
||||
\item Decide to use Macro or instead "real world C programs"
|
||||
|
||||
\item Experiment section typo heading
|
||||
\item Fix Latex benchmarks structure
|
||||
\item Change from "Diagram" to "Figure"
|
||||
|
||||
\item Result para 2 -> too wordy
|
||||
\item "aimed" first use of past tense (Recommendation: avoid)
|
||||
\item Rewrite usability (Changed to Analysis)
|
||||
\end{itemize}
|
||||
\subsection{Related work}
|
||||
\label{sec:orgeb8e639}
|
||||
\begin{itemize}
|
||||
\item Related work lifted up after introduction based on the reflection of the feedback.
|
||||
\end{itemize}
|
||||
\subsection{Conclusion}
|
||||
\label{sec:org1fae2ee}
|
||||
\begin{itemize}
|
||||
\item Rewrite
|
||||
\end{itemize}
|
||||
\end{document}
|
||||
@@ -37,8 +37,8 @@
|
||||
\newlabel{fig:RangeOfMemory}{{2}{3}{Range of memory}{figure.caption.4}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}128 bit compressed bounds}{3}{subsection.3.2}\protected@file@percent }
|
||||
\newlabel{sec:128bitCompressedBounds}{{3.2}{3}{128 bit compressed bounds}{subsection.3.2}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Fat-pointer Address Translations using huge pages}}{4}{figure.caption.5}\protected@file@percent }
|
||||
\newlabel{fig:HugePages}{{3}{4}{Fat-pointer Address Translations using huge pages}{figure.caption.5}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces FAT Address Translations using huge pages}}{4}{figure.caption.5}\protected@file@percent }
|
||||
\newlabel{fig:HugePages}{{3}{4}{FAT Address Translations using huge pages}{figure.caption.5}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Instrumenting Block-Based Allocators with Physically Contiguous Memory}{4}{subsection.3.3}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {4}Memory allocator design}{4}{section.4}\protected@file@percent }
|
||||
\newlabel{sec:MemoryAllocator}{{4}{4}{Memory allocator design}{section.4}{}}
|
||||
@@ -84,6 +84,7 @@
|
||||
\bibcite{DirectSegment}{{7}{}{{}}{{}}}
|
||||
\bibcite{karakostas_redundant_2015}{{8}{}{{}}{{}}}
|
||||
\bibcite{chen_flexpointer_2023}{{9}{}{{}}{{}}}
|
||||
\bibcite{jemalloc}{{10}{}{{}}{{}}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Analysis}{8}{subsection.5.4}\protected@file@percent }
|
||||
\newlabel{sec:Analysis}{{5.4}{8}{Analysis}{subsection.5.4}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6}Future work}{8}{section.6}\protected@file@percent }
|
||||
@@ -91,7 +92,6 @@
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Hardware Modifications:}{8}{subsection.6.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {7}Conclusion}{8}{section.7}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{References}{8}{section*.10}\protected@file@percent }
|
||||
\bibcite{jemalloc}{{10}{}{{}}{{}}}
|
||||
\bibcite{cheribsd}{{11}{}{{}}{{}}}
|
||||
\bibcite{Morello}{{12}{}{{}}{{}}}
|
||||
\bibcite{BenchmarkABI}{{13}{}{{}}{{}}}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Fdb version 4
|
||||
["bibtex paper"] 1744390568.64615 "paper.aux" "paper.bbl" "paper" 1744390570.25362 0
|
||||
["bibtex paper"] 1744455340.75803 "paper.aux" "paper.bbl" "paper" 1744456830.74161 0
|
||||
"./paperReferences.bib" 1744390239.54673 46323 d7b94a445857170fc1233321d0322eaa ""
|
||||
"/usr/local/texlive/2025/texmf-dist/bibtex/bst/base/unsrt.bst" 1292289607 18030 1376b4b231b50c66211e47e42eda2875 ""
|
||||
"paper.aux" 1744390569.9295 7959 ac3c307910c71eb8d23b97795748826d "pdflatex"
|
||||
"paper.aux" 1744456830.4036 7943 3a71d8669c9ed74685c0a88ee54b183b "pdflatex"
|
||||
(generated)
|
||||
"paper.bbl"
|
||||
"paper.blg"
|
||||
(rewritten before read)
|
||||
["pdflatex"] 1744390568.72948 "paper.tex" "paper.pdf" "paper" 1744390570.25376 0
|
||||
["pdflatex"] 1744456829.19242 "paper.tex" "paper.pdf" "paper" 1744456830.74178 0
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc" 1558214095 7693 0f2dce6d313c82989ec3a67fc24df2a0 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_25tcsq.enc" 1490131464 2921 8ca0eb0831f9bc5da080d3697cfe67bf ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc" 1490131464 2933 9ad527ce78d7c5fa0a642dead095f172 ""
|
||||
@@ -219,10 +219,10 @@
|
||||
"diagram/TLBAccess.drawio.png" 1744196148.80543 77522 75367f218335fe386db852966a892e9b ""
|
||||
"diagram/bargraph.png" 1744196148.80607 74263 65509d21744edc6c9ca02b8c67d664fb ""
|
||||
"diagram/kmeans.png" 1744196148.80901 94217 5d14308c169ff296bf499805b9823aa6 ""
|
||||
"paper.aux" 1744390569.9295 7959 ac3c307910c71eb8d23b97795748826d "pdflatex"
|
||||
"paper.bbl" 1744390568.7256 3824 3a7d4db0e425f84ef7bb98164f0eac8f "bibtex paper"
|
||||
"paper.out" 1744390569.93032 3686 15f71b74083c4eefc68ea70789a0645a "pdflatex"
|
||||
"paper.tex" 1744390408.3819 80741 a3601392619340c3fa4fcbc30ca1b51c ""
|
||||
"paper.aux" 1744456830.4036 7943 3a71d8669c9ed74685c0a88ee54b183b "pdflatex"
|
||||
"paper.bbl" 1744455340.84361 3824 3a7d4db0e425f84ef7bb98164f0eac8f "bibtex paper"
|
||||
"paper.out" 1744456830.40439 3686 15f71b74083c4eefc68ea70789a0645a "pdflatex"
|
||||
"paper.tex" 1744455674.22027 80592 8505b39cbc5a5d440ba01cdea5712579 ""
|
||||
(generated)
|
||||
"paper.aux"
|
||||
"paper.log"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 11 APR 2025 17:56
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 12 APR 2025 12:20
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
@@ -1347,6 +1347,12 @@ LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
|
||||
[4.4{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_ncsllp.e
|
||||
nc}{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_oexx6f.en
|
||||
c} <./diagram/TLBAccess.drawio.png>]
|
||||
Overfull \hbox (2.40372pt too wide) in paragraph at lines 719--723
|
||||
\T1/LinuxLibertineT-TLF/m/n/9 (-20) loc [[]], Je-mal-loc is the de-fault mem-or
|
||||
y al-lo-ca-tor for CHERIBSD [[]],
|
||||
[]
|
||||
|
||||
|
||||
|
||||
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/it' will be
|
||||
(Font) scaled to size 9.0pt on input line 833.
|
||||
@@ -1454,13 +1460,13 @@ Package rerunfilecheck Info: File `paper.out' has not changed.
|
||||
(rerunfilecheck) Checksum: 15F71B74083C4EEFC68EA70789A0645A;3686.
|
||||
)
|
||||
Here is how much of TeX's memory you used:
|
||||
24024 strings out of 473190
|
||||
393754 string characters out of 5715801
|
||||
965870 words of memory out of 5000000
|
||||
24021 strings out of 473190
|
||||
393679 string characters out of 5715801
|
||||
965554 words of memory out of 5000000
|
||||
46198 multiletter control sequences out of 15000+600000
|
||||
768597 words of font info for 442 fonts, out of 8000000 for 9000
|
||||
768332 words of font info for 440 fonts, out of 8000000 for 9000
|
||||
1302 hyphenation exceptions out of 8191
|
||||
90i,16n,131p,1002b,804s stack positions out of 10000i,1000n,20000p,200000b,200000s
|
||||
90i,16n,131p,1002b,808s stack positions out of 10000i,1000n,20000p,200000b,200000s
|
||||
</usr/local/texlive/2025/texmf-dist/fonts/type1/public/inconsolata/Inconsolat
|
||||
a-zi4r.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/newtx/Liberti
|
||||
neMathMI.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/L
|
||||
@@ -1472,7 +1478,7 @@ lic/libertine/LinLibertineTB.pfb></usr/local/texlive/2025/texmf-dist/fonts/type
|
||||
1/public/libertine/LinLibertineTI.pfb></usr/local/texlive/2025/texmf-dist/fonts
|
||||
/type1/public/newtx/NewTXMI.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1
|
||||
/public/newtx/txsys.pfb>
|
||||
Output written on paper.pdf (9 pages, 714018 bytes).
|
||||
Output written on paper.pdf (9 pages, 713986 bytes).
|
||||
PDF statistics:
|
||||
310 PDF objects out of 1000 (max. 8388607)
|
||||
260 compressed objects within 3 object streams
|
||||
|
||||
Binary file not shown.
@@ -332,7 +332,7 @@ huge pages~\cite{panwar_hawkeye_2019}.
|
||||
|
||||
Huge pages, also known as large pages, allow for the allocation of memory in significantly larger chunks
|
||||
compared to traditional small pages. By reducing the number of TLB entries needed to access a given amount
|
||||
of memory, Huge pages offer a potential avenue for optimising TLB utilisation by reducing the number
|
||||
of memory, huge pages offer a potential avenue for optimising TLB utilisation by reducing the number
|
||||
of entries needed to map large memory regions. This not only decreases the frequency of
|
||||
TLB misses but also lowers the overhead associated with address translation. By minimising
|
||||
these bottlenecks, huge pages can improve system performance in aspects such as speeding
|
||||
@@ -348,7 +348,7 @@ entries required to map extensive memory regions, thereby decreasing TLB misses
|
||||
Furthermore, it accelerates memory-intensive tasks by reducing the overhead associated with managing non-contiguous
|
||||
memory allocations. The contributions for the following paper are as follows:
|
||||
\begin{itemize}
|
||||
\item \textbf{Fat Addresses Translations}: Introduces fat-pointers that include memory bounds, allowing
|
||||
\item \textbf{FAT Addresses Translations}: Introduces FAT that include memory bounds, allowing
|
||||
efficient tracking and management of physically contiguous memory regions (section ~\ref{sec:FatPointerTranslations}).
|
||||
|
||||
\item \textbf{CHERI’s Capability-based Optimization}: Demonstrates how CHERI's architecture can be
|
||||
@@ -495,7 +495,7 @@ in this implementation is the use of range addresses with CHERI CC~\cite{woodruf
|
||||
Figure \ref{fig:HighOverviewArchitecture} illustrates a comparison between standard memory allocation (malloc()) and a proposed FAT method. The standard approach involves a C program interacting with a custom allocator, utilizing 48-bit
|
||||
free virtual addresses and a TLB walk (L1, L2 and L3 cache) to achieve non-contiguous allocation in physical memory.
|
||||
This typically results in more TLB entries and increased TLB misses increasing the reasoning to have more TLB walks.
|
||||
In contrast, the Fat-pointer Address Translations method employs a custom allocator leveraging
|
||||
In contrast, the FAT Address Translations method employs a custom allocator leveraging
|
||||
physically contiguous memory by using CHERI to encode
|
||||
bounds within the pointers and as show in the figure \ref{fig:HighOverviewArchitecture} there is almost no reliance on walking the TLB hierarchy.
|
||||
|
||||
@@ -533,7 +533,7 @@ Figure \ref{fig:RangeOfMemory} illustrates a straightforward use-case in which t
|
||||
large contiguous memory area, or huge page. Within this huge page, the orange and blue lines indicate
|
||||
two separate memory allocations equivalent to invoking malloc twice to allocate memory in distinct regions.
|
||||
This scenario simulates a block-based memory allocator operating within the confines of the huge page.
|
||||
The allocations use the bounds encoded in the FAT-pointer, ensuring tracking of the allocated memory regions.
|
||||
The allocations use the bounds encoded in the FAT, ensuring tracking of the allocated memory regions.
|
||||
By using the CHERI bounds, this method maintains the contiguity of the allocated blocks within the huge page.
|
||||
|
||||
\subsection{128 bit compressed bounds}
|
||||
@@ -588,7 +588,7 @@ malloc. Offering a more flexible alternative than fixed-size TLB entries.
|
||||
\subsection{Instrumenting Block-Based Allocators with Physically Contiguous Memory}
|
||||
\begin{figure}[h]
|
||||
\includegraphics[width=0.4\textwidth]{diagram/TLBAccess.drawio.png}
|
||||
\caption{Fat-pointer Address Translations using huge pages}
|
||||
\caption{FAT Address Translations using huge pages}
|
||||
\label{fig:HugePages}
|
||||
\end{figure}
|
||||
To build up based on Section ~\ref{sec:RangeMemory} and ~\ref{sec:128bitCompressedBounds}.
|
||||
@@ -628,7 +628,7 @@ on physically contigous memory.
|
||||
\section{Memory allocator design}
|
||||
\label{sec:MemoryAllocator}
|
||||
This section presents a straightforward memory allocator designed and implemented based on the
|
||||
principles outlined FAT ~\ref{sec:FatPointerTranslations}. The allocator consists of three core functions: InitAlloc,
|
||||
principles outlined FAT (section ~\ref{sec:FatPointerTranslations}). The allocator consists of three core functions: InitAlloc,
|
||||
malloc, and free. The InitAlloc function initializes the memory pool, setting up the necessary
|
||||
data structures and metadata required for efficient memory management. The malloc function is
|
||||
responsible for allocating a contiguous block of memory of a specified size, while the free
|
||||
@@ -656,7 +656,7 @@ function deallocates the memory, returning it to the pool for future use.
|
||||
\end{algorithm}
|
||||
|
||||
When the malloc function (Algorithm \ref{alg:malloc}) is invoked, the algorithm employs an eager allocation strategy for physical memory.
|
||||
This is achieved through the use of the SetBounds mechanism, which constructs a FAT-pointer specialized
|
||||
This is achieved through the use of the SetBounds mechanism, which constructs a FAT specialized
|
||||
pointer that encodes both the start and end addresses of the allocated memory region within the pointer
|
||||
itself. The start and end addresses correspond to the size of the memory block requested by malloc. This
|
||||
approach introduces a method of memory tracking, where the bounds of the allocated region are
|
||||
@@ -665,7 +665,7 @@ explicitly encoded in the address, enabling efficient monitoring and management
|
||||
Furthermore, this design uses shared huge page TLB entries to map
|
||||
and track memory addresses. By encoding bounds directly into the address, the algorithm ensures that memory
|
||||
accesses remain within the allocated region, thereby reducing the risk of out-of-bounds
|
||||
errors. This use of FAT-pointers and shared TLB entries not only aligns with the principles of
|
||||
errors. This use of FAT and shared TLB entries not only aligns with the principles of
|
||||
efficient memory management but also demonstrates a practical usecase of huge pages in CHERI.
|
||||
|
||||
\begin{algorithm}
|
||||
@@ -679,9 +679,9 @@ efficient memory management but also demonstrates a practical usecase of huge pa
|
||||
\end{algorithmic}
|
||||
\end{algorithm}
|
||||
|
||||
The memory deallocation (Algorithm \ref{alg:free}) mechanism in the proposed allocator is facilitated by the FAT-pointer structure
|
||||
The memory deallocation (Algorithm \ref{alg:free}) mechanism in the proposed allocator is facilitated by the FAT structure
|
||||
introduced in the malloc algorithm. When the free function is invoked, it uses the metadata
|
||||
embedded within the FAT-pointer to determine the range and size of the allocated memory region.
|
||||
embedded within the FAT to determine the range and size of the allocated memory region.
|
||||
Specifically, the start and end addresses encoded in FAT to provide the necessary information
|
||||
to identify the exact memory block to be deallocated. This allows the allocator to unmap
|
||||
the corresponding memory region from the address space.
|
||||
@@ -1011,7 +1011,7 @@ to minimize fragmentation.
|
||||
Comprehensive benchmarking demonstrates that the allocator reduces TLB misses by up to 90\%,
|
||||
leading to substantial performance gains in memory-intensive workloads, though the improvements are less pronounced
|
||||
for larger, computation-heavy applications. These results highlight the allocator's potential to advance memory management
|
||||
by combining enhanced security and performance through CHERI's capability-based model with the use of huge pages.
|
||||
by repurposing CHERI's capability-based model with the use of huge pages.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,5 +2,5 @@ files=`find . -newermt "-3600 secs" | sed 's|^./||'`
|
||||
|
||||
for file in $files
|
||||
do
|
||||
scp -P 35585 "$file" "akilan@217.76.63.222:/home/akilan/Alloc-Test/CHERI-Allocator/$file"
|
||||
scp -P 45161 "$file" "akilan@217.76.63.222:/home/akilan/Alloc-Test/CHERI-Allocator/$file"
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user