diff --git a/docs/EuroSys/Paper/paper.aux b/docs/EuroSys/Paper/paper.aux index 139cbd5..6eb2b1d 100644 --- a/docs/EuroSys/Paper/paper.aux +++ b/docs/EuroSys/Paper/paper.aux @@ -6,23 +6,26 @@ \citation{panwar_hawkeye_2019} \citation{woodruff_cheri_2014} \citation{woodruff_cheri_2019} +\citation{TLBReach} \citation{panwar_hawkeye_2019} \citation{THP} \@writefile{toc}{\contentsline {section}{Abstract}{1}{section*.1}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2}Related work}{1}{section.2}\protected@file@percent } +\newlabel{sec:org0e192da}{{2}{1}{Related work}{section.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Huge Pages}{1}{subsection.2.1}\protected@file@percent } \citation{Shadow_superpages} \citation{DirectSegment} \citation{karakostas_redundant_2015} +\citation{woodruff_cheri_2019} \citation{chen_flexpointer_2023} \citation{karakostas_redundant_2015} \citation{woodruff_cheri_2019} -\@writefile{toc}{\contentsline {section}{\numberline {2}Related work}{2}{section.2}\protected@file@percent } -\newlabel{sec:org0e192da}{{2}{2}{Related work}{section.2}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Huge Pages}{2}{subsection.2.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Direct Segment}{2}{subsection.2.2}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Range Memory Mapping (RMM)}{2}{subsection.2.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.4}CHERI}{2}{subsection.2.4}\protected@file@percent } \newlabel{sec:orgbf2eaac}{{2.4}{2}{CHERI}{subsection.2.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}CHERI CC}{2}{subsection.2.5}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3}Fat Address Translations}{2}{section.3}\protected@file@percent } \newlabel{sec:FatPointerTranslations}{{3}{2}{Fat Address Translations}{section.3}{}} \citation{woodruff_cheri_2019} @@ -37,9 +40,9 @@ \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{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 } \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}{}} \@writefile{loa}{\contentsline {algorithm}{\numberline {1}{\ignorespaces Malloc implementation}}{4}{algorithm.1}\protected@file@percent } @@ -52,6 +55,8 @@ \citation{BenchmarkABI} \citation{PerformanceCounter} \citation{Benchmark} +\citation{singh1993} +\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 } \newlabel{alg:initAlloc}{{3}{5}{Init alloc function to create a initial 1 GB huge page}{algorithm.3}{}} \@writefile{toc}{\contentsline {section}{\numberline {5}Evaluation}{5}{section.5}\protected@file@percent } @@ -59,12 +64,10 @@ \@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Experiment setup}{5}{subsection.5.1}\protected@file@percent } \newlabel{sec:Experiment}{{5.1}{5}{Experiment setup}{subsection.5.1}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Benchmarks}{5}{subsection.5.2}\protected@file@percent } -\newlabel{sec:Micro}{{5.2.1}{5}{Micro benchmark}{subsubsection.5.2.1}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.1}Micro benchmark}{5}{subsubsection.5.2.1}\protected@file@percent } +\newlabel{sec:Micro}{{5.2.1}{5}{Micro benchmark}{subsubsection.5.2.1}{}} \newlabel{sec:Macro}{{5.2.2}{5}{Macro benchmark}{subsubsection.5.2.2}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.2}Macro benchmark}{5}{subsubsection.5.2.2}\protected@file@percent } -\citation{singh1993} -\citation{holt1995} \@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 } @@ -85,13 +88,6 @@ \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 } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Storing Offsets Directly on Pointers}{8}{subsection.6.1}\protected@file@percent } -\@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{cheribsd}{{11}{}{{}}{{}}} \bibcite{Morello}{{12}{}{{}}{{}}} \bibcite{BenchmarkABI}{{13}{}{{}}{{}}} @@ -107,5 +103,9 @@ \newlabel{tocindent4}{0pt} \newlabel{tocindent5}{0pt} \providecommand\NAT@force@numbers{}\NAT@force@numbers -\newlabel{TotPages}{{9}{9}{}{page.9}{}} -\gdef \@abspage@last{9} +\@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}Conclusion}{8}{section.6}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{References}{8}{section*.10}\protected@file@percent } +\newlabel{TotPages}{{8}{8}{}{page.8}{}} +\gdef \@abspage@last{8} diff --git a/docs/EuroSys/Paper/paper.blg b/docs/EuroSys/Paper/paper.blg index 7978e87..5357878 100644 --- a/docs/EuroSys/Paper/paper.blg +++ b/docs/EuroSys/Paper/paper.blg @@ -13,6 +13,7 @@ Warning--entry type for "Morello" isn't style-file defined --line 507 of file paperReferences.bib Warning--entry type for "PerformanceCounter" isn't style-file defined --line 514 of file paperReferences.bib +Warning--I didn't find a database entry for "TLBReach" Warning--empty journal in mittal_survey_2017 Warning--empty year in mittal_survey_2017 Warning--empty year in panwar_hawkeye_2019 @@ -27,7 +28,7 @@ Warning--empty journal in chen_flexpointer_2023 Warning--empty year in chen_flexpointer_2023 You've used 17 entries, 1791 wiz_defined-function locations, - 533 strings with 6851 characters, + 535 strings with 6867 characters, and the built_in function-call counts, 3698 in all, are: = -- 273 > -- 215 @@ -66,4 +67,4 @@ warning$ -- 12 while$ -- 27 width$ -- 19 write$ -- 151 -(There were 17 warnings) +(There were 18 warnings) diff --git a/docs/EuroSys/Paper/paper.fdb_latexmk b/docs/EuroSys/Paper/paper.fdb_latexmk index dd29163..df135fe 100644 --- a/docs/EuroSys/Paper/paper.fdb_latexmk +++ b/docs/EuroSys/Paper/paper.fdb_latexmk @@ -1,13 +1,13 @@ # Fdb version 4 -["bibtex paper"] 1744455340.75803 "paper.aux" "paper.bbl" "paper" 1744456830.74161 0 +["bibtex paper"] 1744984608.02035 "paper.aux" "paper.bbl" "paper" 1744984609.67666 0 "./paperReferences.bib" 1744390239.54673 46323 d7b94a445857170fc1233321d0322eaa "" "/usr/local/texlive/2025/texmf-dist/bibtex/bst/base/unsrt.bst" 1292289607 18030 1376b4b231b50c66211e47e42eda2875 "" - "paper.aux" 1744456830.4036 7943 3a71d8669c9ed74685c0a88ee54b183b "pdflatex" + "paper.aux" 1744984609.35312 7728 b66dfce8e17c5b93218ba035ccc3761d "pdflatex" (generated) "paper.bbl" "paper.blg" (rewritten before read) -["pdflatex"] 1744456829.19242 "paper.tex" "paper.pdf" "paper" 1744456830.74178 0 +["pdflatex"] 1744984608.10722 "paper.tex" "paper.pdf" "paper" 1744984609.67678 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" 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 "" + "paper.aux" 1744984609.35312 7728 b66dfce8e17c5b93218ba035ccc3761d "pdflatex" + "paper.bbl" 1744984608.10415 3824 3a7d4db0e425f84ef7bb98164f0eac8f "bibtex paper" + "paper.out" 1744984609.35401 3223 c644626d6f355ca6b33284610ee86662 "pdflatex" + "paper.tex" 1744984604.67798 84275 6d13323418da536bb01ae02ed8ceb219 "" (generated) "paper.aux" "paper.log" diff --git a/docs/EuroSys/Paper/paper.fls b/docs/EuroSys/Paper/paper.fls index 647afb4..8250f61 100644 --- a/docs/EuroSys/Paper/paper.fls +++ b/docs/EuroSys/Paper/paper.fls @@ -505,11 +505,14 @@ INPUT ./diagram/AllocationOverview24.png INPUT ./diagram/AllocationOverview24.png INPUT ./diagram/AllocationOverview24.png INPUT ./diagram/AllocationOverview24.png +INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1.tfm INPUT ./diagram/TLBAccess.drawio.png INPUT ./diagram/TLBAccess.drawio.png INPUT ./diagram/TLBAccess.drawio.png INPUT ./diagram/TLBAccess.drawio.png INPUT ./diagram/TLBAccess.drawio.png +INPUT /usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineTI-tlf-t1.vf +INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1--base.tfm INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-sc-t1.tfm INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm @@ -528,14 +531,14 @@ INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/t1zi4.fd INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/t1zi4.fd INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/t1zi4.fd INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/inconsolata/t1-zi4r-4.tfm +INPUT ./diagram/bargraph.png +INPUT ./diagram/bargraph.png +INPUT ./diagram/bargraph.png +INPUT ./diagram/bargraph.png +INPUT ./diagram/bargraph.png INPUT /usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinBiolinumTI-tlf-t1.vf INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTI-tlf-t1--base.tfm INPUT /usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc -INPUT ./diagram/bargraph.png -INPUT ./diagram/bargraph.png -INPUT ./diagram/bargraph.png -INPUT ./diagram/bargraph.png -INPUT ./diagram/bargraph.png INPUT ./diagram/kmeans.png INPUT ./diagram/kmeans.png INPUT ./diagram/kmeans.png diff --git a/docs/EuroSys/Paper/paper.log b/docs/EuroSys/Paper/paper.log index 604a335..56fc4c3 100644 --- a/docs/EuroSys/Paper/paper.log +++ b/docs/EuroSys/Paper/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) 12 APR 2025 12:20 +This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 18 APR 2025 14:56 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -1032,52 +1032,52 @@ Package caption Info: listings package is loaded. Package caption Info: End \AtBeginDocument code. \c@lstlisting=\count355 LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 17.28pt on input line 299. +(Font) scaled to size 17.28pt on input line 307. LaTeX Font Info: Trying to load font information for T1+LinuxBiolinumT-TLF o -n input line 299. +n input line 307. (/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd File: T1LinuxBiolinumT-TLF.fd 2017/03/20 (autoinst) Font definitions for T1/Lin uxBiolinumT-TLF. ) LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be -(Font) scaled to size 17.28pt on input line 299. +(Font) scaled to size 17.28pt on input line 307. Package microtype Info: Loading generic protrusion settings for font family (microtype) `LinuxBiolinumT-TLF' (encoding: T1). (microtype) For optimal results, create family-specific settings. (microtype) See the microtype manual for details. LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/b/n' will be -(Font) scaled to size 17.28pt on input line 299. +(Font) scaled to size 17.28pt on input line 307. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 12.0pt on input line 299. +(Font) scaled to size 12.0pt on input line 307. LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 12.0pt on input line 299. +(Font) scaled to size 12.0pt on input line 307. Package microtype Info: Loading generic protrusion settings for font family (microtype) `LinuxLibertineT-TLF' (encoding: OT1). (microtype) For optimal results, create family-specific settings. (microtype) See the microtype manual for details. LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 8.8pt on input line 299. +(Font) scaled to size 8.8pt on input line 307. LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 6.6pt on input line 299. +(Font) scaled to size 6.6pt on input line 307. LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be -(Font) scaled to size 12.0pt on input line 299. +(Font) scaled to size 12.0pt on input line 307. LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be -(Font) scaled to size 8.8pt on input line 299. +(Font) scaled to size 8.8pt on input line 307. LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be -(Font) scaled to size 6.6pt on input line 299. +(Font) scaled to size 6.6pt on input line 307. LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be -(Font) scaled to size 12.0pt on input line 299. +(Font) scaled to size 12.0pt on input line 307. LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be -(Font) scaled to size 8.8pt on input line 299. +(Font) scaled to size 8.8pt on input line 307. LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be -(Font) scaled to size 6.6pt on input line 299. +(Font) scaled to size 6.6pt on input line 307. LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be -(Font) scaled to size 12.0pt on input line 299. +(Font) scaled to size 12.0pt on input line 307. LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be -(Font) scaled to size 8.8pt on input line 299. +(Font) scaled to size 8.8pt on input line 307. LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be -(Font) scaled to size 6.6pt on input line 299. +(Font) scaled to size 6.6pt on input line 307. (/usr/local/texlive/2025/texmf-dist/tex/latex/microtype/mt-msa.cfg File: mt-msa.cfg 2006/02/04 v1.1 microtype config. file: AMS symbols (a) (RS) ) @@ -1085,31 +1085,31 @@ File: mt-msa.cfg 2006/02/04 v1.1 microtype config. file: AMS symbols (a) (RS) File: mt-msb.cfg 2005/06/01 v1.0 microtype config. file: AMS symbols (b) (RS) ) LaTeX Font Info: Font shape `U/ntxmia/m/it' will be -(Font) scaled to size 12.0pt on input line 299. +(Font) scaled to size 12.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxmia/m/it' will be -(Font) scaled to size 8.8pt on input line 299. +(Font) scaled to size 8.8pt on input line 307. LaTeX Font Info: Font shape `U/ntxmia/m/it' will be -(Font) scaled to size 6.6pt on input line 299. +(Font) scaled to size 6.6pt on input line 307. LaTeX Font Info: Font shape `U/ntxsym/m/n' will be -(Font) scaled to size 12.0pt on input line 299. +(Font) scaled to size 12.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxsym/m/n' will be -(Font) scaled to size 8.8pt on input line 299. +(Font) scaled to size 8.8pt on input line 307. LaTeX Font Info: Font shape `U/ntxsym/m/n' will be -(Font) scaled to size 6.6pt on input line 299. +(Font) scaled to size 6.6pt on input line 307. LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be -(Font) scaled to size 12.0pt on input line 299. +(Font) scaled to size 12.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be -(Font) scaled to size 8.8pt on input line 299. +(Font) scaled to size 8.8pt on input line 307. LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be -(Font) scaled to size 6.6pt on input line 299. +(Font) scaled to size 6.6pt on input line 307. LaTeX Font Info: Font shape `U/ntxexa/m/n' will be -(Font) scaled to size 12.0pt on input line 299. +(Font) scaled to size 12.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxexa/m/n' will be -(Font) scaled to size 8.8pt on input line 299. +(Font) scaled to size 8.8pt on input line 307. LaTeX Font Info: Font shape `U/ntxexa/m/n' will be -(Font) scaled to size 6.6pt on input line 299. +(Font) scaled to size 6.6pt on input line 307. LaTeX Font Info: Trying to load font information for TS1+LinuxLibertineT-TLF - on input line 299. + on input line 307. (/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF. fd @@ -1117,160 +1117,158 @@ File: TS1LinuxLibertineT-TLF.fd 2017/03/20 (autoinst) Font definitions for TS1/ LinuxLibertineT-TLF. ) LaTeX Font Info: Font shape `TS1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 8.8pt on input line 299. +(Font) scaled to size 8.8pt on input line 307. Package microtype Info: Loading generic protrusion settings for font family (microtype) `LinuxLibertineT-TLF' (encoding: TS1). (microtype) For optimal results, create family-specific settings. (microtype) See the microtype manual for details. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 10.0pt on input line 299. +(Font) scaled to size 10.0pt on input line 307. LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 10.0pt on input line 299. +(Font) scaled to size 10.0pt on input line 307. LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be -(Font) scaled to size 10.0pt on input line 299. +(Font) scaled to size 10.0pt on input line 307. LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be -(Font) scaled to size 10.0pt on input line 299. +(Font) scaled to size 10.0pt on input line 307. LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be -(Font) scaled to size 10.0pt on input line 299. +(Font) scaled to size 10.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxmia/m/it' will be -(Font) scaled to size 10.0pt on input line 299. +(Font) scaled to size 10.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxsym/m/n' will be -(Font) scaled to size 10.0pt on input line 299. +(Font) scaled to size 10.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be -(Font) scaled to size 10.0pt on input line 299. +(Font) scaled to size 10.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxexa/m/n' will be -(Font) scaled to size 10.0pt on input line 299. +(Font) scaled to size 10.0pt on input line 307. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/b/n' will be -(Font) scaled to size 10.0pt on input line 299. +(Font) scaled to size 10.0pt on input line 307. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/it' will be -(Font) scaled to size 7.0pt on input line 299. +(Font) scaled to size 7.0pt on input line 307. LaTeX Font Info: Font shape `TS1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 7.0pt on input line 299. +(Font) scaled to size 7.0pt on input line 307. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/b/n' will be -(Font) scaled to size 9.0pt on input line 299. +(Font) scaled to size 9.0pt on input line 307. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/b/n' will be -(Font) scaled to size 10.95pt on input line 299. - -Overfull \hbox (4.22212pt too wide) in paragraph at lines 299--299 -\T1/LinuxLibertineT-TLF/m/n/9 (-20) rently, ad-vance-ments in hardware-level sy -s-tem se-cu-rity^^Vexemplified - [] - +(Font) scaled to size 10.95pt on input line 307. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 8.0pt on input line 299. +(Font) scaled to size 8.0pt on input line 307. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/b/n' will be -(Font) scaled to size 8.0pt on input line 299. +(Font) scaled to size 8.0pt on input line 307. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/it' will be -(Font) scaled to size 8.0pt on input line 299. +(Font) scaled to size 8.0pt on input line 307. LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 8.0pt on input line 299. +(Font) scaled to size 8.0pt on input line 307. LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 6.0pt on input line 299. +(Font) scaled to size 6.0pt on input line 307. LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be -(Font) scaled to size 8.0pt on input line 299. +(Font) scaled to size 8.0pt on input line 307. LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be -(Font) scaled to size 6.0pt on input line 299. +(Font) scaled to size 6.0pt on input line 307. LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be -(Font) scaled to size 8.0pt on input line 299. +(Font) scaled to size 8.0pt on input line 307. LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be -(Font) scaled to size 6.0pt on input line 299. +(Font) scaled to size 6.0pt on input line 307. LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be -(Font) scaled to size 8.0pt on input line 299. +(Font) scaled to size 8.0pt on input line 307. LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be -(Font) scaled to size 6.0pt on input line 299. +(Font) scaled to size 6.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxmia/m/it' will be -(Font) scaled to size 8.0pt on input line 299. +(Font) scaled to size 8.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxmia/m/it' will be -(Font) scaled to size 6.0pt on input line 299. +(Font) scaled to size 6.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxsym/m/n' will be -(Font) scaled to size 8.0pt on input line 299. +(Font) scaled to size 8.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxsym/m/n' will be -(Font) scaled to size 6.0pt on input line 299. +(Font) scaled to size 6.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be -(Font) scaled to size 8.0pt on input line 299. +(Font) scaled to size 8.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be -(Font) scaled to size 6.0pt on input line 299. +(Font) scaled to size 6.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxexa/m/n' will be -(Font) scaled to size 8.0pt on input line 299. +(Font) scaled to size 8.0pt on input line 307. LaTeX Font Info: Font shape `U/ntxexa/m/n' will be -(Font) scaled to size 6.0pt on input line 299. +(Font) scaled to size 6.0pt on input line 307. LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 9.0pt on input line 351. +(Font) scaled to size 9.0pt on input line 359. LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be -(Font) scaled to size 9.0pt on input line 351. +(Font) scaled to size 9.0pt on input line 359. LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be -(Font) scaled to size 9.0pt on input line 351. +(Font) scaled to size 9.0pt on input line 359. LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be -(Font) scaled to size 9.0pt on input line 351. +(Font) scaled to size 9.0pt on input line 359. LaTeX Font Info: Font shape `U/ntxmia/m/it' will be -(Font) scaled to size 9.0pt on input line 351. +(Font) scaled to size 9.0pt on input line 359. LaTeX Font Info: Font shape `U/ntxsym/m/n' will be -(Font) scaled to size 9.0pt on input line 351. +(Font) scaled to size 9.0pt on input line 359. LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be -(Font) scaled to size 9.0pt on input line 351. +(Font) scaled to size 9.0pt on input line 359. LaTeX Font Info: Font shape `U/ntxexa/m/n' will be -(Font) scaled to size 9.0pt on input line 351. +(Font) scaled to size 9.0pt on input line 359. -Underfull \vbox (badness 10000) has occurred while \output is active [] +Package natbib Warning: Citation `TLBReach' on page 1 undefined on input line 3 +88. + + +Underfull \vbox (badness 4913) has occurred while \output is active [] LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 6.0pt on input line 383. +(Font) scaled to size 6.0pt on input line 394. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 36.135pt on input line 383. -LaTeX Font Info: Calculating math sizes for size <36.135> on input line 383. +(Font) scaled to size 36.135pt on input line 394. +LaTeX Font Info: Calculating math sizes for size <36.135> on input line 394. LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 36.135pt on input line 383. +(Font) scaled to size 36.135pt on input line 394. LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 26.37839pt on input line 383. +(Font) scaled to size 26.37839pt on input line 394. LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 19.87434pt on input line 383. +(Font) scaled to size 19.87434pt on input line 394. LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be -(Font) scaled to size 36.135pt on input line 383. +(Font) scaled to size 36.135pt on input line 394. LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be -(Font) scaled to size 26.37839pt on input line 383. +(Font) scaled to size 26.37839pt on input line 394. LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be -(Font) scaled to size 19.87434pt on input line 383. +(Font) scaled to size 19.87434pt on input line 394. LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be -(Font) scaled to size 36.135pt on input line 383. +(Font) scaled to size 36.135pt on input line 394. LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be -(Font) scaled to size 26.37839pt on input line 383. +(Font) scaled to size 26.37839pt on input line 394. LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be -(Font) scaled to size 19.87434pt on input line 383. +(Font) scaled to size 19.87434pt on input line 394. LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be -(Font) scaled to size 36.135pt on input line 383. +(Font) scaled to size 36.135pt on input line 394. LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be -(Font) scaled to size 26.37839pt on input line 383. +(Font) scaled to size 26.37839pt on input line 394. LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be -(Font) scaled to size 19.87434pt on input line 383. +(Font) scaled to size 19.87434pt on input line 394. LaTeX Font Info: Font shape `U/ntxmia/m/it' will be -(Font) scaled to size 36.135pt on input line 383. +(Font) scaled to size 36.135pt on input line 394. LaTeX Font Info: Font shape `U/ntxmia/m/it' will be -(Font) scaled to size 26.37839pt on input line 383. +(Font) scaled to size 26.37839pt on input line 394. LaTeX Font Info: Font shape `U/ntxmia/m/it' will be -(Font) scaled to size 19.87434pt on input line 383. +(Font) scaled to size 19.87434pt on input line 394. LaTeX Font Info: Font shape `U/ntxsym/m/n' will be -(Font) scaled to size 36.135pt on input line 383. +(Font) scaled to size 36.135pt on input line 394. LaTeX Font Info: Font shape `U/ntxsym/m/n' will be -(Font) scaled to size 26.37839pt on input line 383. +(Font) scaled to size 26.37839pt on input line 394. LaTeX Font Info: Font shape `U/ntxsym/m/n' will be -(Font) scaled to size 19.87434pt on input line 383. +(Font) scaled to size 19.87434pt on input line 394. LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be -(Font) scaled to size 36.135pt on input line 383. +(Font) scaled to size 36.135pt on input line 394. LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be -(Font) scaled to size 26.37839pt on input line 383. +(Font) scaled to size 26.37839pt on input line 394. LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be -(Font) scaled to size 19.87434pt on input line 383. +(Font) scaled to size 19.87434pt on input line 394. LaTeX Font Info: Font shape `U/ntxexa/m/n' will be -(Font) scaled to size 36.135pt on input line 383. +(Font) scaled to size 36.135pt on input line 394. LaTeX Font Info: Font shape `U/ntxexa/m/n' will be -(Font) scaled to size 26.37839pt on input line 383. +(Font) scaled to size 26.37839pt on input line 394. LaTeX Font Info: Font shape `U/ntxexa/m/n' will be -(Font) scaled to size 19.87434pt on input line 383. +(Font) scaled to size 19.87434pt on input line 394. [1.1{/usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map}{/usr /local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc}{/usr/ local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_25tcsq.enc}{/usr/l @@ -1278,19 +1276,16 @@ ocal/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc} {/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_nh77jq.enc}{ /usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_7grukw.enc}] -Underfull \vbox (badness 10000) has occurred while \output is active [] - - - + File: diagram/HighOverviewArchitecture.drawio.png Graphic file (type png) Package pdftex.def Info: diagram/HighOverviewArchitecture.drawio.png used on i -nput line 489. +nput line 514. (pdftex.def) Requested size: 303.78008pt x 236.93262pt. -Class acmart Warning: A possible image without description on input line 493. +Class acmart Warning: A possible image without description on input line 518. LaTeX Warning: `h' float specifier changed to `ht'. @@ -1298,32 +1293,31 @@ LaTeX Warning: `h' float specifier changed to `ht'. LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be -(Font) scaled to size 9.0pt on input line 501. +(Font) scaled to size 9.0pt on input line 526. LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be -(Font) scaled to size 7.0pt on input line 501. +(Font) scaled to size 7.0pt on input line 526. [2.2] - + File: diagram/AllocationOverview24.png Graphic file (type png) Package pdftex.def Info: diagram/AllocationOverview24.png used on input line 5 -18. +43. (pdftex.def) Requested size: 202.51491pt x 140.43979pt. -Class acmart Warning: A possible image without description on input line 521. +Class acmart Warning: A possible image without description on input line 546. - +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/it' will be +(Font) scaled to size 9.0pt on input line 602. + File: diagram/TLBAccess.drawio.png Graphic file (type png) -Package pdftex.def Info: diagram/TLBAccess.drawio.png used on input line 590. +Package pdftex.def Info: diagram/TLBAccess.drawio.png used on input line 619. (pdftex.def) Requested size: 202.51491pt x 247.43411pt. -Class acmart Warning: A possible image without description on input line 593. - - -LaTeX Warning: `h' float specifier changed to `ht'. +Class acmart Warning: A possible image without description on input line 622. Underfull \vbox (badness 10000) has occurred while \output is active [] @@ -1333,13 +1327,13 @@ Underfull \vbox (badness 10000) has occurred while \output is active [] [3.3 <./diagram/HighOverviewArchitecture.drawio.png> <./diagram/AllocationOverv iew24.png>] Package hyperref Info: bookmark level for unknown algorithm defaults to 0 on in -put line 645. +put line 675. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/sc' will be -(Font) scaled to size 9.0pt on input line 648. +(Font) scaled to size 9.0pt on input line 678. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 6.6pt on input line 649. +(Font) scaled to size 6.6pt on input line 679. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 5.5pt on input line 649. +(Font) scaled to size 5.5pt on input line 679. @@ -1347,7 +1341,7 @@ 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 +Overfull \hbox (2.40372pt too wide) in paragraph at lines 753--757 \T1/LinuxLibertineT-TLF/m/n/9 (-20) loc [[]], Je-mal-loc is the de-fault mem-or y al-lo-ca-tor for CHERIBSD [[]], [] @@ -1355,73 +1349,74 @@ 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. -LaTeX Font Info: Trying to load font information for T1+zi4 on input line 83 +(Font) scaled to size 9.0pt on input line 865. +LaTeX Font Info: Trying to load font information for T1+zi4 on input line 87 4. (/usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/t1zi4.fd File: t1zi4.fd 2018/01/14 T1/zi4 (Inconsolata) ) LaTeX Font Info: Font shape `T1/zi4/m/n' will be -(Font) scaled to size 9.0pt on input line 834. +(Font) scaled to size 9.0pt on input line 874. Package microtype Info: Loading generic protrusion settings for font family (microtype) `zi4' (encoding: T1). (microtype) For optimal results, create family-specific settings. (microtype) See the microtype manual for details. + +File: diagram/bargraph.png Graphic file (type png) + +Package pdftex.def Info: diagram/bargraph.png used on input line 917. +(pdftex.def) Requested size: 455.6624pt x 284.78517pt. + + +Class acmart Warning: A possible image without description on input line 919. + [5.5{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc }] - -File: diagram/bargraph.png Graphic file (type png) - -Package pdftex.def Info: diagram/bargraph.png used on input line 877. -(pdftex.def) Requested size: 455.6624pt x 284.78517pt. - - -Class acmart Warning: A possible image without description on input line 879. - LaTeX Warning: `h' float specifier changed to `ht'. - - - -[6.6] -<./diagram/kmeans.png, id=219, 1011.78pt x 578.16pt> -File: ./diagram/kmeans.png Graphic file (type png) - -Package pdftex.def Info: ./diagram/kmeans.png used on input line 927. -(pdftex.def) Requested size: 265.2637pt x 151.57959pt. - -Overfull \hbox (24.11621pt too wide) in paragraph at lines 927--928 - [][] - [] - - -Class acmart Warning: A possible image without description on input line 929. - - Underfull \vbox (badness 10000) has occurred while \output is active [] +Underfull \vbox (badness 10000) has occurred while \output is active [] -[7.7 <./diagram/bargraph.png> <./diagram/kmeans.png>] -Overfull \hbox (1.21416pt too wide) in paragraph at lines 961--967 + + +[6.6] +<./diagram/kmeans.png, id=205, 1011.78pt x 578.16pt> +File: ./diagram/kmeans.png Graphic file (type png) + +Package pdftex.def Info: ./diagram/kmeans.png used on input line 967. +(pdftex.def) Requested size: 265.2637pt x 151.57959pt. + +Overfull \hbox (24.11621pt too wide) in paragraph at lines 967--968 + [][] + [] + + +Class acmart Warning: A possible image without description on input line 969. + + + + +Overfull \hbox (1.21416pt too wide) in paragraph at lines 1001--1007 \T1/LinuxLibertineT-TLF/m/n/9 (-20) page op-ti-miza-tions. Its de-sign ef-fec-t ively re-duces TLB misses, achiev- [] -Underfull \vbox (badness 1895) has occurred while \output is active [] +Underfull \vbox (badness 10000) has occurred while \output is active [] -(./paper.bbl +[7.7 <./diagram/bargraph.png> <./diagram/kmeans.png>] (./paper.bbl + -[8.8] Underfull \hbox (badness 2443) in paragraph at lines 85--87 []\T1/LinuxLibertineT-TLF/m/n/7 (+20) CHERI-allocator/benchmarks/benchmarks/Str essTestMalloc/glibc-bench.c at @@ -1429,6 +1424,9 @@ essTestMalloc/glibc-bench.c at ) +Package natbib Warning: There were undefined citations. + + Class acmart Warning: Some images may lack descriptions. @@ -1440,33 +1438,31 @@ Class acmart Warning: CCS concepts are mandatory for papers over two pages. - - -Overfull \vbox (1.152pt too high) has occurred while \output is active [] - +Package balance Warning: You have called \balance in second column +(balance) Columns might not be balanced. (/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-pdfdoc.def File: se-pdfdoc.def 2019/11/29 v1.12 stringenc: PDFDocEncoding ) (/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-utf8.def File: se-utf8.def 2019/11/29 v1.12 stringenc: UTF-8 -) [9.9] +) [8.8] (./paper.aux) *********** LaTeX2e <2024-11-01> patch level 2 L3 programming layer <2025-01-18> *********** Package rerunfilecheck Info: File `paper.out' has not changed. -(rerunfilecheck) Checksum: 15F71B74083C4EEFC68EA70789A0645A;3686. +(rerunfilecheck) Checksum: C644626D6F355CA6B33284610EE86662;3223. ) Here is how much of TeX's memory you used: - 24021 strings out of 473190 - 393679 string characters out of 5715801 - 965554 words of memory out of 5000000 + 24033 strings out of 473190 + 394081 string characters out of 5715801 + 967318 words of memory out of 5000000 46198 multiletter control sequences out of 15000+600000 - 768332 words of font info for 440 fonts, out of 8000000 for 9000 + 775161 words of font info for 450 fonts, out of 8000000 for 9000 1302 hyphenation exceptions out of 8191 - 90i,16n,131p,1002b,808s stack positions out of 10000i,1000n,20000p,200000b,200000s + 90i,17n,131p,1002b,645s stack positions out of 10000i,1000n,20000p,200000b,200000s -Output written on paper.pdf (9 pages, 713986 bytes). +Output written on paper.pdf (8 pages, 710095 bytes). PDF statistics: - 310 PDF objects out of 1000 (max. 8388607) - 260 compressed objects within 3 object streams - 62 named destinations out of 1000 (max. 500000) - 115418 words of extra memory for PDF output out of 128383 (max. 10000000) + 291 PDF objects out of 1000 (max. 8388607) + 242 compressed objects within 3 object streams + 59 named destinations out of 1000 (max. 500000) + 119498 words of extra memory for PDF output out of 128383 (max. 10000000) diff --git a/docs/EuroSys/Paper/paper.pdf b/docs/EuroSys/Paper/paper.pdf index 93fdcd3..df87b3c 100644 Binary files a/docs/EuroSys/Paper/paper.pdf and b/docs/EuroSys/Paper/paper.pdf differ diff --git a/docs/EuroSys/Paper/paper.tex b/docs/EuroSys/Paper/paper.tex index aff94dd..3f58d24 100644 --- a/docs/EuroSys/Paper/paper.tex +++ b/docs/EuroSys/Paper/paper.tex @@ -230,13 +230,21 @@ % we show that our allocator can reduce TLB misses by up to 90\%, % leading to substantial improvements in wall clock runtimes for memory-intensive % applications. - The increasing disparity between application workloads and the capacity of translation lookaside buffers (TLBs) has prompted researchers - to explore solutions to mitigate the extra clock cycles incurred during a TLB miss. One such approach involves leveraging physically contiguous memory - and the use of huge pages. Concurrently, advancements in hardware-level system security—exemplified by the Capability Hardware - Enhanced RISC Instructions (CHERI) architecture—offer additional opportunities for improving TLB performance. CHERI introduces - capability-based addressing, a novel approach that enhances system security by associating capabilities with memory pointers. By leveraging capability-based - addressing, we introduce a memory allocator that can integrate block-based allocations within huge pages. Through our evaluation using both micro and macro benchmarks, we show that - our allocator can reduce TLB misses by up to 90\%, leading to improvements in wall clock runtimes for memory-intensive applications. + + % The increasing disparity between application workloads and the capacity of translation lookaside buffers (TLBs) has prompted researchers + % to explore solutions to mitigate the extra clock cycles incurred during a TLB miss. One such approach involves leveraging physically contiguous memory + % and the use of huge pages. Concurrently, advancements in hardware-level system security—exemplified by the Capability Hardware + % Enhanced RISC Instructions (CHERI) architecture—offer additional opportunities for improving TLB performance. CHERI introduces + % capability-based addressing, a novel approach that enhances system security by associating capabilities with memory pointers. By leveraging capability-based + % addressing, we introduce a memory allocator that can integrate block-based allocations within huge pages. Through our evaluation using both micro and macro benchmarks, we show that + % our allocator can reduce TLB misses by up to 90\%, leading to improvements in wall clock runtimes for memory-intensive applications. + + The increasing gap between workload memory requirements and the capacity of translation lookaside buffers (TLBs) means TLB misses + are more frequency, costing additional clock cycles, impacting runtime performance. One solution is to use physically contiguous + memory in conjunction with huge pages. We propose an alternative approach, by exploiting capability-based addressing in the + CHERI architecture. This paper presents a new memory allocator. It associates capabilities with memory pointers. integrating + block-based allocations within huge pages. Our allocator reduces TLB misses by up to 90\%, which leads to reduced runtimes + for memory-intensive applications. \end{abstract} %% @@ -377,18 +385,18 @@ high memory throughput by reducing the address translation overhead. % and end of the segment. Any virtual address within this region % can be translated by adding the fixed offset between the virtual % and physical address. -Increasing TLB reach can be achieved by using larger page sizes, such as huge pages~\cite{panwar_hawkeye_2019}, which are common in modern computer systems. +Increasing TLB reach\cite{TLBReach} can be achieved by using larger page sizes, such as huge pages~\cite{panwar_hawkeye_2019}, which are common in modern computer systems. The x86-64 architecture supports huge pages of 2 MB and 1 GB, backed by OS mechanisms like Transparent Huge Pages (THP)~\cite{THP} and HugeTLBFS in Linux. However, available page sizes in x86-64 are limited, leading to internal fragmentation issues. % Alternate segment technique % - JayneelGandhi,ArkapravaBasu,MarkD.Hill,andMichaelM.Swift.2014.Efficientmemoryvirtualization:Reducing -For instance, allocating 1 MB with 4 KB base pages requires 256 PTEs, but using a 2 MB huge page would waste +For instance, allocating 1 MB with 4 KB base pages requires 256 PTEs (Page Table Entries), but using a 2 MB huge page would waste half of the memory space. Some architectures offer more page size choices, such as Intel Itanium, which allows different areas of the address space to have their own page sizes. Itanium uses a hash page table to organize huge pages, but without significant changes to the conventional page table, it only helps reduce page walk overheads. -HP Tunable Base Page Size permits the OS to adjust the base page size, but still faces internal fragmentation problems, -with HP recommending a base page size of no more than 16 KB. Shadow Superpage~\cite{Shadow_superpages} introduces a new translation level +Huge page tunable base page size permits the OS to adjust the base page size, but still faces internal fragmentation problems, +with huge page recommending a base page size of no more than 16 KB. Shadow Superpage~\cite{Shadow_superpages} introduces a new translation level in the memory controller to merge non-contiguous physical pages into a huge page in a shadow memory space, extending TLB coverage. However, this approach requires all memory traffic to be translated again in the memory controller, resulting in additional latency for memory accesses. @@ -435,29 +443,46 @@ reducing the need for costly page table walks. \subsection{CHERI} \label{sec:orgbf2eaac} -CHERI extends conventional processor -Instruction-Set Architectures (ISAs) with architectural capabilities to enable fine-grained -memory protection and highly scalable software compartmentalization. CHERI is a hybrid -capability architecture that can combine capabilities with conventional MMU (Memory Management Unit) based systems. -The contributions of CHERI include: -\begin{itemize} -\item ISA changes to introduce architectural capabilities. -\item New microarchitecture proving that capabilities can be implemented efficiently in hardware, with support for -efficient tagged memory to protect capabilities and compress capabilities to reduce memory overhead. -\item A newly designed software construction model that uses capabilities to provide fine-grained memory protection -and scalable software compartmentalization. -\item Language and compiler extensions for using capabilities with C and C++. -\item OS extensions to support fine-grained memory protection (spatial, referential, and (non-stack) temporal memory safety) -and abstraction extensions for scalable software compartmentalization. -\end{itemize} +% CHERI extends conventional processor +% Instruction-Set Architectures (ISAs) with architectural capabilities to enable fine-grained +% memory protection and highly scalable software compartmentalization. CHERI is a hybrid +% capability architecture that can combine capabilities with conventional MMU (Memory Management Unit) based systems. +% The contributions of CHERI include: +% \begin{itemize} +% \item ISA changes to introduce architectural capabilities. +% \item New microarchitecture proving that capabilities can be implemented efficiently in hardware, with support for +% efficient tagged memory to protect capabilities and compress capabilities to reduce memory overhead. +% \item A newly designed software construction model that uses capabilities to provide fine-grained memory protection +% and scalable software compartmentalization. +% \item Language and compiler extensions for using capabilities with C and C++. +% \item OS extensions to support fine-grained memory protection (spatial, referential, and (non-stack) temporal memory safety) +% and abstraction extensions for scalable software compartmentalization. +% \end{itemize} +CHERI extends conventional processor Instruction-Set Architectures (ISAs) +with architectural capabilities to enable fine-grained memory protection +and highly scalable software compartmentalization. It is a hybrid capability +architecture that can combine capabilities with conventional MMU (Memory Management Unit) +based systems. The contributions of CHERI include ISA changes to introduce architectural +capabilities; a new microarchitecture that demonstrates capabilities can be implemented efficiently in hardware, +with support for efficient tagged memory to protect capabilities and compress them to reduce memory overhead; +a newly designed software construction model that uses capabilities to provide fine-grained memory protection and scalable +software compartmentalization; language and compiler extensions for using capabilities with C and C++; and OS extensions to +support fine-grained memory protection (including spatial, referential, and non-stack temporal memory safety) and abstraction extensions +for scalable software compartmentalization. +\subsection{CHERI CC} +CHERI Concentrate: Practical Compressed Capabilities\cite{woodruff_cheri_2019} introduces a compression scheme for CHERI, aiming to address the performance and compatibility challenges associated with +capability pointers. Capability pointers enhance memory safety by embedding bounds and permissions directly +within pointers, but traditional implementations double their size—leading to increased memory usage. CHERI CC +proposes a compression strategy that preserves security while reducing size and inefficiencies. Key contributions include a floating-point +bounds encoding technique with an internal exponent mechanism that offers greater precision for smaller objects and optimized space usage for larger ones. \section{Fat Address Translations} \label{sec:FatPointerTranslations} -This section talks about how Fat Address Translations(FAT) uses the CHERI architecture to -bring about block based allocations in physically contiguous memory. FAT -leverages techniques like FlexPointer~\cite{chen_flexpointer_2023} and Range Memory Mapping (RMM)~\cite{karakostas_redundant_2015} to -achieve lesser pressure in the TLB. A key component +Fat Address Translations(FAT) uses the CHERI architecture to +bring about block based allocations in physically contiguous memory. +FAT leverages techniques like FlexPointer~\cite{chen_flexpointer_2023} and Range Memory Mapping (RMM)~\cite{karakostas_redundant_2015} to +reduce pressure on the TLB. A key component in this implementation is the use of range addresses with CHERI CC~\cite{woodruff_cheri_2019}. % Fat-pointer Address Translations, combined with the capabilities of the CHERI @@ -497,7 +522,7 @@ free virtual addresses and a TLB walk (L1, L2 and L3 cache) to achieve non-conti 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 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. +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 % the methodology employed to use the CHERI @@ -526,8 +551,8 @@ A memory range in FAT has 2 points to track memory in physical contiguous space is the top and bottom. These 2 points are 2 virtual addresses and the range consists of addresses which lie within this and refers to addresses allocated by invoking malloc. In FAT memory ranges are established using -bounds encoded within the pointer, adhering to CHERI CC~\cite{woodruff_cheri_2019} -as referred in section ~\ref{sec:128bitCompressedBounds}. +bounds encoded within the pointer, adhering to CHERI CC~\cite{woodruff_cheri_2019}. +% as referred in section ~\ref{sec:128bitCompressedBounds}. Figure \ref{fig:RangeOfMemory} illustrates a straightforward use-case in which the dark pink line represents a single, large contiguous memory area, or huge page. Within this huge page, the orange and blue lines indicate @@ -564,14 +589,18 @@ allocated. % eliminating the need for multiple TLB entries for each allocation. Allocators like Jemalloc typically allocate objects under -512 bytes~\cite{woodruff_cheri_2019}. When an object’s bounds cannot be precisely represented, padding is required to ensure +512 bytes. When an object’s bounds cannot be precisely represented, padding is required to ensure memory safety. However, it has been observed that Jemalloc rarely needs more than 6 bits to store the -exponent values within compressed bounds. This means that the default behavior of allocators such as Jemalloc, would allow precise +exponent values within compressed bounds (as shown in~\cite{woodruff_cheri_2019}). This means that the default behavior of allocators such as Jemalloc, would allow precise representation of bounds within CHERI CC. -With FAT rather than using fixed size TLB entries page sizes (such as 4KB, 2MB and 1GB pages). -We use CHERI CC bounds to be dynamic in size to be defined based on the size provided when calling -malloc. Offering a more flexible alternative than fixed-size TLB entries. +% With FAT rather than using fixed size TLB entries page sizes (such as 4KB, 2MB and 1GB pages) +% we use CHERI CC bounds to be dynamic in size to be defined based on the size provided when calling +% malloc offering a more flexible alternative than fixed-size TLB entries. + +Instead of relying on fixed-size TLB entries with set page sizes (such as 4KB, 2MB, or 1GB), FAT uses CHERI +CC to define dynamic bounds based on the size requested at allocation time (e.g., during a \textit{malloc} call). +This approach offers a more flexible alternative to the traditional fixed-size TLB model. % We use the CHERI CC % bounds to be repurposed to encode dynamic sized addresses ranges. @@ -591,12 +620,13 @@ malloc. Offering a more flexible alternative than fixed-size TLB entries. \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}. +% To build up based on Section ~\ref{sec:RangeMemory} and ~\ref{sec:128bitCompressedBounds}. We are able to pre-allocate memory using huge pages and are able to mark smaller allocations using ranges by storing them as bounds within the pointer. Each of these memory ranges can be called as a block. Since we have numerous blocks inside a huge page we allow block based -memory patters within physically contiguous memory. As demonstrated with the allocator -implementation in section ~\ref{sec:MemoryAllocator}. +memory patters within physically contiguous memory. +% As demonstrated with the allocator +% implementation in section ~\ref{sec:MemoryAllocator}. %Traditional address translation methods rely on hierarchical %structures to map virtual addresses to physical addresses. @@ -622,7 +652,7 @@ Figure \ref{fig:HugePages} illustrates a use-case of huge pages where the green line represents a sample access to read within a contigous space of physical memory. The dotted lines represents the bounds for that particular pointer access. Using bounds -stored on the pointer a block based pattern can be reprecated +stored on the pointer a block based pattern can be replicated on physically contigous memory. \section{Memory allocator design} @@ -682,9 +712,13 @@ efficient memory management but also demonstrates a practical usecase of huge pa 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 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. + Specifically, FAT encodes the start and end addresses of each allocation, providing the information needed to + identify the memory block to be deallocated. This enables the allocator to accurately unmap the corresponding + memory region from the address space. + + % 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. By extracting the bounds and size directly from FAT, the free function eliminates the need for additional metadata lookups or complex data structures. @@ -728,24 +762,24 @@ detailed aspects of the allocator's behavior. Macro benchmarks, on the other han encompass larger, real-world C programs, allowing us to assess the allocator's performance in more practical, real-world scenarios. -The experiment setup (section~\ref{sec:Experiment}) details the software stack used for evaluation. It includes -the specific configurations, compiler options, and system environment tailored -to benchmark the proposed allocator. This ensures consistency and repeatability -in our results, providing a solid foundation for meaningful comparisons. +% The experiment setup (section~\ref{sec:Experiment}) details the software stack used for evaluation. It includes +% the specific configurations, compiler options, and system environment tailored +% to benchmark the proposed allocator. This ensures consistency and repeatability +% in our results, providing a solid foundation for meaningful comparisons. -We further elaborated on the two classes of benchmarks executed. Micro benchmarks (section~\ref{sec:Micro}). -focused on particular allocation and deallocation patterns, such as sequential and -random memory accesses, to stress-test the allocator under controlled conditions. -Macro benchmarks (section~\ref{sec:Macro}) involved real-world applications, offering insights into how -the allocator performs with complex memory allocation demands, large datasets, -and varying execution contexts. +% We further elaborated on the two classes of benchmarks executed. Micro benchmarks (section~\ref{sec:Micro}). +% focused on particular allocation and deallocation patterns, such as sequential and +% random memory accesses, to stress-test the allocator under controlled conditions. +% Macro benchmarks (section~\ref{sec:Macro}) involved real-world applications, offering insights into how +% the allocator performs with complex memory allocation demands, large datasets, +% and varying execution contexts. -The results (section~\ref{sec:Results}) presents the outcomes of our benchmarks, highlighting key metrics -such as TLB miss rates, memory usage, and runtime performance. We observed that the -proposed allocator demonstrated significant improvements in reducing TLB misses, -leading to noticeable enhancements in runtime efficiency for both micro and macro -benchmarks. The behavior of specific allocation patterns and their impact on memory -performance is detailed, providing a nuanced understanding of the allocator's effectiveness. +% The results (section~\ref{sec:Results}) presents the outcomes of our benchmarks, highlighting key metrics +% such as TLB miss rates, memory usage, and runtime performance. We observed that the +% proposed allocator demonstrated significant improvements in reducing TLB misses, +% leading to noticeable enhancements in runtime efficiency for both micro and macro +% benchmarks. The behavior of specific allocation patterns and their impact on memory +% performance is detailed, providing a nuanced understanding of the allocator's effectiveness. %Based on the evaluated results (section~\cite{sec:Usability}), the usability of the proposed allocator shows promise %for applications requiring optimized memory management and reduced overhead from TLB misses. @@ -828,6 +862,12 @@ the proposed changes. The benchmarks~\cite{Benchmark} are classified into 2 classes: \subsubsection{Micro benchmark} +We further elaborated on the two classes of benchmarks executed. Micro benchmarks (section~\ref{sec:Micro}). +focused on particular allocation and deallocation patterns, such as sequential and +random memory accesses, to stress-test the allocator under controlled conditions. +Macro benchmarks involved real-world applications, offering insights into how +the allocator performs with complex memory allocation demands, large datasets, +and varying execution contexts. \label{sec:Micro} \begin{itemize} @@ -895,7 +935,7 @@ of its capability to handle memory more efficiently by leveraging huge pages. \item DTLB walks: Due to most of the TLB entries getting hit at the L1 DTLB there is no need to walk the TLB cache hierarchy. This is shown by an average of 99\% reduction in DTLB walks. - \item L1 DTLB refills: Since there are lesser DTLB walks and most reads are done at the L1 DTLB + \item L1 DTLB refills: Since there are fewer DTLB walks and most reads are done at the L1 DTLB layer there is no need for numerous TLB refills to take place. Our benchmarks show on average a 99\% reduction on DTLB refills. @@ -948,12 +988,12 @@ unexpected change in performance. Additionally, the increased complexity of mana number of clusters might introduce computational overhead that overshadows the memory allocator's optimizations. -This observation highlights the importance of testing across a range of workload sizes and -configurations to uncover edge cases or specific scenarios where performance deviates from the -expected pattern. Understanding these anomalies can provide insights into the allocator's -behavior and guide future improvements to address such outliers. Despite the deviation at a -cluster size of 2000, the overall results reaffirm the allocator's capability to maintain -consistent performance benefits across most scenarios. +% This observation highlights the importance of testing across a range of workload sizes and +% configurations to uncover edge cases or specific scenarios where performance deviates from the +% expected pattern. Understanding these anomalies can provide insights into the allocator's +% behavior and guide future improvements to address such outliers. Despite the deviation at a +% cluster size of 2000, the overall results reaffirm the allocator's capability to maintain +% consistent performance benefits across most scenarios. \subsection{Analysis} \label{sec:Analysis} @@ -975,32 +1015,32 @@ macro benchmarks is less pronounced. This suggests that its benefits are most re applications with frequent and intensive memory operations rather than those constrained by computation or I/O bottlenecks. -\section{Future work} -The current experimental setup on the ARM Morello board is constrained by the requirement that all memory reads must -pass through the (TLB) for address translation. This necessitates frequent TLB lookups, potentially -leading to performance bottlenecks. The planned future work aims to address this by leveraging CHERI -(Capability Hardware Enhanced RISC Instructions) extensions on the RISC-V architecture, specifically using the -Tooba implementation. +% \section{Future work} +% The current experimental setup on the ARM Morello board is constrained by the requirement that all memory reads must +% pass through the (TLB) for address translation. This necessitates frequent TLB lookups, potentially +% leading to performance bottlenecks. The planned future work aims to address this by leveraging CHERI +% (Capability Hardware Enhanced RISC Instructions) extensions on the RISC-V architecture, specifically using the +% Tooba implementation. -\subsection{Storing Offsets Directly on Pointers} -In the current ARM Morello setup, address translations rely on the TLB. -The future approach on RISC-V Tooba involves storing the offset directly within the pointer. This is possible due to CHERI's capability model, which supports fine-grained memory protection and can encode bounds within pointers. -Utilizing Bounds in CHERI for Block-Based Allocation: +% \subsection{Storing Offsets Directly on Pointers} +% In the current ARM Morello setup, address translations rely on the TLB. +% The future approach on RISC-V Tooba involves storing the offset directly within the pointer. This is possible due to CHERI's capability model, which supports fine-grained memory protection and can encode bounds within pointers. +% Utilizing Bounds in CHERI for Block-Based Allocation: -CHERI capabilities allow pointers to carry metadata about memory bounds, providing hardware-enforced memory safety. -By encoding the offset and bounds within the pointer, the system can directly access memory without needing intermediate translations via the TLB. -This enables the implementation of a block-based allocator that can efficiently manage memory allocations and deallocations within defined bounds. -Bypassing the TLB in RISC-V Tooba. +% CHERI capabilities allow pointers to carry metadata about memory bounds, providing hardware-enforced memory safety. +% By encoding the offset and bounds within the pointer, the system can directly access memory without needing intermediate translations via the TLB. +% This enables the implementation of a block-based allocator that can efficiently manage memory allocations and deallocations within defined bounds. +% Bypassing the TLB in RISC-V Tooba. -\subsection{Hardware Modifications:} -The Bluespec design of the RISC-V processor will be modified to allow certain memory operations to bypass the TLB. This means that when a pointer with encoded offset and bounds is used, the system can directly compute the physical address from the capability information. -This modification reduces the dependency on the TLB, decreasing latency and improving performance, especially for frequent memory operations. +% \subsection{Hardware Modifications:} +% The Bluespec design of the RISC-V processor will be modified to allow certain memory operations to bypass the TLB. This means that when a pointer with encoded offset and bounds is used, the system can directly compute the physical address from the capability information. +% This modification reduces the dependency on the TLB, decreasing latency and improving performance, especially for frequent memory operations. \section{Conclusion} %Title of the Conclusion This paper addresses the growing disparity between application workloads and the capacity of TLBs. To mitigate this gap, we proposed leveraging physically contiguous memory with CHERI bounds to reduce TLB walks. We designed a memory allocator which uses huge pages with CHERI CC scheme to track allocations within the -allocated huge page. This approach has helped reduce the number of TLB entries needed while using bounds +allocated huge page. This approach reduces the number of TLB entries needed while using bounds to minimize fragmentation. % Additionally, % the report explores advancements in system security, particularly through the Capability Hardware Enhanced RISC Instructions (CHERI) @@ -1008,7 +1048,7 @@ to minimize fragmentation. % restricting access to memory regions, and thus protecting against various security threats. Importantly, these mechanisms % can also improve the reduction of TLB walks to memory allocators by using CHERI bounds while maintaining CHERI's security guarantees. \newline -Comprehensive benchmarking demonstrates that the allocator reduces TLB misses by up to 90\%, +The benchmarks demonstrate 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 repurposing CHERI's capability-based model with the use of huge pages. diff --git a/docs/EuroSys/Paper/references.bib b/docs/EuroSys/Paper/references.bib index b03d8ac..4e42718 100644 --- a/docs/EuroSys/Paper/references.bib +++ b/docs/EuroSys/Paper/references.bib @@ -21,6 +21,17 @@ abstract = {While superpages are an efficient solution to increase TLB reach, st file = {Navarro - Practical, transparent operating system support fo.pdf:/Users/akilan/Zotero/storage/R9MSCWQX/Navarro - Practical, transparent operating system support fo.pdf:application/pdf}, } +@INPROCEEDINGS{TLBReach, + author={Pham, Binh and Bhattacharjee, Abhishek and Eckert, Yasuko and Loh, Gabriel H.}, + booktitle={2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA)}, + title={Increasing TLB reach by exploiting clustering in page translations}, + year={2014}, + volume={}, + number={}, + pages={558-567}, + keywords={Virtual private networks;Hardware;Organizations;Benchmark testing;Prefetching;Operating systems}, + doi={10.1109/HPCA.2014.6835964} + @article{DirectSegment, author = {Basu, Arkaprava and Gandhi, Jayneel and Chang, Jichuan and Hill, Mark D. and Swift, Michael M.}, title = {Efficient virtual memory for big memory servers}, diff --git a/docs/EuroSys/Paper/todo.org b/docs/EuroSys/Paper/todo.org new file mode 100644 index 0000000..94ea2fb --- /dev/null +++ b/docs/EuroSys/Paper/todo.org @@ -0,0 +1,60 @@ +- [ ] Captilisation fixes +- [ ] Check for unessary commas +- [ ] Check references +- [ ] Unify english grammer +- [ ] Text make to italics (For function calls) +- [ ] Space missing from bracket +- [ ] Utlizing to using +- [ ] Small number use word +- [ ] Check for unusual amount of commas and + String them into a sentence +- [ ] Make all past tense to present tense +- [ ] Comment out future work section +- [ ] Section with always captial S +- [ ] RMM fix reference + + ** Literature review + - [x] TLB reach needs defining + - [x] PTE acronym + - [x] Citation (HP Tunable page table) + - [x] CHERI standardise bullet points into a + paragraph. + + ** FAT address range table + - [x] Sentence 1 remove "talks about" + - [x] "Lesser pressure" FAT leverages to reduce pressure on the TLB + - [x] Fix "as show" to "as shown" + - [x] Remove "CHERI CC [4] as referred in section 3.2." + to "CHERI CC [4] (section 3.2)" + - [x] Explain Cheri CC in the literature review + - [x] Move Cheri CC reference to it has been observed + - [x] "With FAT rather than using fixed size TLB entries page sizes" + Rephrase this sentence. + - [x] "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. + + - [x] "To build up based on Section 3.1 and 3.2." + Remove this setence + - [x] "As demonstrated +384 with the allocator implementation in section 4" + Remove this sentence + - [x] "repcrecated" to "replicated" + + ** 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." + Rewrite this sentence + + ** Evaluation + - [x] 2nd para move to benchmarks section + - [x] "The results (section 5.3)... (comment out) + - [x] "The expirement setup" comment out + - [x] Replace "lesser" with fewer + - [x] "This observation highlights the importance" + Comment out + + ** Conclusion + - [x] "This approach has helped reduce" -> "This approach reduces" + - [x] "Remove comprehensive" diff --git a/docs/EuroSys/Paper/todo.org~ b/docs/EuroSys/Paper/todo.org~ new file mode 100644 index 0000000..d4a6790 --- /dev/null +++ b/docs/EuroSys/Paper/todo.org~ @@ -0,0 +1,60 @@ +- [ ] Captilisation fixes +- [ ] Check for unessary commas +- [ ] Check references +- [ ] Unify english grammer +- [ ] Text make to italics (For function calls) +- [ ] Space missing from bracket +- [ ] Utlizing to using +- [ ] Small number use word +- [ ] Check for unusual amount of commas and + String them into a sentence +- [ ] Make all past tense to present tense +- [ ] Comment out future work section +- [ ] Section with always captial S +- [ ] RMM fix reference + + ** Literature review + - [ ] TLB reach needs defining + - [ ] PTE acronym + - [ ] Citation (HP Tunable page table) + - [x] CHERI standardise bullet points into a + paragraph. + + ** FAT address range table + - [x] Sentence 1 remove "talks about" + - [x] "Lesser pressure" FAT leverages to reduce pressure on the TLB + - [x] Fix "as show" to "as shown" + - [x] Remove "CHERI CC [4] as referred in section 3.2." + to "CHERI CC [4] (section 3.2)" + - [ ] Explain Cheri CC in the literature review + - [x] Move Cheri CC reference to it has been observed + - [ ] "With FAT rather than using fixed size TLB entries page sizes" + Rephrase this sentence. + - [x] "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. + + - [x] "To build up based on Section 3.1 and 3.2." + Remove this setence + - [x] "As demonstrated +384 with the allocator implementation in section 4" + Remove this sentence + - [x] "repcrecated" to "replicated" + + ** Malloc implementation + - [ ] "Specifically, the start and end 448 addresses encoded in FAT to provide the necessary information 449 to identify the exact memory block to be deallocated." + Rewrite this sentence + + ** Evaluation + - [x] 2nd para move to benchmarks section + - [x] "The results (section 5.3)... (comment out) + - [x] "The expirement setup" comment out + - [x] Replace "lesser" with fewer + - [x] "This observation highlights the importance" + Comment out + + ** Conclusion + - [x] "This approach has helped reduce" -> "This approach reduces" + - [x] "Remove comprehensive"