changes to send to the supervisory team for a review

This commit is contained in:
2025-04-21 10:37:11 +01:00
parent ab354efb68
commit b4be6facbc
9 changed files with 179 additions and 88 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -38,17 +38,19 @@
\newlabel{sec:RangeMemory}{{3.1}{3}{Encoding Ranges as Bounds to the Pointer}{subsection.3.1}{}} \newlabel{sec:RangeMemory}{{3.1}{3}{Encoding Ranges as Bounds to the Pointer}{subsection.3.1}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Range of memory}}{3}{figure.caption.4}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Range of memory}}{3}{figure.caption.4}\protected@file@percent }
\newlabel{fig:RangeOfMemory}{{2}{3}{Range of memory}{figure.caption.4}{}} \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 } \@writefile{toc}{\contentsline {section}{\numberline {4}128 bit compressed bounds}{3}{section.4}\protected@file@percent }
\newlabel{sec:128bitCompressedBounds}{{3.2}{3}{128 bit compressed bounds}{subsection.3.2}{}} \newlabel{sec:128bitCompressedBounds}{{4}{3}{128 bit compressed bounds}{section.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Instrumenting Block-Based Allocators with Physically Contiguous Memory}{4}{subsection.3.3}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces FAT Address Translations using huge pages}}{4}{figure.caption.5}\protected@file@percent } \@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}{}} \newlabel{fig:HugePages}{{3}{4}{FAT Address Translations using huge pages}{figure.caption.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4}Memory allocator design}{4}{section.4}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Instrumenting Block-Based Allocators with Physically Contiguous Memory}{4}{subsection.4.1}\protected@file@percent }
\newlabel{sec:MemoryAllocator}{{4}{4}{Memory allocator design}{section.4}{}} \@writefile{toc}{\contentsline {section}{\numberline {5}Memory allocator design}{4}{section.5}\protected@file@percent }
\newlabel{sec:MemoryAllocator}{{5}{4}{Memory allocator design}{section.5}{}}
\@writefile{loa}{\contentsline {algorithm}{\numberline {1}{\ignorespaces Malloc implementation}}{4}{algorithm.1}\protected@file@percent } \@writefile{loa}{\contentsline {algorithm}{\numberline {1}{\ignorespaces Malloc implementation}}{4}{algorithm.1}\protected@file@percent }
\newlabel{alg:malloc}{{1}{4}{Malloc implementation}{algorithm.1}{}} \newlabel{alg:malloc}{{1}{4}{Malloc implementation}{algorithm.1}{}}
\@writefile{loa}{\contentsline {algorithm}{\numberline {2}{\ignorespaces Free implementation}}{4}{algorithm.2}\protected@file@percent } \@writefile{loa}{\contentsline {algorithm}{\numberline {2}{\ignorespaces Free implementation}}{4}{algorithm.2}\protected@file@percent }
\newlabel{alg:free}{{2}{4}{Free implementation}{algorithm.2}{}} \newlabel{alg:free}{{2}{4}{Free implementation}{algorithm.2}{}}
\@writefile{loa}{\contentsline {algorithm}{\numberline {3}{\ignorespaces Init alloc function to create a initial 1 GB huge page}}{4}{algorithm.3}\protected@file@percent }
\newlabel{alg:initAlloc}{{3}{4}{Init alloc function to create a initial 1 GB huge page}{algorithm.3}{}}
\citation{jemalloc} \citation{jemalloc}
\citation{cheribsd} \citation{cheribsd}
\citation{Morello} \citation{Morello}
@@ -57,25 +59,25 @@
\citation{Benchmark} \citation{Benchmark}
\citation{singh1993} \citation{singh1993}
\citation{holt1995} \citation{holt1995}
\@writefile{loa}{\contentsline {algorithm}{\numberline {3}{\ignorespaces Init alloc function to create a initial 1 GB huge page}}{5}{algorithm.3}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {6}Evaluation}{5}{section.6}\protected@file@percent }
\newlabel{alg:initAlloc}{{3}{5}{Init alloc function to create a initial 1 GB huge page}{algorithm.3}{}} \newlabel{sec:Evaluation}{{6}{5}{Evaluation}{section.6}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5}Evaluation}{5}{section.5}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Experiment setup}{5}{subsection.6.1}\protected@file@percent }
\newlabel{sec:Evaluation}{{5}{5}{Evaluation}{section.5}{}} \newlabel{sec:Experiment}{{6.1}{5}{Experiment setup}{subsection.6.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Experiment setup}{5}{subsection.5.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Benchmarks}{5}{subsection.6.2}\protected@file@percent }
\newlabel{sec:Experiment}{{5.1}{5}{Experiment setup}{subsection.5.1}{}} \newlabel{sec:Micro}{{6.2.1}{5}{Micro benchmark}{subsubsection.6.2.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Benchmarks}{5}{subsection.5.2}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.1}Micro benchmark}{5}{subsubsection.6.2.1}\protected@file@percent }
\newlabel{sec:Micro}{{5.2.1}{5}{Micro benchmark}{subsubsection.5.2.1}{}} \newlabel{sec:Macro}{{6.2.2}{5}{Macro benchmark}{subsubsection.6.2.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.1}Micro benchmark}{5}{subsubsection.5.2.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.2}Macro benchmark}{5}{subsubsection.6.2.2}\protected@file@percent }
\newlabel{sec:Macro}{{5.2.2}{5}{Macro benchmark}{subsubsection.5.2.2}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.3}Results}{5}{subsection.6.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.2}Macro benchmark}{5}{subsubsection.5.2.2}\protected@file@percent } \newlabel{sec:Results}{{6.3}{5}{Results}{subsection.6.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Results}{6}{subsection.5.3}\protected@file@percent }
\newlabel{sec:Results}{{5.3}{6}{Results}{subsection.5.3}{}}
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces ARM performance counters}}{6}{table.caption.6}\protected@file@percent } \@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces ARM performance counters}}{6}{table.caption.6}\protected@file@percent }
\newlabel{tab:org246a883}{{1}{6}{ARM performance counters}{table.caption.6}{}} \newlabel{tab:org246a883}{{1}{6}{ARM performance counters}{table.caption.6}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Percentage difference between the modified memory allocator against the default system memory allocator}}{7}{figure.caption.7}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Percentage difference between the modified memory allocator against the default system memory allocator}}{7}{figure.caption.7}\protected@file@percent }
\newlabel{fig:bargraph}{{4}{7}{Percentage difference between the modified memory allocator against the default system memory allocator}{figure.caption.7}{}} \newlabel{fig:bargraph}{{4}{7}{Percentage difference between the modified memory allocator against the default system memory allocator}{figure.caption.7}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Kmeans COZ benchmark executed against various cluster sizes}}{7}{figure.caption.8}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Kmeans COZ benchmark executed against various cluster sizes}}{7}{figure.caption.8}\protected@file@percent }
\newlabel{fig:org8683315}{{5}{7}{Kmeans COZ benchmark executed against various cluster sizes}{figure.caption.8}{}} \newlabel{fig:org8683315}{{5}{7}{Kmeans COZ benchmark executed against various cluster sizes}{figure.caption.8}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Analysis}{7}{subsection.6.4}\protected@file@percent }
\newlabel{sec:Analysis}{{6.4}{7}{Analysis}{subsection.6.4}{}}
\bibstyle{unsrt} \bibstyle{unsrt}
\bibdata{paperReferences} \bibdata{paperReferences}
\bibcite{mittal_survey_2017}{{1}{}{{}}{{}}} \bibcite{mittal_survey_2017}{{1}{}{{}}{{}}}
@@ -104,9 +106,7 @@
\newlabel{tocindent4}{0pt} \newlabel{tocindent4}{0pt}
\newlabel{tocindent5}{0pt} \newlabel{tocindent5}{0pt}
\providecommand\NAT@force@numbers{}\NAT@force@numbers \providecommand\NAT@force@numbers{}\NAT@force@numbers
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Analysis}{8}{subsection.5.4}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {7}Conclusion}{8}{section.7}\protected@file@percent }
\newlabel{sec:Analysis}{{5.4}{8}{Analysis}{subsection.5.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {6}Conclusion}{8}{section.6}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{References}{8}{section*.10}\protected@file@percent } \@writefile{toc}{\contentsline {section}{References}{8}{section*.10}\protected@file@percent }
\newlabel{TotPages}{{8}{8}{}{page.8}{}} \newlabel{TotPages}{{8}{8}{}{page.8}{}}
\gdef \@abspage@last{8} \gdef \@abspage@last{8}

View File

@@ -1,13 +1,13 @@
# Fdb version 4 # Fdb version 4
["bibtex paper"] 1745224532.08591 "paper.aux" "paper.bbl" "paper" 1745224533.70736 0 ["bibtex paper"] 1745226088.13548 "paper.aux" "paper.bbl" "paper" 1745226887.34445 0
"./paperReferences.bib" 1745154876.64218 46828 b3c7e70331098da6a7fbd68e2a4277a3 "" "./paperReferences.bib" 1745154876.64218 46828 b3c7e70331098da6a7fbd68e2a4277a3 ""
"/usr/local/texlive/2025/texmf-dist/bibtex/bst/base/unsrt.bst" 1292289607 18030 1376b4b231b50c66211e47e42eda2875 "" "/usr/local/texlive/2025/texmf-dist/bibtex/bst/base/unsrt.bst" 1292289607 18030 1376b4b231b50c66211e47e42eda2875 ""
"paper.aux" 1745224533.40044 7767 c3c79e09db5ac00f42873e8ffbd9b68a "pdflatex" "paper.aux" 1745226887.03248 7750 1497cb0b90f6a69d43cefe86a839a1cf "pdflatex"
(generated) (generated)
"paper.bbl" "paper.bbl"
"paper.blg" "paper.blg"
(rewritten before read) (rewritten before read)
["pdflatex"] 1745224532.17335 "paper.tex" "paper.pdf" "paper" 1745224533.70749 0 ["pdflatex"] 1745226885.83453 "paper.tex" "paper.pdf" "paper" 1745226887.34458 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/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_25tcsq.enc" 1490131464 2921 8ca0eb0831f9bc5da080d3697cfe67bf ""
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc" 1490131464 2933 9ad527ce78d7c5fa0a642dead095f172 "" "/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/TLBAccess.drawio.png" 1744196148.80543 77522 75367f218335fe386db852966a892e9b ""
"diagram/bargraph.png" 1744196148.80607 74263 65509d21744edc6c9ca02b8c67d664fb "" "diagram/bargraph.png" 1744196148.80607 74263 65509d21744edc6c9ca02b8c67d664fb ""
"diagram/kmeans.png" 1744196148.80901 94217 5d14308c169ff296bf499805b9823aa6 "" "diagram/kmeans.png" 1744196148.80901 94217 5d14308c169ff296bf499805b9823aa6 ""
"paper.aux" 1745224533.40044 7767 c3c79e09db5ac00f42873e8ffbd9b68a "pdflatex" "paper.aux" 1745226887.03248 7750 1497cb0b90f6a69d43cefe86a839a1cf "pdflatex"
"paper.bbl" 1745224532.17051 4124 00c91189ca7ebb5f2c50a354246b9795 "bibtex paper" "paper.bbl" 1745226088.21937 4124 00c91189ca7ebb5f2c50a354246b9795 "bibtex paper"
"paper.out" 1745224533.40129 3243 8666c5d883f1c403037236be395fbf0f "pdflatex" "paper.out" 1745226887.0343 3219 ff23a20e7f9cd62748c922bd1981ad35 "pdflatex"
"paper.tex" 1745224518.39528 84132 33b106b0947466adbb9bc7c72ae34180 "" "paper.tex" 1745226861.93669 84069 24e852831cdd5c77cb63a6d7ba0879e7 ""
(generated) (generated)
"paper.aux" "paper.aux"
"paper.log" "paper.log"

View File

@@ -1,4 +1,4 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 21 APR 2025 09:35 This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 21 APR 2025 10:14
entering extended mode entering extended mode
restricted \write18 enabled. restricted \write18 enabled.
%&-line parsing enabled. %&-line parsing enabled.
@@ -1313,6 +1313,9 @@ Package pdftex.def Info: diagram/TLBAccess.drawio.png used on input line 616.
Class acmart Warning: A possible image without description on input line 619. Class acmart Warning: A possible image without description on input line 619.
LaTeX Warning: `h' float specifier changed to `ht'.
Underfull \vbox (badness 10000) has occurred while \output is active [] Underfull \vbox (badness 10000) has occurred while \output is active []
@@ -1354,7 +1357,7 @@ Package microtype Info: Loading generic protrusion settings for font family
(microtype) `zi4' (encoding: T1). (microtype) `zi4' (encoding: T1).
(microtype) For optimal results, create family-specific settings. (microtype) For optimal results, create family-specific settings.
(microtype) See the microtype manual for details. (microtype) See the microtype manual for details.
<diagram/bargraph.png, id=182, 1156.32pt x 722.7pt> <diagram/bargraph.png, id=181, 1156.32pt x 722.7pt>
File: diagram/bargraph.png Graphic file (type png) File: diagram/bargraph.png Graphic file (type png)
<use diagram/bargraph.png> <use diagram/bargraph.png>
Package pdftex.def Info: diagram/bargraph.png used on input line 911. Package pdftex.def Info: diagram/bargraph.png used on input line 911.
@@ -1367,23 +1370,11 @@ Class acmart Warning: A possible image without description on input line 913.
LaTeX Warning: `h' float specifier changed to `ht'. LaTeX Warning: `h' float specifier changed to `ht'.
Underfull \vbox (badness 2088) has occurred while \output is active []
[5.5{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc [5.5{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc
}] }]
Underfull \vbox (badness 10000) has occurred while \output is active []
<./diagram/kmeans.png, id=201, 1011.78pt x 578.16pt>
Underfull \vbox (badness 10000) has occurred while \output is active []
[6.6]
<./diagram/kmeans.png, id=207, 1011.78pt x 578.16pt>
File: ./diagram/kmeans.png Graphic file (type png) File: ./diagram/kmeans.png Graphic file (type png)
<use ./diagram/kmeans.png> <use ./diagram/kmeans.png>
Package pdftex.def Info: ./diagram/kmeans.png used on input line 961. Package pdftex.def Info: ./diagram/kmeans.png used on input line 961.
@@ -1397,16 +1388,21 @@ Overfull \hbox (24.11621pt too wide) in paragraph at lines 961--962
Class acmart Warning: A possible image without description on input line 963. Class acmart Warning: A possible image without description on input line 963.
Underfull \vbox (badness 2096) has occurred while \output is active []
Underfull \vbox (badness 10000) has occurred while \output is active [] Underfull \vbox (badness 10000) has occurred while \output is active []
[6.6]
Underfull \vbox (badness 1769) has occurred while \output is active []
[7.7 <./diagram/bargraph.png> <./diagram/kmeans.png>] (./paper.bbl [7.7 <./diagram/bargraph.png> <./diagram/kmeans.png>] (./paper.bbl
Underfull \vbox (badness 3428) has occurred while \output is active []
Underfull \hbox (badness 2443) in paragraph at lines 91--93 Underfull \hbox (badness 2443) in paragraph at lines 91--93
@@ -1442,16 +1438,16 @@ LaTeX2e <2024-11-01> patch level 2
L3 programming layer <2025-01-18> L3 programming layer <2025-01-18>
*********** ***********
Package rerunfilecheck Info: File `paper.out' has not changed. Package rerunfilecheck Info: File `paper.out' has not changed.
(rerunfilecheck) Checksum: 8666C5D883F1C403037236BE395FBF0F;3243. (rerunfilecheck) Checksum: FF23A20E7F9CD62748C922BD1981AD35;3219.
) )
Here is how much of TeX's memory you used: Here is how much of TeX's memory you used:
24043 strings out of 473190 24046 strings out of 473190
394298 string characters out of 5715801 394363 string characters out of 5715801
968614 words of memory out of 5000000 967839 words of memory out of 5000000
46201 multiletter control sequences out of 15000+600000 46201 multiletter control sequences out of 15000+600000
775822 words of font info for 454 fonts, out of 8000000 for 9000 776193 words of font info for 456 fonts, out of 8000000 for 9000
1302 hyphenation exceptions out of 8191 1302 hyphenation exceptions out of 8191
90i,16n,131p,1002b,645s stack positions out of 10000i,1000n,20000p,200000b,200000s 90i,16n,131p,1002b,639s stack positions out of 10000i,1000n,20000p,200000b,200000s
</usr/local/texlive/2025/texmf-dist/fonts/type1/public/inconsolata/Inconsolat </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 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 neMathMI.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/L
@@ -1463,10 +1459,10 @@ lic/libertine/LinLibertineTB.pfb></usr/local/texlive/2025/texmf-dist/fonts/type
1/public/libertine/LinLibertineTI.pfb></usr/local/texlive/2025/texmf-dist/fonts 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 /type1/public/newtx/NewTXMI.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1
/public/newtx/txsys.pfb> /public/newtx/txsys.pfb>
Output written on paper.pdf (8 pages, 710646 bytes). Output written on paper.pdf (8 pages, 710565 bytes).
PDF statistics: PDF statistics:
293 PDF objects out of 1000 (max. 8388607) 292 PDF objects out of 1000 (max. 8388607)
244 compressed objects within 3 object streams 243 compressed objects within 3 object streams
60 named destinations out of 1000 (max. 500000) 60 named destinations out of 1000 (max. 500000)
119498 words of extra memory for PDF output out of 128383 (max. 10000000) 119498 words of extra memory for PDF output out of 128383 (max. 10000000)

Binary file not shown.

View File

@@ -334,25 +334,25 @@ memory address translations. A TLB is a specialised cache in the memory manageme
It reduces the time required to convert virtual addresses to physical addresses. When a program accesses It reduces the time required to convert virtual addresses to physical addresses. When a program accesses
data in memory, the MMU first checks the TLB for a matching entry and avoids the slow process of data in memory, the MMU first checks the TLB for a matching entry and avoids the slow process of
accessing the page tables situated in memory. However, as applications grow more complex, the fixed size of accessing the page tables situated in memory. However, as applications grow more complex, the fixed size of
TLBs often cannot keep up, leading to more TLB misses and performance slowdowns~\cite{mittal_survey_2017}. TLBs often cannot keep up leading to more TLB misses and performance slowdowns~\cite{mittal_survey_2017}.
To tackle this issue, researchers have explored new solutions, including the use of To tackle this issue, researchers have explored new solutions, including the use of
huge pages~\cite{panwar_hawkeye_2019}. huge pages~\cite{panwar_hawkeye_2019}.
Huge pages, also known as large pages, allow for the allocation of memory in significantly larger chunks 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 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 TLBs which are used by reducing the number of memory. Huge pages offer a potential avenue for optimising TLBs which are used by reducing the number
of entries needed to map large memory regions. This not only decreases the frequency of 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 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 these bottlenecks, huge pages can improve system performance in aspects such as speeding
up memory-intensive applications, reducing latency in data access, and enhancing throughput for up memory-intensive applications, reducing latency in data access and enhancing throughput for
workloads that rely heavily on large datasets. workloads that rely heavily on large datasets.
Simultaneously, advancements in hardware-level security, such as the Capability Hardware Enhanced RISC Instructions (CHERI) Simultaneously, advancements in hardware-level security, such as the Capability Hardware Enhanced RISC Instructions (CHERI)
~\cite{woodruff_cheri_2014} architecture presents additional opportunities for performance enhancement. CHERI's capability-based addressing approach not ~\cite{woodruff_cheri_2014} architecture presents additional opportunities for performance enhancement. CHERI's capability-based addressing approach not
only strengthens system security by tightly controlling memory access but also opens avenues for optimising memory management only strengthens system security by tightly controlling memory access but also opens avenues for optimising memory management
operations. By integrating CHERI's compressed encoded bounds~\cite{woodruff_cheri_2019} with the use of huge pages, We have shown it is possible to track and manage operations. By integrating CHERI's compressed encoded bounds~\cite{woodruff_cheri_2019} with the use of huge pages, We have shown it is possible to track, manage
large, physically contiguous memory blocks without requiring numerous TLB entries. This combination reduces the TLB pressure by minimising the number of large and physically contiguous memory blocks without requiring numerous TLB entries. This combination reduces the TLB pressure by minimising the number of
entries required to map extensive memory regions, thereby decreasing TLB misses and improving address translation performance. entries required to map extensive memory regions thereby decreasing TLB misses and improving address translation performance.
Furthermore, we introduce FAT which accelerates memory-intensive tasks by reducing the overhead associated with managing non-contiguous Furthermore, we introduce FAT which accelerates memory-intensive tasks by reducing the overhead associated with managing non-contiguous
memory allocations. The contributions for the following paper are as follows: memory allocations. The contributions for the following paper are as follows:
\begin{itemize} \begin{itemize}
@@ -470,7 +470,7 @@ for scalable software compartmentalisation.
\subsection{CHERI CC} \subsection{CHERI CC}
CHERI Concentrate: Practical Compressed Capabilities\cite{woodruff_cheri_2019} introduces a compression scheme for CHERI that aims to address the performance and compatibility challenges associated with CHERI Concentrate: Practical Compressed Capabilities\cite{woodruff_cheri_2019} introduces a compression scheme for CHERI that aims to address the performance and compatibility challenges associated with
capability pointers. Capability pointers enhance memory safety by embedding bounds and permissions directly capability pointers. Capability pointers enhance memory safety by embedding bounds and permissions directly
within pointers. Traditional implementations of CHERI double their sizeleading in bounds to increased memory usage. CHERI CC within pointers. Traditional implementations of CHERI double their size leading in bounds to increased memory usage. CHERI CC
proposes a compression strategy that preserves security while reducing size and inefficiencies. Key contributions include a floating-point proposes a compression strategy that preserves security while reducing size and inefficiencies. Key contributions include a floating-point
bound encoding technique with an internal exponent mechanism that offers greater precision for smaller objects and optimised space usage for larger ones. bound encoding technique with an internal exponent mechanism that offers greater precision for smaller objects and optimised space usage for larger ones.
@@ -517,9 +517,9 @@ 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 (\textit{malloc()}) and the proposed FAT method. The standard approach involves a C program interacting with a custom allocator which uses 48-bit Figure \ref{fig:HighOverviewArchitecture} illustrates a comparison between standard memory allocation (\textit{malloc()}) and the proposed FAT method. The standard approach involves a C program interacting with a custom allocator which uses 48-bit
virtual addresses and a TLB walker (L1, L2 and L3 cache) to achieve non-contiguous allocation in physical memory. virtual addresses and a TLB walker (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. This typically results in more TLB entries and increased TLB misses increasing the reasoning to have more TLB walks.
In contrast, the FAT Address Translations method employs a custom allocator leveraging In contrast, the FAT method employs a custom allocator leveraging
physically contiguous memory by using CHERI to encode physically contiguous memory by using CHERI to encode
bounds within the pointers and as shown in the figure \ref{fig:HighOverviewArchitecture} (there is almost no reliance on walking the TLB hierarchy). bounds within the pointers and as shown in the figure \ref{fig:HighOverviewArchitecture}. There is almost no reliance on walking the TLB hierarchy.
% Figure \ref{fig:HighOverviewArchitecture} illustrates % Figure \ref{fig:HighOverviewArchitecture} illustrates
% the methodology employed to use the CHERI % the methodology employed to use the CHERI
@@ -558,7 +558,7 @@ This scenario simulates a block-based memory allocator operating within the conf
The allocations use the bounds encoded in FAT which ensures tracking of the allocated memory regions. The allocations use the bounds encoded in FAT which ensures tracking of the allocated memory regions.
By using the CHERI bounds, this method maintains the contiguity of the allocated blocks within the huge page. By using the CHERI bounds, this method maintains the contiguity of the allocated blocks within the huge page.
\subsection{128 bit compressed bounds} \section{128 bit compressed bounds}
\label{sec:128bitCompressedBounds} \label{sec:128bitCompressedBounds}
% We use CHERI CC (Compressed bounds) to track regions of memory used in physically % We use CHERI CC (Compressed bounds) to track regions of memory used in physically
% contigous space. CHERI CC consists of bounds which are compressed and represent a % contigous space. CHERI CC consists of bounds which are compressed and represent a
@@ -855,8 +855,8 @@ the proposed changes.
\end{table*} \end{table*}
\subsection{Benchmarks} \subsection{Benchmarks}
We elaborate here on the two classes of benchmarks~\cite{Benchmark}. Micro benchmarks (Section~\ref{sec:Micro}). We elaborate here on the two classes of benchmarks~\cite{Benchmark}. Micro benchmarks
focused on particular allocation and deallocation patterns such as sequential and focus on particular allocation, deallocation patterns such as sequential and
random memory accesses. This is to stress-test the allocator under controlled conditions. random memory accesses. This is to stress-test the allocator under controlled conditions.
Macro benchmarks involves real-world applications offering insights into how Macro benchmarks involves real-world applications offering insights into how
the allocator performs with complex memory allocation demands such as large datasets with varying execution contexts. the allocator performs with complex memory allocation demands such as large datasets with varying execution contexts.

View File

@@ -1,9 +1,10 @@
Recheck require read of the paper Recheck require read of the paper
- [x] Captilisation fixes (Recheck) ** General changes
- [ ] Check for unessary commas (Requires read through paper) (Recheck) - [x] Captilisation fixes
- [ ] Check references (Last priority) - [x] Check for unessary commas (Requires read through paper)
- [x] Unify english grammer (emphasize -> Check british english spelling) (Recheck) - [x] Check references (Last priority)
- [x] Unify english grammer (emphasize -> Check british english spellings)
- [x] Text make to italics (For function calls) - [x] Text make to italics (For function calls)
- [x] Space missing from bracket - [x] Space missing from bracket
- [x] Utlizing to using - [x] Utlizing to using
@@ -12,15 +13,15 @@ Recheck require read of the paper
- [x] Comment out future work section - [x] Comment out future work section
- [x] Section with always captial S - [x] Section with always captial S
- [x] RMM fix reference - [x] RMM fix reference
** Literature review ** Literature review
- [x] TLB reach needs defining - [x] TLB reach needs defining
- [x] PTE acronym - [x] PTE acronym
- [x] Citation (HP Tunable page table) - [x] Citation (HP Tunable page table)
- [x] CHERI standardise bullet points into a - [x] CHERI standardise bullet points into a
paragraph. paragraph.
** FAT address range table ** FAT address range table
- [x] Sentence 1 remove "talks about" - [x] Sentence 1 remove "talks about"
- [x] "Lesser pressure" FAT leverages to reduce pressure on the TLB - [x] "Lesser pressure" FAT leverages to reduce pressure on the TLB
- [x] Fix "as show" to "as shown" - [x] Fix "as show" to "as shown"
@@ -38,16 +39,15 @@ Recheck require read of the paper
- [x] "To build up based on Section 3.1 and 3.2." - [x] "To build up based on Section 3.1 and 3.2."
Remove this setence Remove this setence
- [x] "As demonstrated - [x] "As demonstrated with the allocator implementation in section 4"
384 with the allocator implementation in section 4"
Remove this sentence Remove this sentence
- [x] "repcrecated" to "replicated" - [x] "repcrecated" to "replicated"
** Malloc implementation ** Malloc implementation
- [x] "Specifically, the start and end addresses encoded in FAT to provide the necessary information to identify the exact memory block to be deallocated." - [x] "Specifically, the start and end addresses encoded in FAT to provide the necessary information to identify the exact memory block to be deallocated."
Rewrite this sentence Rewrite this sentence
** Evaluation ** Evaluation
- [x] 2nd para move to benchmarks section - [x] 2nd para move to benchmarks section
- [x] "The results (section 5.3)... (comment out) - [x] "The results (section 5.3)... (comment out)
- [x] "The expirement setup" comment out - [x] "The expirement setup" comment out
@@ -55,12 +55,6 @@ Recheck require read of the paper
- [x] "This observation highlights the importance" - [x] "This observation highlights the importance"
Comment out Comment out
** Conclusion ** Conclusion
- [x] "This approach has helped reduce" -> "This approach reduces" - [x] "This approach has helped reduce" -> "This approach reduces"
- [x] "Remove comprehensive" - [x] "Remove comprehensive"
** Read 1
*** Introduction
- [ ] Check if Rob mentioned paraphrasing setence 1.

101
docs/EuroSys/Paper/todo.tex Normal file
View File

@@ -0,0 +1,101 @@
% Created 2025-04-21 Mon 10:25
% 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
Recheck require read of the paper
\section{General changes}
\label{sec:org525fa77}
\begin{itemize}
\item Captilisation fixes
\item Check for unessary commas (Requires read through paper)
\item Check references (Last priority)
\item Unify english grammer (emphasize -> Check british english spellings)
\item Text make to italics (For function calls)
\item Space missing from bracket
\item Utlizing to using
\item Small number use word
\item Make all past tense to present tense (Recheck)
\item Comment out future work section
\item Section with always captial S
\item RMM fix reference
\end{itemize}
\section{Literature review}
\label{sec:org5f6e72b}
\begin{itemize}
\item TLB reach needs defining
\item PTE acronym
\item Citation (HP Tunable page table)
\item CHERI standardise bullet points into a
paragraph.
\end{itemize}
\section{FAT address range table}
\label{sec:orgc1556d2}
\begin{itemize}
\item Sentence 1 remove "talks about"
\item "Lesser pressure" FAT leverages to reduce pressure on the TLB
\item Fix "as show" to "as shown"
\item Remove "CHERI CC [4] as referred in section 3.2."
to "CHERI CC [4] (section 3.2)"
\item Explain Cheri CC in the literature review
\item Move Cheri CC reference to it has been observed
\item "With FAT rather than using fixed size TLB entries page sizes"
Rephrase this sentence.
\item "We use CHERI CC bounds to 344 be dynamic in
size to be defined based on the size provided when
345 calling malloc. Offering a more flexible
alternative than fixed-size 346 TLB entries."
Make this into 1 sentence.
\item "To build up based on Section 3.1 and 3.2."
Remove this setence
\item "As demonstrated with the allocator implementation in section 4"
Remove this sentence
\item "repcrecated" to "replicated"
\end{itemize}
\section{Malloc implementation}
\label{sec:org8098e0d}
\begin{itemize}
\item "Specifically, the start and end addresses encoded in FAT to provide the necessary information to identify the exact memory block to be deallocated."
Rewrite this sentence
\end{itemize}
\section{Evaluation}
\label{sec:org67b48c5}
\begin{itemize}
\item 2nd para move to benchmarks section
\item "The results (section 5.3)\ldots{} (comment out)
\item "The expirement setup" comment out
\item Replace "lesser" with fewer
\item "This observation highlights the importance"
Comment out
\end{itemize}
\section{Conclusion}
\label{sec:orge940240}
\begin{itemize}
\item "This approach has helped reduce" -> "This approach reduces"
\item "Remove comprehensive"
\end{itemize}
\end{document}