saving current changes

This commit is contained in:
2025-04-03 16:41:26 +01:00
parent e885f0757e
commit 05cb379c0c
9 changed files with 2005 additions and 2645 deletions

View File

@@ -1,19 +1,5 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\citation{mittal_survey_2017}
@@ -22,88 +8,94 @@
\citation{woodruff_cheri_2019}
\@writefile{toc}{\contentsline {section}{Abstract}{1}{section*.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}\protected@file@percent }
\citation{chen_flexpointer_2023}
\citation{karakostas_redundant_2015}
\citation{woodruff_cheri_2019}
\citation{woodruff_cheri_2019}
\citation{woodruff_cheri_2019}
\@writefile{toc}{\contentsline {section}{\numberline {2}Fat-pointer Address Translations}{2}{section.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Encoding Ranges as Bounds to the Pointer}{2}{subsection.2.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}128 bit compressed bounds}{2}{subsection.2.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Instrumenting Block-Based Allocators with Physically Contiguous Memory}{2}{subsection.2.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Sample memory allocator design:}{2}{subsection.2.4}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces High overview architecture\relax }}{3}{figure.caption.3}\protected@file@percent }
\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
\newlabel{fig:HighOverviewArchitecture}{{1}{3}{High overview architecture\relax }{figure.caption.3}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Range of memory\relax }}{3}{figure.caption.4}\protected@file@percent }
\newlabel{fig:RangeOfMemory}{{2}{3}{Range of memory\relax }{figure.caption.4}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Fat-pointer Address Translations using huge pages\relax }}{3}{figure.caption.5}\protected@file@percent }
\newlabel{fig:HugePages}{{3}{3}{Fat-pointer Address Translations using huge pages\relax }{figure.caption.5}{}}
\citation{jemalloc}
\citation{cheribsd}
\@writefile{loa}{\contentsline {algorithm}{\numberline {1}{\ignorespaces Sample malloc implementation\relax }}{4}{algorithm.1}\protected@file@percent }
\newlabel{alg:malloc}{{1}{4}{Sample malloc implementation\relax }{algorithm.1}{}}
\@writefile{loa}{\contentsline {algorithm}{\numberline {2}{\ignorespaces Sample free implementation\relax }}{4}{algorithm.2}\protected@file@percent }
\newlabel{alg:free}{{2}{4}{Sample free implementation\relax }{algorithm.2}{}}
\@writefile{loa}{\contentsline {algorithm}{\numberline {3}{\ignorespaces Sample init alloc function to create a initial 1 GB huge page\relax }}{4}{algorithm.3}\protected@file@percent }
\newlabel{alg:initAlloc}{{3}{4}{Sample init alloc function to create a initial 1 GB huge page\relax }{algorithm.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Evaluation}{4}{section.3}\protected@file@percent }
\citation{Morello}
\citation{BenchmarkABI}
\citation{PerformanceCounter}
\citation{Benchmark}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Expirement setup}{5}{subsection.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Benchmarks}{5}{subsection.3.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}Micro benchmark}{5}{subsubsection.3.2.1}\protected@file@percent }
\newlabel{sec:org41c278c}{{1}{5}{Micro benchmark}{Item.3}{}}
\newlabel{sec:org89020f2}{{2}{5}{Micro benchmark}{Item.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Results}{5}{subsection.3.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Usability}{6}{subsection.3.4}\protected@file@percent }
\newlabel{sec:orgd6ba6f0}{{3.4}{6}{Usability}{subsection.3.4}{}}
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces ARM performance counters\relax }}{6}{table.caption.6}\protected@file@percent }
\newlabel{tab:org246a883}{{1}{6}{ARM performance counters\relax }{table.caption.6}{}}
\citation{panwar_hawkeye_2019}
\citation{THP}
\citation{Shadow_superpages}
\citation{DirectSegment}
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Percentage difference between the modified memory allocator against the default system memory allocator\relax }}{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\relax }{figure.caption.7}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Kmeans COZ benchmark executed against various cluster sizes\relax }}{7}{figure.caption.8}\protected@file@percent }
\newlabel{fig:org8683315}{{5}{7}{Kmeans COZ benchmark executed against various cluster sizes\relax }{figure.caption.8}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4}Related work}{7}{section.4}\protected@file@percent }
\newlabel{sec:org0e192da}{{4}{7}{Related work}{section.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Huge Pages}{7}{subsection.4.1}\protected@file@percent }
\citation{karakostas_redundant_2015}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Direct Segment}{8}{subsection.4.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Range Memory Mapping (RMM)}{8}{subsection.4.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}CHERI}{8}{subsection.4.4}\protected@file@percent }
\newlabel{sec:orgbf2eaac}{{4.4}{8}{CHERI}{subsection.4.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5}Future work}{8}{section.5}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Storing Offsets Directly on Pointers}{8}{subsection.5.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Hardware Modifications:}{8}{subsection.5.2}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {6}Conclusion}{8}{section.6}\protected@file@percent }
\citation{chen_flexpointer_2023}
\citation{karakostas_redundant_2015}
\@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 {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}
\citation{woodruff_cheri_2019}
\citation{woodruff_cheri_2019}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Encoding Ranges as Bounds to the Pointer}{3}{subsection.3.1}\protected@file@percent }
\@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}{3}{subsection.3.3}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {4}Memory allocator design}{3}{section.4}\protected@file@percent }
\newlabel{sec:MemoryAllocator}{{4}{3}{Memory allocator design}{section.4}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces High overview architecture}}{4}{figure.caption.3}\protected@file@percent }
\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
\newlabel{fig:HighOverviewArchitecture}{{1}{4}{High overview architecture}{figure.caption.3}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Range of memory}}{4}{figure.caption.4}\protected@file@percent }
\newlabel{fig:RangeOfMemory}{{2}{4}{Range of memory}{figure.caption.4}{}}
\@writefile{loa}{\contentsline {algorithm}{\numberline {1}{\ignorespaces Malloc implementation}}{4}{algorithm.1}\protected@file@percent }
\newlabel{alg:malloc}{{1}{4}{Malloc implementation}{algorithm.1}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Fat-pointer Address Translations using huge pages}}{4}{figure.caption.5}\protected@file@percent }
\newlabel{fig:HugePages}{{3}{4}{Fat-pointer Address Translations using huge pages}{figure.caption.5}{}}
\citation{jemalloc}
\citation{cheribsd}
\citation{Morello}
\citation{BenchmarkABI}
\@writefile{loa}{\contentsline {algorithm}{\numberline {2}{\ignorespaces Free implementation}}{5}{algorithm.2}\protected@file@percent }
\newlabel{alg:free}{{2}{5}{Free implementation}{algorithm.2}{}}
\@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 }
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Experiment setup}{5}{subsection.5.1}\protected@file@percent }
\citation{PerformanceCounter}
\citation{Benchmark}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Benchmarks}{6}{subsection.5.2}\protected@file@percent }
\newlabel{sec:org41c278c}{{5.2.1}{6}{Micro benchmark}{subsubsection.5.2.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.1}Micro benchmark}{6}{subsubsection.5.2.1}\protected@file@percent }
\newlabel{sec:org89020f2}{{5.2.2}{6}{Macro benchmark}{subsubsection.5.2.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.2}Macro benchmark}{6}{subsubsection.5.2.2}\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}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Results}{7}{subsection.5.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Usability}{7}{subsection.5.4}\protected@file@percent }
\newlabel{sec:orgd6ba6f0}{{5.4}{7}{Usability}{subsection.5.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {6}Future work}{7}{section.6}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Storing Offsets Directly on Pointers}{7}{subsection.6.1}\protected@file@percent }
\bibstyle{unsrt}
\bibdata{paperReferences}
\bibcite{mittal_survey_2017}{{1}{}{{}}{{}}}
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Percentage difference between the modified memory allocator against the default system memory allocator}}{8}{figure.caption.7}\protected@file@percent }
\newlabel{fig:bargraph}{{4}{8}{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}}{8}{figure.caption.8}\protected@file@percent }
\newlabel{fig:org8683315}{{5}{8}{Kmeans COZ benchmark executed against various cluster sizes}{figure.caption.8}{}}
\@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 }
\bibcite{panwar_hawkeye_2019}{{2}{}{{}}{{}}}
\bibcite{woodruff_cheri_2014}{{3}{}{{}}{{}}}
\bibcite{woodruff_cheri_2019}{{4}{}{{}}{{}}}
\bibcite{chen_flexpointer_2023}{{5}{}{{}}{{}}}
\bibcite{karakostas_redundant_2015}{{6}{}{{}}{{}}}
\bibcite{jemalloc}{{7}{}{{}}{{}}}
\bibcite{cheribsd}{{8}{}{{}}{{}}}
\bibcite{Morello}{{9}{}{{}}{{}}}
\bibcite{BenchmarkABI}{{10}{}{{}}{{}}}
\bibcite{PerformanceCounter}{{11}{}{{}}{{}}}
\bibcite{Benchmark}{{12}{}{{}}{{}}}
\bibcite{THP}{{13}{}{{}}{{}}}
\bibcite{Shadow_superpages}{{14}{}{{}}{{}}}
\bibcite{DirectSegment}{{15}{}{{}}{{}}}
\bibcite{THP}{{5}{}{{}}{{}}}
\bibcite{Shadow_superpages}{{6}{}{{}}{{}}}
\bibcite{DirectSegment}{{7}{}{{}}{{}}}
\bibcite{karakostas_redundant_2015}{{8}{}{{}}{{}}}
\bibcite{chen_flexpointer_2023}{{9}{}{{}}{{}}}
\bibcite{jemalloc}{{10}{}{{}}{{}}}
\bibcite{cheribsd}{{11}{}{{}}{{}}}
\bibcite{Morello}{{12}{}{{}}{{}}}
\bibcite{BenchmarkABI}{{13}{}{{}}{{}}}
\bibcite{PerformanceCounter}{{14}{}{{}}{{}}}
\bibcite{Benchmark}{{15}{}{{}}{{}}}
\newlabel{tocindent-1}{0pt}
\newlabel{tocindent0}{0pt}
\newlabel{tocindent1}{4.185pt}
\newlabel{tocindent2}{10.34999pt}
\newlabel{tocindent3}{18.198pt}
\newlabel{tocindent4}{0pt}
\newlabel{tocindent5}{0pt}
\providecommand\NAT@force@numbers{}\NAT@force@numbers
\@writefile{toc}{\contentsline {section}{References}{9}{section*.10}\protected@file@percent }
\newlabel{TotPages}{{9}{9}{}{page.9}{}}

View File

@@ -28,11 +28,21 @@ Jonathan Woodruff, Alexandre Joannou, Hongyan Xia, Anthony Fox, Robert~M.
\newblock {CHERI} concentrate: Practical compressed capabilities.
\newblock 68(10):1455--1469.
\bibitem{chen_flexpointer_2023}
Dongwei Chen, Dong Tong, Chun Yang, Jiangfang Yi, and Xu~Cheng.
\newblock {FlexPointer}: Fast address translation based on range {TLB} and
tagged pointers.
\newblock 20(2):1--24.
\bibitem{THP}
Juan Navarro.
\newblock Practical, transparent operating system support for superpages.
\bibitem{Shadow_superpages}
Cheol~Ho Park and Daeyeon Park.
\newblock Aggressive superpage support with the shadow memory and the
partial-subblock tlb.
\newblock {\em Microprocessors and Microsystems}, 25(7):329--342, 2001.
\bibitem{DirectSegment}
Arkaprava Basu, Jayneel Gandhi, Jichuan Chang, Mark~D. Hill, and Michael~M.
Swift.
\newblock Efficient virtual memory for big memory servers.
\newblock {\em SIGARCH Comput. Archit. News}, 41(3):237248, June 2013.
\bibitem{karakostas_redundant_2015}
Vasileios Karakostas, Jayneel Gandhi, Furkan Ayar, Adrián Cristal, Mark~D.
@@ -42,6 +52,12 @@ Vasileios Karakostas, Jayneel Gandhi, Furkan Ayar, Adrián Cristal, Mark~D.
\newblock In {\em Proceedings of the 42nd Annual International Symposium on
Computer Architecture}, pages 66--78. {ACM}.
\bibitem{chen_flexpointer_2023}
Dongwei Chen, Dong Tong, Chun Yang, Jiangfang Yi, and Xu~Cheng.
\newblock {FlexPointer}: Fast address translation based on range {TLB} and
tagged pointers.
\newblock 20(2):1--24.
\bibitem{jemalloc}
{JEMALLOC}.
@@ -69,20 +85,4 @@ Arm architecture reference manual for a-profile architecture.
{CHERI}-allocator/benchmarks/benchmarks/{StressTestMalloc}/glibc-bench.c at
main · akilan1999/{CHERI}-allocator.
\bibitem{THP}
Juan Navarro.
\newblock Practical, transparent operating system support for superpages.
\bibitem{Shadow_superpages}
Cheol~Ho Park and Daeyeon Park.
\newblock Aggressive superpage support with the shadow memory and the
partial-subblock tlb.
\newblock {\em Microprocessors and Microsystems}, 25(7):329--342, 2001.
\bibitem{DirectSegment}
Arkaprava Basu, Jayneel Gandhi, Jichuan Chang, Mark~D. Hill, and Michael~M.
Swift.
\newblock Efficient virtual memory for big memory servers.
\newblock {\em SIGARCH Comput. Archit. News}, 41(3):237248, June 2013.
\end{thebibliography}

View File

@@ -1,4 +1,4 @@
This is BibTeX, Version 0.99d (TeX Live 2022)
This is BibTeX, Version 0.99d (TeX Live 2025)
Capacity: max_strings=200000, hash_size=200000, hash_prime=170003
The top-level auxiliary file: paper.aux
The style file: unsrt.bst
@@ -20,11 +20,11 @@ Warning--empty journal in woodruff_cheri_2014
Warning--empty year in woodruff_cheri_2014
Warning--empty journal in woodruff_cheri_2019
Warning--empty year in woodruff_cheri_2019
Warning--empty journal in chen_flexpointer_2023
Warning--empty year in chen_flexpointer_2023
Warning--empty year in karakostas_redundant_2015
Warning--empty journal in THP
Warning--empty year in THP
Warning--empty year in karakostas_redundant_2015
Warning--empty journal in chen_flexpointer_2023
Warning--empty year in chen_flexpointer_2023
You've used 15 entries,
1791 wiz_defined-function locations,
522 strings with 6536 characters,

View File

@@ -1,228 +1,227 @@
# Fdb version 3
["bibtex paper"] 1741802261 "paper.aux" "paper.bbl" "paper" 1741802263
"/usr/local/texlive/2022/texmf-dist/bibtex/bst/base/unsrt.bst" 1292289607 18030 1376b4b231b50c66211e47e42eda2875 ""
"paper.aux" 1741802263 7785 781aae7fe100718ccd4649f95940a653 "pdflatex"
"paperReferences.bib" 1740927020 43881 89a1490784dad1fc6ac99d5562dad496 ""
# Fdb version 4
["bibtex paper"] 1743691797.52386 "paper.aux" "paper.bbl" "paper" 1743691799.22059 0
"./paperReferences.bib" 1740927020.63231 43881 89a1490784dad1fc6ac99d5562dad496 ""
"/usr/local/texlive/2025/texmf-dist/bibtex/bst/base/unsrt.bst" 1292289607 18030 1376b4b231b50c66211e47e42eda2875 ""
"paper.aux" 1743691798.89658 7542 b79ea1cba94bca38f389744af310d596 "pdflatex"
(generated)
"paper.bbl"
"paper.blg"
["pdflatex"] 1741802262 "paper.tex" "paper.pdf" "paper" 1741802263
"/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_25tcsq.enc" 1490131464 2921 8ca0eb0831f9bc5da080d3697cfe67bf ""
"/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc" 1490131464 2933 9ad527ce78d7c5fa0a642dead095f172 ""
"/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_7grukw.enc" 1490131464 2934 a4a9158faed2e9e89c771b4e3b7fc12f ""
"/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc" 1490131464 3357 5261ce65ba03aef9faf6135657b9abb6 ""
"/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_ncsllp.enc" 1490131464 3288 25b5d43be7be8cba51d85b642598b3b0 ""
"/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_nh77jq.enc" 1490131464 2933 8d808fcabf70c6c809bb14c283ece4da ""
"/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_oexx6f.enc" 1490131464 2807 3bc923a7d38598e901b235df221224cb ""
"/usr/local/texlive/2022/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm0900.tfm" 1136768653 3584 d3d8ac8b25ca19c0a40b86a5db1e8ccc ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm" 1246382020 916 f87d7c45f9c908e672703b83b72241a3 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm" 1246382020 924 9904cf1d39e9767e7a3622f2a125a565 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm" 1246382020 928 2dc8d444221b7a635bb58038579b861a ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm" 1246382020 908 2921f8a10601f252058503cc6570e581 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm" 1246382020 940 75ac932a52f80982a9f8ea75d03a34cf ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm" 1246382020 940 228d6584342e91276bf566bcf9716b83 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr9.tfm" 1136768653 1292 6b21b9c2c7bebb38aa2273f7ca0fb3af ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumT-tlf-t1--base.tfm" 1490131464 1744 9486ddc64e90094bbb83f53a83b0e415 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumT-tlf-t1.tfm" 1490131464 19548 768852037f39958c435d71846b8877ea ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTB-tlf-t1--base.tfm" 1490131464 1768 23aace73e6def3193d6e0453af90487b ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTB-tlf-t1.tfm" 1490131464 19416 aedd2db224ad278ddf2c411f52d86014 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTI-tlf-t1--base.tfm" 1490131464 1988 34f48347175f643e8b2134cd8f7a90a3 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTI-tlf-t1.tfm" 1490131464 20012 beadc3a52552515981c78cd731a40afe ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1--base.tfm" 1490131464 1396 948c4e08512f70c39fade285ab551221 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm" 1490131464 5612 e018d44ec5e7a3b3574b3a9598e8e279 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-sc-t1--base.tfm" 1490131464 1700 eb1903cb93ada6655f6ace5bcfb0a2dd ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-sc-t1.tfm" 1490131464 15404 b4ba91f16bd331695200640fa8131f38 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1--base.tfm" 1490131464 1740 2943dd2ba1dcd3849599663c1d2693ef ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm" 1490131464 19504 bdf9fb416f5a91bf56b1ccda887f5b91 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ts1--base.tfm" 1490131464 1488 9b803beb26c181b228c4fde93d4398a3 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ts1.tfm" 1490131464 1516 5e35377e77f0326136c4078d4c186a36 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1--base.tfm" 1490131464 1724 248b3a23a2f748bd3089e9d3118d991e ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1.tfm" 1490131464 19488 f569478ca339d9b5ad93b46bf7a470e2 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1--base.tfm" 1490131464 1932 54655639067fe21ae3b23b77173351a5 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1.tfm" 1490131464 19920 63bb3db95807ffe45b0900d104896325 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/LibertineMathMI.tfm" 1569879884 1552 f91250a4f6e3f34d48dfc8f34aabc764 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/NewTXMI.tfm" 1572128992 1408 ef71a9098da4d5a1a85b5920860b6731 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm" 1589834365 760 e8ec875a87aa119f1af7ea4be48da9e8 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm" 1621283831 1772 c3eb2dc3ad7612f6f7ffa1b18d45b0b9 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy.tfm" 1583272976 2000 33f20474c9fe1489d6907a37300dec5a ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy5.tfm" 1634244313 1992 abaef3b41fc3d8fb873ff0f2a1fe23cc ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy7.tfm" 1634244313 1964 4014158e8fc3b36011b2c5716946c6e0 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm" 1589834365 1028 2f6cbe812325cff65b38e4c0a517f4cb ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm" 1589834365 1572 ee1610f2b8e0679b918f57086595f5a6 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi.tfm" 1569879884 3284 b46311ccaa7f6b514eba481b40575544 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi5.tfm" 1569879884 3308 547f06fb56819535c1e0ce385c4f647b ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi7.tfm" 1575323900 3320 6cf9c990505795806c1f3ac537f356c3 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm" 1617586172 2616 0bf54bdee01e38e3ed8342d25e5584f6 ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/stxscr.tfm" 1569879884 1836 3af1bb0996e7f6070b70151de6395c2c ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/txex-bar.tfm" 1487028062 872 42a11c392ad05634fee0c67e353926cf ""
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/txsys.tfm" 1569879884 1580 8da1d0227b68d95a2f0ea5709b29fc83 ""
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinBiolinumT.pfb" 1354061736 548786 1e51d517556d29f2841d57da58668a69 ""
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinBiolinumTB.pfb" 1354061736 687959 b99c9f5a9b28f3dba077d1c078bceb3f ""
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinBiolinumTI.pfb" 1354061736 879384 e498f90c951041b56f91c0ffbf77a9d2 ""
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinLibertineT.pfb" 1354061736 614791 ea39341e4db76f25cb20c361802d3cd5 ""
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinLibertineTB.pfb" 1354061736 538965 19c5c8b7f952ac97afb8565e9c21a82d ""
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinLibertineTI.pfb" 1354061736 490980 e27f1e217a0902faea22205f197918d4 ""
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/newtx/LibertineMathMI.pfb" 1569879884 35829 268d1d114c9114e541f92817aec4230d ""
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/newtx/NewTXMI.pfb" 1572128992 32409 1452fa0ce4fabfb48acd5d077e296f6d ""
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/newtx/txsys.pfb" 1569879884 40320 53cb337366eff502cad8f44871c88e39 ""
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinBiolinumT-tlf-t1.vf" 1490131464 1728 e76e04a950024a95b620698b679c9810 ""
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinBiolinumTB-tlf-t1.vf" 1354061736 1728 4ae633ddccb76ba8d0a0906a5e2e8fdf ""
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinBiolinumTI-tlf-t1.vf" 1354061736 1728 0f47a4d345513e0ad2e29d47540d4f2a ""
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-ot1.vf" 1490131464 968 b4daf26f130460f16d670da7f3f6963f ""
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-sc-t1.vf" 1354061736 1732 19a98a3416ac208cfc1e8cd877852bec ""
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-t1.vf" 1354061736 1728 b078a050f24d7649619baa987d7216d8 ""
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-ts1.vf" 1490131464 640 f2633b196ddbd644937d19e300a5024e ""
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineTB-tlf-t1.vf" 1490131464 1768 5d66dfd9709f1f38b8fb3cb38db46402 ""
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineTI-tlf-t1.vf" 1490131464 1768 b3bfd8ed1fe2dce5fd19610abe4c3dbe ""
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/newtx/ntxsy.vf" 1583272976 1772 98ec0ab31216e818611c784f60ef51a5 ""
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/newtx/nxlmi.vf" 1569879884 2744 3e5ba39e1559219ae379b7645e2f9524 ""
"/usr/local/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty" 1572645307 492 1994775aa15b0d1289725a0b1bbc2d4c ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty" 1644112042 7237 bdd120a32c8fdb4b433cf9ca2e7cd98a ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty" 1572645307 1057 525c2192b5febbd8c1f662c9468335bb ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty" 1572645307 488 4565444a3e75e59cb2702dc42e18f482 ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/kastrup/binhex.tex" 1215376579 2553 4b99aa9667b708dd355926023d705446 ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty" 1576624944 13807 952b0226d4efca026f0e19dd266dcc22 ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1600895880 17859 4409f8f50cd365c68e684407e5350b1b ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/pdftex/glyphtounicode.tex" 1353199370 216747 92ec6cf8e39216b4894417b5aa6f057a ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1593379760 20089 80423eac55aa175305d35b49e04fe23b ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-pdfdoc.def" 1575152242 5108 8920602307ea1294ccbce2300c7c6ccb ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-utf8.def" 1575152242 11635 4fd2019d04ad095a0b1bde5aaed4a70e ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/stringenc.sty" 1575152242 21514 b7557edcee22835ef6b03ede1802dad4 ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/xkeyval/keyval.tex" 1605910342 2725 9f5d0b27f1f9a620c6ea983d6d41501d ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/xkeyval/xkeyval.tex" 1605910342 19231 3cbf682090baecad8e17a66b7a271ed1 ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/xkeyval/xkvutils.tex" 1605910342 7677 cf3e6aa6a8d444f55327f61df80bfa0c ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.sty" 1544223003 123 a302f2c651a95033260db60e51527ae8 ""
"/usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.tex" 1626900402 48190 9b86e8476d1d94df049e99d192261166 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/acmart/acmart.cls" 1645649519 107215 f266b4b57779f01e797a00fdef75e4bd ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty" 1160617237 26750 ce139c05a983e19ddca355b43e29c395 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty" 1160617237 3457 d9077efe6b74c5a094199256af8d7d9a ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty" 1251330371 3249 15763257e50278eef5db1952ccde229c ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsart.cls" 1591045760 61881 a7369c346c2922a758ae6283cc1ed014 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1359763108 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsa.fd" 1359763108 961 6518c6525a34feb5e8250ffa91731cff ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsb.fd" 1359763108 961 d02606146ba5601b5645f987c92e6193 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1622667781 2222 da905dc1db75412efd2d8f67739f0596 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty" 1622667781 4173 bc0410bcccdff806d6132d3c1ef35481 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty" 1636758526 87648 07fbb6e9169e00cb2a2f40b31b2dbf3c ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty" 1636758526 4128 8eea906621b6639f7ba476a472036bbe ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty" 1636758526 2444 926f379cc60fcf0c6e3fee2223b4370d ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/atveryend/atveryend.sty" 1576191570 19336 ce7ae9438967282886b3b036cfad1e4d ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/base/atbegshi-ltx.sty" 1636758526 3034 3bfb87122e6fa8758225c0dd3cbaceba ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/base/atveryend-ltx.sty" 1636758526 2462 754d6b31b2ab5a09bb72c348ace2ec75 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty" 1622581934 4946 461cc78f6f26901410d9f1d725079cc6 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty" 1622581934 5157 f308c7c04889e16c588e78aa42599fae ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty" 1622581934 2894 55431114fc0e491ecee275edafd6c881 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty" 1579038678 6078 f1cb470c9199e7110a27851508ed7a5c ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption-ams-smf.sto" 1645391520 2176 c0bb71a9780b6b41388cfa629b1a32f7 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption.sty" 1647548653 54291 b8e5c600d4aa37b48a740dd2a6c26163 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty" 1647548653 71241 d2cd3a1c5acef9cb31f945b93c0bb6e3 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/cmap/cmap.sty" 1612650595 3574 ddc11a0ae1c579d351ed20d2319ad422 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/cmap/ot1.cmap" 1177721415 1207 4e0d96772f0d338847cbfb4eca683c81 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/cmap/t1.cmap" 1215522782 1938 beaa4a8467aa0074076e0e19f2992e29 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/comment/comment.sty" 1472166125 10197 204f75d5d8d88aa345a8c402e879e63b ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty" 1607465154 6990 c19f0e2ee25970cd4873c23ce67e5a94 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/environ/environ.sty" 1399239813 4378 f429f0da968c278653359293040a8f52 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty" 1601931149 46845 3b58f70c6e861a13d927bff09d35ecbc ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/everyshi/everyshi.sty" 1606256234 2368 ef01f98551a0f54407358b67f8a6c5e1 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1612734021 17086 7ed8cbc4d361ec87392817e0dd4f65ec ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty" 1137110151 6749 16d2656a1984957e674b149555f1ea1d ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/fontaxes/fontaxes.sty" 1595539507 14310 41fdb35c51be792ddf00696848d0cfef ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty" 1578002852 41601 9cf6c5257b1bc7af01a58859749dd37a ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def" 1601931164 19103 48d29b6e2a64cb717117ef65f107b404 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/color.sty" 1639603921 7197 eb6c1ebf41667a05cb50c23c19d5e8bc ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty" 1622581934 18399 7e40f80366dffb22c0e7b70517db5cb4 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty" 1636758526 7996 a8fb260d598dcaf305a7ae7b9c3e3229 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty" 1622581934 2671 4de6781a30211fe0ea4c672e4a2a8166 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty" 1636758526 4009 187ea2dc3194cd5a76cd99a8d7a6c4d0 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/grffile/grffile.sty" 1573594974 1499 e43bb281163d9895e141f684cfc2da7e ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hpdftex.def" 1645564115 49029 7c9e5115b2217efbeb7828ac0d1bf1a0 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty" 1645564115 220999 6145ea83914c186e178d1d31c50b37df ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/nameref.sty" 1612734870 13242 133e617c5eebffdd05e421624022b267 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/pd1enc.def" 1645564115 14132 e8e7e61e51ade521a7238fac8362786c ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/puenc.def" 1645564115 117004 ed1c2cc82bb9836e9d59549dd8c33098 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty" 1606083562 61409 611a1d217ee1bcaa96feb7a3165f8767 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty" 1525197427 318 019510c713feab56160631df4423d2aa ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty" 1558214095 4319 14e5db0b68d045ed49e4ed232b58e93f ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1602274869 22521 d2fceb764a442a2001d257ef11db7618 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1644269979 29921 d0acc05a38bd4aa3af2017f0b7c137ce ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/l3kernel/expl3.sty" 1645736062 6107 e082261f9677386795d8bf6b6254fa9d ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty" 1642022539 4674 ac560df2ef76ab2c406a4948a48f79f8 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/LinLibertine_I.tex" 1355443847 24957 22a8dc56372173d7ffa65753dfc6757e ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/OT1LinuxLibertineT-TLF.fd" 1490131464 3019 024cbcf380053dddffd4ac0b44aac808 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd" 1490131464 2264 2324ece7d4d2a7fa3c2138d120196405 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/T1LinuxLibertineT-TLF.fd" 1490131464 2980 15412b63bb0119ade194e089fff355d4 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF.fd" 1490131464 1689 42435c12d9d3dc0c446eb02409690ab9 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty" 1585343451 19187 009694a9db31ccbf28809b85025a2e3d ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex" 1632168149 95525 6fd0552101a6b1f9b7a84b402ec435ba ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.sty" 1632168149 14690 c2c754218a7108db7823a4839c1bc3cd ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.cfg" 1585170648 1830 e31effa752c61538383451ae21332364 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.sty" 1585170648 80964 64e57373f36316e4a09b517cbf1aba2e ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/listings/lstmisc.sty" 1585170648 77022 ee25ce086f4a79d8cf73bac6f94c02a5 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype-pdftex.def" 1647374306 48187 dc49d7ea7b8a3fa75e04c799929703b9 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.cfg" 1647374306 26646 da004eb274e0158774539ced5cafcb54 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.sty" 1647374306 90503 376660e75505e801f0c4fd36fb88b54c ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/mt-msa.cfg" 1645649607 5929 c3d8b4090f819eea493a446d04c35664 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/mt-msb.cfg" 1645649607 5594 c9a8b7ef6240cf465b2480ea05ec0128 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/mmap/oml.cmap" 1215649417 1866 c1c12138091b4a8edd4a24a940e6f792 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/mweights/mweights.sty" 1490909540 4953 67f29a12ea26221103fce6bae3433e60 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/natbib/natbib.sty" 1291685959 45456 1c8843383c0bd05870c45fa0ebea6cc2 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/manyfoot.sty" 1564869456 12626 1a53db73f820034b2ec9e401e205b159 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/nccfoots.sty" 1137110429 1189 756b2502150ce6dc2179faebbd40e701 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/lmsntxsy.fd" 1634244313 1140 ee5963b0c88b5c4f92fed61a27034b79 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/lmxntxexx.fd" 1471383769 549 70a2497c311fc8b19acb02f7607eb4e9 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty" 1646341564 139800 6fd209c21f962864db11ffa77d4a2c22 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/omlnxlmi.fd" 1387148426 3537 d34ce3dbfa1b807fe48744508a5473e9 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxexa.fd" 1376004569 558 91031960917530f42e0f8fc4d1db1550 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxmia.fd" 1596661975 3832 57dfbcfb6f19c9f63a28ca1bfda0abe2 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxsyc.fd" 1376004569 558 e8967b9c8273bc0c05b993fe92a9b757 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxsym.fd" 1427059306 561 d8e97a03c5c4248c2bf6d144fffb97f7 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/centernot.sty" 1575152444 1640 c9cca60f81c5839b9a3e794d72c0b0a7 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/ifdraft.sty" 1575152444 1922 5bdcc31b0573e5e7f31c36f1b88b6a7d ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/preprint/balance.sty" 1137110595 3366 d938ad2440edc1ea1c9042843580ec42 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1575674187 9715 b051d5b493d9fe5f4bc251462d039e5f ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/sttools/stfloats.sty" 1633983922 24057 ff20efb65b128d27c08eac20ec07f540 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/textcase/textcase.sty" 1568497026 2156 a092fd3ecd0a13fd597725ee6894b032 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty" 1137110984 7670 b07e668265cf485332abe582e7ed306e ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/trimspaces/trimspaces.sty" 1253232110 1380 971a51b00a14503ddf754cab24c3f209 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/upquote/upquote.sty" 1334873510 1048 517e01cde97c1c0baf72e69d43aa5a2e ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty" 1635798903 56029 3f7889dab51d620aa43177c391b7b190 ""
"/usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty" 1605910342 4902 efb3d66683a2da2a232f71e3a571a899 ""
"/usr/local/texlive/2022/texmf-dist/web2c/texmf.cnf" 1646502317 40171 cdab547de63d26590bebb3baff566530 ""
"/usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1647878959 4410336 7d30a02e9fa9a16d7d1f8d037ba69641 ""
"/usr/local/texlive/2022/texmf-var/web2c/pdftex/pdflatex.fmt" 1661249257 2826440 c4fb37ef223f1d0b7571cc2822c67358 ""
"/usr/local/texlive/2022/texmf.cnf" 1647878952 577 209b46be99c9075fd74d4c0369380e8c ""
"diagram/AllocationOverview24.png" 1740922321 45834 e2cfc13e3970cce298f0396858ac1356 ""
"diagram/HighOverviewArchitecture.drawio.png" 1740922321 152902 4b92f7b86b6525c26112d4fd5935c951 ""
"diagram/TLBAccess.drawio.png" 1740922321 77522 75367f218335fe386db852966a892e9b ""
"diagram/bargraph.png" 1740924635 74263 65509d21744edc6c9ca02b8c67d664fb ""
"diagram/kmeans.png" 1740924635 94217 5d14308c169ff296bf499805b9823aa6 ""
"paper.aux" 1741802263 7785 781aae7fe100718ccd4649f95940a653 "pdflatex"
"paper.bbl" 1741802262 3371 42d48b9e206e960f4b2353f982d16d50 "bibtex paper"
"paper.out" 1741802263 3798 e22d4f36e6b91afd72be221cc622de73 "pdflatex"
"paper.tex" 1741802253 76328 2330f7be124bee9ff27f5c9b6d8c3205 ""
(rewritten before read)
["pdflatex"] 1743691797.61372 "paper.tex" "paper.pdf" "paper" 1743691799.22072 0
"/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_7grukw.enc" 1490131464 2934 a4a9158faed2e9e89c771b4e3b7fc12f ""
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc" 1490131464 3357 5261ce65ba03aef9faf6135657b9abb6 ""
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_ncsllp.enc" 1490131464 3288 25b5d43be7be8cba51d85b642598b3b0 ""
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_nh77jq.enc" 1490131464 2933 8d808fcabf70c6c809bb14c283ece4da ""
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_oexx6f.enc" 1490131464 2807 3bc923a7d38598e901b235df221224cb ""
"/usr/local/texlive/2025/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm0900.tfm" 1136768653 3584 d3d8ac8b25ca19c0a40b86a5db1e8ccc ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm" 1246382020 916 f87d7c45f9c908e672703b83b72241a3 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm" 1246382020 924 9904cf1d39e9767e7a3622f2a125a565 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm" 1246382020 928 2dc8d444221b7a635bb58038579b861a ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm" 1246382020 908 2921f8a10601f252058503cc6570e581 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm" 1246382020 940 75ac932a52f80982a9f8ea75d03a34cf ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm" 1246382020 940 228d6584342e91276bf566bcf9716b83 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/cm/cmr9.tfm" 1136768653 1292 6b21b9c2c7bebb38aa2273f7ca0fb3af ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinBiolinumT-tlf-t1--base.tfm" 1490131464 1744 9486ddc64e90094bbb83f53a83b0e415 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinBiolinumT-tlf-t1.tfm" 1490131464 19548 768852037f39958c435d71846b8877ea ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTB-tlf-t1--base.tfm" 1490131464 1768 23aace73e6def3193d6e0453af90487b ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTB-tlf-t1.tfm" 1490131464 19416 aedd2db224ad278ddf2c411f52d86014 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTI-tlf-t1--base.tfm" 1490131464 1988 34f48347175f643e8b2134cd8f7a90a3 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTI-tlf-t1.tfm" 1490131464 20012 beadc3a52552515981c78cd731a40afe ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1--base.tfm" 1490131464 1396 948c4e08512f70c39fade285ab551221 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm" 1490131464 5612 e018d44ec5e7a3b3574b3a9598e8e279 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-sc-t1--base.tfm" 1490131464 1700 eb1903cb93ada6655f6ace5bcfb0a2dd ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-sc-t1.tfm" 1490131464 15404 b4ba91f16bd331695200640fa8131f38 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1--base.tfm" 1490131464 1740 2943dd2ba1dcd3849599663c1d2693ef ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm" 1490131464 19504 bdf9fb416f5a91bf56b1ccda887f5b91 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ts1--base.tfm" 1490131464 1488 9b803beb26c181b228c4fde93d4398a3 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ts1.tfm" 1490131464 1516 5e35377e77f0326136c4078d4c186a36 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1--base.tfm" 1490131464 1724 248b3a23a2f748bd3089e9d3118d991e ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1.tfm" 1490131464 19488 f569478ca339d9b5ad93b46bf7a470e2 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1--base.tfm" 1490131464 1932 54655639067fe21ae3b23b77173351a5 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1.tfm" 1490131464 19920 63bb3db95807ffe45b0900d104896325 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/LibertineMathMI.tfm" 1569879884 1552 f91250a4f6e3f34d48dfc8f34aabc764 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/NewTXMI.tfm" 1572128992 1408 ef71a9098da4d5a1a85b5920860b6731 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm" 1589834365 760 e8ec875a87aa119f1af7ea4be48da9e8 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm" 1699567298 1788 252bc928adbd02cba8c68f0fccd62f6c ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsy.tfm" 1724614892 2024 35d8be81d65a081fa18ab2ba93aeb166 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsy5.tfm" 1724614892 2032 f45c629943b6f098ea13e1db6040dab0 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsy7.tfm" 1724614892 2000 c8518036fe884fa294a1eeb2da3075ed ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm" 1589834365 1028 2f6cbe812325cff65b38e4c0a517f4cb ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm" 1693080977 1560 755acbe6da75f914298c79fa8bb324fd ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/nxlmi.tfm" 1569879884 3284 b46311ccaa7f6b514eba481b40575544 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/nxlmi5.tfm" 1569879884 3308 547f06fb56819535c1e0ce385c4f647b ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/nxlmi7.tfm" 1575323900 3320 6cf9c990505795806c1f3ac537f356c3 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm" 1617586172 2616 0bf54bdee01e38e3ed8342d25e5584f6 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/stxscr.tfm" 1569879884 1836 3af1bb0996e7f6070b70151de6395c2c ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/txex-bar.tfm" 1699567298 900 fc8190d6de1e520c751c99f1e4e5fe0a ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/txsys.tfm" 1724614892 1656 68b5079c64f1cefe2cf442b6a60cf2fd ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinBiolinumT.pfb" 1354061736 548786 1e51d517556d29f2841d57da58668a69 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinBiolinumTB.pfb" 1354061736 687959 b99c9f5a9b28f3dba077d1c078bceb3f ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinBiolinumTI.pfb" 1354061736 879384 e498f90c951041b56f91c0ffbf77a9d2 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinLibertineT.pfb" 1354061736 614791 ea39341e4db76f25cb20c361802d3cd5 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinLibertineTB.pfb" 1354061736 538965 19c5c8b7f952ac97afb8565e9c21a82d ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinLibertineTI.pfb" 1354061736 490980 e27f1e217a0902faea22205f197918d4 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/newtx/LibertineMathMI.pfb" 1569879884 35829 268d1d114c9114e541f92817aec4230d ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/newtx/NewTXMI.pfb" 1724614892 32409 aee30089ce2d804d7327a2f8ccff0462 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/newtx/txsys.pfb" 1724614892 45985 fd5f8adcc4f0e93e9a95469e12126723 ""
"/usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinBiolinumT-tlf-t1.vf" 1490131464 1728 e76e04a950024a95b620698b679c9810 ""
"/usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinBiolinumTB-tlf-t1.vf" 1354061736 1728 4ae633ddccb76ba8d0a0906a5e2e8fdf ""
"/usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinBiolinumTI-tlf-t1.vf" 1354061736 1728 0f47a4d345513e0ad2e29d47540d4f2a ""
"/usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-ot1.vf" 1490131464 968 b4daf26f130460f16d670da7f3f6963f ""
"/usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-sc-t1.vf" 1354061736 1732 19a98a3416ac208cfc1e8cd877852bec ""
"/usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-t1.vf" 1354061736 1728 b078a050f24d7649619baa987d7216d8 ""
"/usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-ts1.vf" 1490131464 640 f2633b196ddbd644937d19e300a5024e ""
"/usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineTB-tlf-t1.vf" 1490131464 1768 5d66dfd9709f1f38b8fb3cb38db46402 ""
"/usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineTI-tlf-t1.vf" 1490131464 1768 b3bfd8ed1fe2dce5fd19610abe4c3dbe ""
"/usr/local/texlive/2025/texmf-dist/fonts/vf/public/newtx/ntxsy.vf" 1724614892 1792 7cf99effbd74f7851ca7683a6d12b685 ""
"/usr/local/texlive/2025/texmf-dist/fonts/vf/public/newtx/nxlmi.vf" 1569879884 2744 3e5ba39e1559219ae379b7645e2f9524 ""
"/usr/local/texlive/2025/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/ifluatex.sty" 1572645307 492 1994775aa15b0d1289725a0b1bbc2d4c ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/iftex.sty" 1734129479 7984 7dbb9280f03c0a315425f1b4f35d43ee ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/ifvtex.sty" 1572645307 1057 525c2192b5febbd8c1f662c9468335bb ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/ifxetex.sty" 1572645307 488 4565444a3e75e59cb2702dc42e18f482 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/kastrup/binhex.tex" 1215376579 2553 4b99aa9667b708dd355926023d705446 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1701727651 17865 1a9bd36b4f98178fa551aca822290953 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/pdftex/glyphtounicode.tex" 1353199370 216747 92ec6cf8e39216b4894417b5aa6f057a ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1593379760 20089 80423eac55aa175305d35b49e04fe23b ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-pdfdoc.def" 1575152242 5108 8920602307ea1294ccbce2300c7c6ccb ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-utf8.def" 1575152242 11635 4fd2019d04ad095a0b1bde5aaed4a70e ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/stringenc.sty" 1575152242 21514 b7557edcee22835ef6b03ede1802dad4 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/xkeyval/keyval.tex" 1655411236 2725 1a42bd9e7e57e25fc7763c445f4b785b ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/xkeyval/xkeyval.tex" 1655411236 19231 27205ee17aaa2902aea3e0c07a3cfc65 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/xkeyval/xkvutils.tex" 1655411236 7677 9cb1a74d945bc9331f2181c0a59ff34a ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/xstring/xstring.sty" 1544223003 123 a302f2c651a95033260db60e51527ae8 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/xstring/xstring.tex" 1692744296 49397 a8071cbd06dd0bb15ae8acf876c73f20 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/acmart/acmart.cls" 1735764768 119755 fb6b15d8a2b05651c52a19a84ffb7b05 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty" 1160617237 26750 ce139c05a983e19ddca355b43e29c395 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty" 1160617237 3457 d9077efe6b74c5a094199256af8d7d9a ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/algorithms/algorithm.sty" 1251330371 3249 15763257e50278eef5db1952ccde229c ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/amscls/amsart.cls" 1591045760 61881 a7369c346c2922a758ae6283cc1ed014 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1359763108 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsa.fd" 1359763108 961 6518c6525a34feb5e8250ffa91731cff ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsb.fd" 1359763108 961 d02606146ba5601b5645f987c92e6193 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1717359999 2222 2166a1f7827be30ddc30434e5efcee1b ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsgen.sty" 1717359999 4173 d22509bc0c91281d991b2de7c88720dd ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsmath.sty" 1730928152 88370 c780f23aea0ece6add91e09b44dca2cd ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsopn.sty" 1717359999 4474 23ca1d3a79a57b405388059456d0a8df ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amstext.sty" 1717359999 2444 71618ea5f2377e33b04fb97afdd0eac2 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/atveryend/atveryend.sty" 1728505250 1695 be6b4d13b33db697fd3fd30b24716c1a ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/atbegshi-ltx.sty" 1738182759 2963 d8ec5a1b4e0a106c5c737900202763e4 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/atveryend-ltx.sty" 1738182759 2378 14b657ee5031da98cf91648f19642694 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty" 1738182759 5275 0d62fb62162c7ab056e941ef18c5076d ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/ifthen.sty" 1738182759 5525 9dced5929f36b19fa837947f5175b331 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/textcomp.sty" 1738182759 2846 e26604d3d895e65d874c07f30c291f3f ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/booktabs/booktabs.sty" 1579038678 6078 f1cb470c9199e7110a27851508ed7a5c ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/caption/caption-ams-smf.sto" 1645391520 2176 c0bb71a9780b6b41388cfa629b1a32f7 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/caption/caption.sty" 1696191071 56128 c2ccf1a29d78c33bc553880402e4fb9a ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/caption/caption3.sty" 1696191071 72619 ee90b6612147680fd73c3b1406a74245 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/cmap/cmap.sty" 1612650595 3574 ddc11a0ae1c579d351ed20d2319ad422 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/cmap/ot1.cmap" 1177721415 1207 4e0d96772f0d338847cbfb4eca683c81 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/cmap/t1.cmap" 1215522782 1938 beaa4a8467aa0074076e0e19f2992e29 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/comment/comment.sty" 1472166125 10197 204f75d5d8d88aa345a8c402e879e63b ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty" 1709586629 7056 92cf7c114203ae12de1e4f68040f8e48 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/environ/environ.sty" 1399239813 4378 f429f0da968c278653359293040a8f52 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/etoolbox/etoolbox.sty" 1739306980 46850 d87daedc2abdc653769a6f1067849fe0 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/everyshi/everyshi.sty" 1606256234 2368 ef01f98551a0f54407358b67f8a6c5e1 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1739048179 31715 19e60610b63819fe670dfa1cd84a4e94 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/float/float.sty" 1137110151 6749 16d2656a1984957e674b149555f1ea1d ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/fontaxes/fontaxes.sty" 1595539507 14310 41fdb35c51be792ddf00696848d0cfef ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/geometry/geometry.sty" 1578002852 41601 9cf6c5257b1bc7af01a58859749dd37a ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics-def/pdftex.def" 1713382759 19440 9da9dcbb27470349a580fca7372d454b ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics/graphics.sty" 1730496337 18363 dee506cb8d56825d8a4d020f5d5f8704 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics/graphicx.sty" 1717359999 8010 6f2ad8c2b2ffbd607af6475441c7b5e4 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics/keyval.sty" 1717359999 2671 70891d50dac933918b827d326687c6e8 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics/mathcolor.ltx" 1667332637 2885 9c645d672ae17285bba324998918efd8 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics/trig.sty" 1717359999 4023 2c9f39712cf7b43d3eb93a8bbd5c8f67 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/grffile/grffile.sty" 1573594974 1499 e43bb281163d9895e141f684cfc2da7e ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/hpdftex.def" 1730838014 48154 82da9991b9f0390b3a9d3af6c8618af4 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/hyperref.sty" 1730838014 222112 c22dbd2288f89f7ba942ac22f7d00f11 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/nameref.sty" 1705871765 11026 182c63f139a71afd30a28e5f1ed2cd1c ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/pd1enc.def" 1730838014 14249 ff700eb13ce975a424b2dd99b1a83044 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/puenc.def" 1730838014 117112 7533bff456301d32e6d6356fad15f543 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty" 1710792253 62205 a7f89f92229cfedbace009eb0e06c099 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty" 1525197427 318 019510c713feab56160631df4423d2aa ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/zi4.sty" 1558214095 4319 14e5db0b68d045ed49e4ed232b58e93f ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1655478651 22555 6d8e155cfef6d82c3d5c742fea7c992e ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1665067230 13815 760b0c02f691ea230f5359c4e1de23a7 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1716410060 29785 9f93ab201fe5dd053afcc6c1bcf7d266 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/l3kernel/expl3.sty" 1738271527 6565 f51d809db6193fae7b06c1bc26ca8f75 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty" 1724879202 4674 22943918cc84173478a588d6efbc800b ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/LinLibertine_I.tex" 1355443847 24957 22a8dc56372173d7ffa65753dfc6757e ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/OT1LinuxLibertineT-TLF.fd" 1490131464 3019 024cbcf380053dddffd4ac0b44aac808 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd" 1490131464 2264 2324ece7d4d2a7fa3c2138d120196405 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/T1LinuxLibertineT-TLF.fd" 1490131464 2980 15412b63bb0119ade194e089fff355d4 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF.fd" 1490131464 1689 42435c12d9d3dc0c446eb02409690ab9 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/libertine.sty" 1713989903 19358 ca0f9b5016a74813fc4f6c85c48d3d5b ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex" 1632168149 95525 6fd0552101a6b1f9b7a84b402ec435ba ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/lipsum/lipsum.sty" 1632168149 14690 c2c754218a7108db7823a4839c1bc3cd ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/listings/listings.cfg" 1727126400 1865 301ae3c26fb8c0243307b619a6aa2dd3 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/listings/listings.sty" 1727126400 81640 997090b6c021dc4af9ee00a97b85c5b4 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/listings/lstmisc.sty" 1727126400 77051 be68720e5402397a830abb9eed5a2cb4 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/listings/lstpatch.sty" 1710360531 353 9024412f43e92cd5b21fe9ded82d0610 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/microtype/microtype-pdftex.def" 1739394495 49650 26a5e891c8da4553198575ba0517c0e5 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/microtype/microtype.cfg" 1739394495 27015 bd167d0154f271c424b157d8894ae4a4 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/microtype/microtype.sty" 1739394495 102775 6624742dafeb6f262a13657f9f77f048 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/microtype/mt-msa.cfg" 1739394495 5929 11976688d7d8ed4d0d05efd1b3d5a7e9 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/microtype/mt-msb.cfg" 1739394495 5594 d52d5015abe666fae752ed7674c2dd73 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/mmap/oml.cmap" 1215649417 1866 c1c12138091b4a8edd4a24a940e6f792 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/mweights/mweights.sty" 1490909540 4953 67f29a12ea26221103fce6bae3433e60 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/natbib/natbib.sty" 1291685959 45456 1c8843383c0bd05870c45fa0ebea6cc2 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/ncctools/manyfoot.sty" 1564869456 12626 1a53db73f820034b2ec9e401e205b159 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/ncctools/nccfoots.sty" 1137110429 1189 756b2502150ce6dc2179faebbd40e701 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/lmsntxsy.fd" 1634244313 1140 ee5963b0c88b5c4f92fed61a27034b79 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/lmxntxexx.fd" 1471383769 549 70a2497c311fc8b19acb02f7607eb4e9 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/newtxmath.sty" 1727126309 141084 0a94ecd3ff47caf25c908eb85183555f ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/omlnxlmi.fd" 1387148426 3537 d34ce3dbfa1b807fe48744508a5473e9 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxexa.fd" 1376004569 558 91031960917530f42e0f8fc4d1db1550 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxmia.fd" 1718914330 4181 343926c9f03f7dd5c88e425dd9f47b91 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxsyc.fd" 1376004569 558 e8967b9c8273bc0c05b993fe92a9b757 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxsym.fd" 1692649180 568 9df6be53c1b3ec79740d714ff4ae0937 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/oberdiek/centernot.sty" 1575152444 1640 c9cca60f81c5839b9a3e794d72c0b0a7 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/oberdiek/ifdraft.sty" 1575152444 1922 5bdcc31b0573e5e7f31c36f1b88b6a7d ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/balance.sty" 1137110595 3366 d938ad2440edc1ea1c9042843580ec42 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1657483315 9714 ba3194bd52c8499b3f1e3eb91d409670 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/sttools/stfloats.sty" 1633983922 24057 ff20efb65b128d27c08eac20ec07f540 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/totpages/totpages.sty" 1137110984 7670 b07e668265cf485332abe582e7ed306e ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/trimspaces/trimspaces.sty" 1253232110 1380 971a51b00a14503ddf754cab24c3f209 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/upquote/upquote.sty" 1334873510 1048 517e01cde97c1c0baf72e69d43aa5a2e ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/xcolor/xcolor.sty" 1727642399 55384 b454dec21c2d9f45ec0b793f0995b992 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/xkeyval/xkeyval.sty" 1655411236 4937 4ce600ce9bd4ec84d0250eb6892fcf4f ""
"/usr/local/texlive/2025/texmf-dist/web2c/texmf.cnf" 1739380943 42148 61becc7c670cd061bb319c643c27fdd4 ""
"/usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1743605858 5467155 19efa205003f9ecad95fbbaa6ff24da1 ""
"/usr/local/texlive/2025/texmf-var/web2c/pdftex/pdflatex.fmt" 1743605772 3345731 9f70a6727154d056b4116903856deae2 ""
"/usr/local/texlive/2025/texmf.cnf" 1741450484 577 418a7058ec8e006d8704f60ecd22c938 ""
"diagram/AllocationOverview24.png" 1740922321.38668 45834 e2cfc13e3970cce298f0396858ac1356 ""
"diagram/HighOverviewArchitecture.drawio.png" 1740922321.38402 152902 4b92f7b86b6525c26112d4fd5935c951 ""
"diagram/TLBAccess.drawio.png" 1740922321.38286 77522 75367f218335fe386db852966a892e9b ""
"diagram/bargraph.png" 1740924635.40478 74263 65509d21744edc6c9ca02b8c67d664fb ""
"diagram/kmeans.png" 1740924635.40653 94217 5d14308c169ff296bf499805b9823aa6 ""
"paper.aux" 1743691798.89658 7542 b79ea1cba94bca38f389744af310d596 "pdflatex"
"paper.bbl" 1743691797.60985 3371 e1ba8bd3501bd6b1af1d5ca27a21f4ec "bibtex paper"
"paper.out" 1743691798.8975 3691 57df4bceeaeac4f8a0aa4a6219c57ca6 "pdflatex"
"paper.tex" 1743691793.79403 75500 6a1397c4c145a36d4baefe6abc12da97 ""
(generated)
"paper.aux"
"paper.log"
"paper.out"
"paper.pdf"
(rewritten before read)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -23,9 +23,9 @@
%%
%%
%% Commands for TeXCount
%TC:macro \cite [option:text,text]
%TC:macro \citep [option:text,text]
%TC:macro \citet [option:text,text]
%TC:macro ~\cite [option:text,text]
%TC:macro ~\citep [option:text,text]
%TC:macro ~\citet [option:text,text]
%TC:envir table 0 1
%TC:envir table* 0 1
%TC:envir tabular [ignore] word
@@ -52,7 +52,7 @@
\usepackage{amsmath}
\usepackage{lipsum}
\usepackage{stfloats}
\usepackage{stfloats}
\usepackage{grffile}
\lstset{basicstyle=\small\ttfamily,columns=fullflexible}
@@ -108,7 +108,7 @@
%%
%% The majority of ACM publications use numbered citations and
%% references. The command \citestyle{authoryear} switches to the
%% references. The command ~\citestyle{authoryear} switches to the
%% "author year" style.
%%
%% If you are preparing content for an event
@@ -116,7 +116,7 @@
%% citations and references.
%% Uncommenting
%% the next command will enable that style.
%%\citestyle{acmauthoryear}
%%~\citestyle{acmauthoryear}
%%
@@ -124,9 +124,9 @@
\begin{document}
%%
%% The "title" command has an optional parameter,
%% The "title" commanSd has an optional parameter,
%% allowing the author to define a "short title" to be used in page headers.
\title{Fat-pointer Address Translations}
\title{Fat Address Translations}
%%
%% The "author" command and its associated commands are used to define
@@ -210,26 +210,26 @@
%% The abstract is a short summary of the work to be presented in the
%% article.
\begin{abstract}
The increasing disparity between application workloads and the capacity of Translation Lookaside Buffers (TLB)
has prompted researchers to explore innovative solutions to mitigate this gap. One such approach involves
leveraging physically contiguous memory and the use of huge pages to optimize TLB utilization. Huge pages,
which group multiple smaller pages into larger ones, reduce TLB miss rates by decreasing the number of entries
required in the TLB, thus improving overall performance. Concurrently, advancements in hardware-level system
security, exemplified by the Capability Hardware Enhanced RISC Instructions (CHERI) architecture, offer
The increasing disparity between application workloads and the capacity of s (TLB)
has prompted researchers to explore innovative solutions to mitigate this gap. One such approach involves
leveraging physically contiguous memory and the use of huge pages to optimize TLB utilization. Huge pages,
which group multiple smaller pages into larger ones, reduce TLB miss rates by decreasing the number of entries
required in the TLB, thus improving overall performance. Concurrently, advancements in hardware-level system
security, exemplified by the Capability Hardware Enhanced RISC Instructions (CHERI) architecture, offer
additional opportunities for improving memory management and security.
CHERI introduces capability-based addressing, a novel approach that enhances system security by
associating capabilities with memory pointers. These capabilities restrict access to memory regions,
thereby fortifying the system against various security threats. Importantly, the mechanisms implemented in
CHERI for enforcing memory protection can also serve as accelerators for standard user-space memory allocators.
By leveraging capability-based addressing, memory allocators can efficiently manage memory resources, ensure
robust security measures are in place, and potentially enhance performance through the integration of huge pages,
CHERI introduces capability-based addressing, a novel approach that enhances system security by
associating capabilities with memory pointers. These capabilities restrict access to memory regions,
thereby fortifying the system against various security threats. Importantly, the mechanisms implemented in
CHERI for enforcing memory protection can also serve as accelerators for standard user-space memory allocators.
By leveraging capability-based addressing, memory allocators can efficiently manage memory resources, ensure
robust security measures are in place, and potentially enhance performance through the integration of huge pages,
further improving TLB efficiency and memory handling.
Through our evaluation using both micro and macro benchmarks,
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.
Through our evaluation using both micro and macro benchmarks,
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.
\end{abstract}
%%
@@ -292,23 +292,23 @@
\maketitle
\section{Introduction}
% In the dynamic landscape of computing, the pursuit of optimal performance is a constant endeavor,
% especially as applications evolve to handle increasingly complex workloads.
% One critical aspect influencing performance is memory management, where efficient
% utilization of resources is paramount. Translation Lookaside Buffers (TLBs) play a
% In the dynamic landscape of computing, the pursuit of optimal performance is a constant endeavor,
% especially as applications evolve to handle increasingly complex workloads.
% One critical aspect influencing performance is memory management, where efficient
% utilization of resources is paramount. s (TLBs) play a
% pivotal role in this regard, expediting memory access by storing recently accessed memory translations.
% However, as applications grow in size and complexity, the capacity of TLBs often struggles to
% keep pace, leading to performance bottlenecks\cite{mittalsurvey2017}. To address this challenge, researchers have
% However, as applications grow in size and complexity, the capacity of TLBs often struggles to
% keep pace, leading to performance bottlenecks~\cite{mittalsurvey2017}. To address this challenge, researchers have
% turned to innovative solutions, one of which involves harnessing the benefits of huge pages.
% Huge pages, also known as large pages, allow for the allocation of memory in significantly
% larger chunks compared to traditional small pages. By reducing the number of TLB entries
% needed to access a given amount of memory, huge pages offer a potential avenue for optimizing
% Huge pages, also known as large pages, allow for the allocation of memory in significantly
% larger chunks compared to traditional small pages. By reducing the number of TLB entries
% needed to access a given amount of memory, huge pages offer a potential avenue for optimizing
% TLB utilization and thereby enhancing overall system performance.
% Simultaneously, advancements in hardware-level security, such as the Capability Hardware
% Enhanced RISC Instructions (CHERI) architecture, present additional opportunities for
% performance enhancement. CHERI's capability-based addressing approach not only strengthens
% system security by tightly controlling memory access but also provides avenues for
% Simultaneously, advancements in hardware-level security, such as the Capability Hardware
% Enhanced RISC Instructions (CHERI) architecture, present additional opportunities for
% performance enhancement. CHERI's capability-based addressing approach not only strengthens
% system security by tightly controlling memory access but also provides avenues for
% accelerating memory management operations.
In computing, achieving high performance is an ongoing challenge, especially as
@@ -319,79 +319,156 @@ memory address translations. A TLB, a specialised cache in the memory management
reduces the time required to convert virtual addresses to physical ones. When a program accesses
data in memory, the MMU first checks the TLB for a matching entry, avoiding the slower process of
consulting page tables. However, as applications grow larger and 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
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
compared to traditional small pages. By reducing the number of TLB entries needed to access a given amount
of memory, Huge pages offer a potential avenue for optimising TLB utilisation by reducing the number
of entries needed to map large memory regions. This not only decreases the frequency of
TLB misses but also lowers the overhead associated with address translation. By minimising
these bottlenecks, huge pages can improve system performance in several ways, 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
workloads that rely heavily on large datasets.
Simultaneously, advancements in hardware-level security, such as the Capability Hardware Enhanced RISC Instructions (CHERI)
\cite{woodruff_cheri_2014} architecture, present additional opportunities for performance enhancement. CHERI's capability-based addressing approach not
~\cite{woodruff_cheri_2014} architecture, present 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
operations. By integrating CHERIs compressed\cite{woodruff_cheri_2019} encoded bounds with the use of huge pages, it becomes possible to track and manage
large, physically contiguous memory blocks more efficiently. This combination reduces TLB pressure by minimising the number of
operations. By integrating CHERIs compressed~\cite{woodruff_cheri_2019} encoded bounds with the use of huge pages, We have shown it is possible to track and manage
large, physically contiguous memory blocks without requiring numerous TLB entries. This combination reduces TLB pressure by minimising the number of
entries required to map extensive memory regions, thereby decreasing TLB misses and improving address translation performance.
Furthermore, it accelerates memory-intensive tasks by reducing the overhead associated with managing fragmented or non-contiguous
memory allocations. The contributions for the following paper are as follows:
\begin{itemize}
\item \textbf{Fat-pointer Based Range Addresses}: Introduces fat-pointers that include memory bounds, allowing
efficient tracking and management of physically contiguous memory regions.
\item \textbf{Fat pointer Based Range Addresses}: Introduces fat-pointers that include memory bounds, allowing
efficient tracking and management of physically contiguous memory regions (section ~\ref{sec:FatPointerTranslations}).
\item \textbf{Novel Memory Allocation Algorithms}: Provides new algorithms for allocating and freeing
physically contiguous memory, integrating huge pages with CHERI's capability-based bounds for enhanced memory management.
\item \textbf{CHERIs Capability-based Optimization}: Demonstrates how CHERI's architecture can be
used to optimize memory allocation by encoding memory bounds directly within pointers, reducing TLB reliance.
\end{itemize}
\item \textbf{CHERIs Capability-based Optimization}: Demonstrates how CHERI's architecture can be
used to optimize memory allocation by encoding memory bounds directly within pointers, reducing TLB reliance
(section ~\ref{sec:128bitCompressedBounds}).
\item \textbf{Memory Allocation Algorithms}: Provides new algorithms for allocating and freeing
physically contiguous memory, integrating huge pages with CHERI's capability-based bounds for enhanced memory management
(section ~\ref{sec:MemoryAllocator}).
\end{itemize}
Through comprehensive evaluation, including micro and macro benchmarks, we demonstrate the allocators ability
to reduce TLB misses by up to 90\%, yielding significant improvements in wall clock runtimes for memory-intensive
applications. While its impact on larger, computation-heavy workloads is less pronounced,
the proposed allocator shows strong potential for advancing memory management in scenarios requiring
high memory throughput and low translation overhead.
\newline
\begin{enumerate}
\item How does the utilization of bounds for tracking memory allocations, in addition to security purposes, affect the
run times and Translation Lookaside Buffer (TLB) miss rates in modern computing systems?
\item How does the implementation of bounds for seeking through physically contiguous memory influence the complexity and
efficiency of standard memory allocators, particularly those with advanced features such as transparent
huge pages, and what are the implications for system performance in terms of execution speed, memory access
latency, and resource utilization?
\end{enumerate}
\section{Related work}
\label{sec:org0e192da}
\subsection{Huge Pages}
% A segment~\cite{basu_efficient_nodate} can be viewed as mapping between contiguous virtual
% memory and contiguous physical memory. The property of a
% segment allows it to be larger than a page. Direct Segment allows the user to set a single segment
% for an application. Two registers are added to mark the start
% 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.
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
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
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.
\subsection{Direct Segment}
Early processors often used segments to manage virtual memory, where a segment~\cite{DirectSegment} essentially mapped contiguous
virtual memory to contiguous physical memory. Unlike pages, which are relatively small, segments can be much
larger, offering the potential for more efficient memory management in certain scenarios.
This concept of segmentation has seen a resurgence in some modern approaches that aim to enhance
translation coverage by designating specific areas in the virtual address space.
This method allows programmers to explicitly define
a single segment for applications requiring significant memory. It introduces two new
registers to the system, which indicate the start and end of this segment.
Virtual addresses within this segment are translated by calculating
the offset from the virtual start address and applying this offset to the
physical start address. This straightforward method simplifies the translation
process for large memory areas but requires significant modifications to the
source code of applications.
\subsection{Range Memory Mapping (RMM)}
Redundant Memory Mappings (RMM)~\cite{karakostas_redundant_2015} enhance memory management by introducing an additional range table
that pre-allocates contiguous physical pages for large memory allocations, creating ranges that
are both virtually and physically contiguous. This approach simplifies address translation
within these ranges by adding an offset, similar to Direct Segment, but RMM supports multiple
ranges and operates transparently to programmers, requiring no source code modifications.
The range table, separate from the conventional page table, holds the mappings for these
large allocations. To determine which range an address belongs to, RMM compares the address
against all range boundaries, a process that is computationally expensive and therefore performed
only after an L1 TLB miss. To optimize this, RMM uses a range TLB (RTLB) to quickly identify
if an address falls within any pre-allocated range, facilitating efficient translation and
reducing overhead. Range mapping works alongside the paging system by generating TLB entries on
TLB misses and still performing TLB lookups for each virtual address translation.
Unlike traditional segmentation mechanisms, range mapping activates a range lookaside
buffer (RTLB) located with the last level TLB upon a miss. The hardware TLB miss
handler then searches the RTLB for the miss address and, if found, generates a new
TLB entry with the physical address derived from the base virtual address and
range offset, along with permission bits. If the RTLB also misses, the system
defaults to a standard page walk while a range table walker simultaneously
loads the range into the RTLB in the background, avoiding delays in memory operations.
The RTLB, functioning as a fully associative search structure, ensures
that most last level TLB misses are handled efficiently by range mapping,
reducing the need for costly page table walks.
\subsection{CHERI}
\label{sec:orgbf2eaac}
CHERI (Capability Hardware Enhanced RISC Instructions) 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}
\section{Fat-pointer Address Translations}
\section{Fat Address Translations}
\label{sec:FatPointerTranslations}
Fat-pointer Address Translations, combined with the capabilities of the CHERI (Capability Hardware Enhanced RISC Instructions)
architecture, introduce robust memory safety and security features by incorporating additional metadata
with memory pointers. Fat-pointer Address Translations enhanced architecture utilizes concepts such as FlexPointer\cite{chen_flexpointer_2023},
Range Memory Mapping (RMM)\cite{karakostas_redundant_2015} to manage memory effectively.
with memory pointers. Fat-pointer Address Translations enhanced architecture utilizes concepts such as FlexPointer~\cite{chen_flexpointer_2023},
Range Memory Mapping (RMM)~\cite{karakostas_redundant_2015} to manage memory effectively.
Range addresses play a pivotal role within this implementation, defining memory
Range addresses play a pivotal role within the Fat Address Translations implementation, defining memory
regions bounded by a starting address (Upper) and an ending address (Lower).
These range addresses are encoded within FAT-pointers, allowing for precise
control using CHERI CC\cite{woodruff_cheri_2019} bounds over memory regions to reduce the number of TLB operations needed.
control using CHERI CC~\cite{woodruff_cheri_2019} bounds over memory regions to reduce the number of TLB operations needed.
% The functionality of ranges encompasses several key aspects:
% \begin{itemize}
% \item \textbf{Creation of Physically Contiguous Memory Ranges}:
% By defining memory regions that are physically contiguous, systems can
% By defining memory regions that are physically contiguous, systems can
% achieve optimal memory access patterns, enhancing performance and efficiency.
% \item \textbf{Encoding Ranges as Bounds to the Pointer}:
% Integrating range bounds directly into FAT-pointers enables the architecture
% to enforce memory access restrictions at the pointer level thus allowing
% Integrating range bounds directly into FAT-pointers enables the architecture
% to enforce memory access restrictions at the pointer level thus allowing
% tracking of memory ranges on a pointer level.
% \item \textbf{Instrumenting Block-Based Allocators with Physically Contiguous Memory}:
% The integration of range-based memory concepts into memory allocation systems, such as block-based
% allocators, facilitates the efficient management and utilization of physically contiguous memory blocks,
% The integration of range-based memory concepts into memory allocation systems, such as block-based
% allocators, facilitates the efficient management and utilization of physically contiguous memory blocks,
% mitigating issues related to memory fragmentation.
% \end{itemize}
@@ -403,7 +480,7 @@ control using CHERI CC\cite{woodruff_cheri_2019} bounds over memory regions to r
\end{figure*}
Figure \ref{fig:HighOverviewArchitecture} illustrates
the methodology employed to leverage the CHERI
the methodology employed to use the CHERI
128-bit FAT-pointer scheme for facilitating
block-based memory management on physically
contiguous memory,which is depicted on the
@@ -415,8 +492,6 @@ We explore how using huge pages
with CHERI bounds can reduce the
number of TLB entries required.
The functionality of ranges encompasses several key aspects:
\subsection{Encoding Ranges as Bounds to the Pointer}
\begin{figure}[h]
\includegraphics[width=0.4\textwidth]{diagram/AllocationOverview24.png}
@@ -427,52 +502,54 @@ Integrating range bounds directly into FAT-pointers enables the CHERI architectu
to enforce memory access restrictions at the pointer level thus allowing
tracking of memory ranges on a pointer level. In this implementation, memory ranges are established using
bounds encoded within the FAT-pointer, adhering to the CHERI
128-bit bounds compression scheme\cite{woodruff_cheri_2019}.
128-bit bounds compression scheme~\cite{woodruff_cheri_2019}.
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
two separate memory allocations equivalent to invoking malloc twice to allocate memory in distinct regions.
This scenario simulates a block-based memory allocator operating within the confines of the huge page.
The allocations leverage the bounds encoded in the FAT-pointer, ensuring tracking of the allocated memory regions. By using the FAT-pointer bounds, this method maintains the
The allocations use the bounds encoded in the FAT-pointer, ensuring tracking of the allocated memory regions.
By using the FAT-pointer bounds, this method maintains the
integrity and contiguity of the allocated blocks within the huge page.
\subsection{128 bit compressed bounds}
\label{sec:128bitCompressedBounds}
% 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
% 128 bit pointer with a 64 bit virtual address system. Our appproach is to use
% a constant single cycle to encode and decode bounds. CHERI CC was originally intended
% for memory protection but can also be repurposed for tracking memory region rather
% than using the standard approach with consists of numerous TLB entries for each allocation.
% contigous space. CHERI CC consists of bounds which are compressed and represent a
% 128 bit pointer with a 64 bit virtual address system. Our appproach is to use
% a constant single cycle to encode and decode bounds. CHERI CC was originally intended
% for memory protection but can also be repurposed for tracking memory region rather
% than using the standard approach with consists of numerous TLB entries for each allocation.
% One of the key analysis highlighted by CHERI CC is that allocators such as Jemalloc always
% allocate objects under 512 bytes. When a bound of an object cannot be represented it is required
% to be padded to memory. It was noted that allocators just as Jemalloc in practice do not require
% more than 6 bits to represent exponents needed within the compressed bounds.
% to be padded to memory. It was noted that allocators just as Jemalloc in practice do not require
% more than 6 bits to represent exponents needed within the compressed bounds.
% This means the default behavoir of most allocators such as Jemalloc would precisely represent bounds
% within the FAT-Pointer which can be repurposed as ranges in memory allocators with custom allocation
% sizes rather than fixed sized TLB entries.
% within the FAT-Pointer which can be repurposed as ranges in memory allocators with custom allocation
% sizes rather than fixed sized TLB entries.
We use CHERI CC\cite{woodruff_cheri_2019} (Compressed Capabilities) to track regions of memory in physically contiguous space.
CHERI CC consists of compressed bounds that represent a 128-bit pointer within a 64-bit virtual address
system. Our approach utilizes a single-cycle encoding and decoding mechanism for efficiency. While CHERI
CC was originally designed for memory protection, it can also be repurposed for tracking memory regions,
We use CHERI CC~\cite{woodruff_cheri_2019} (Compressed Capabilities) to track regions of memory in physically contiguous space.
CHERI CC consists of compressed bounds that represent a 128-bit pointer within a 64-bit virtual address
system. Our approach utilizes a single-cycle encoding and decoding mechanism for efficiency. While CHERI
CC was originally designed for memory protection, it can also be repurposed for tracking memory regions,
eliminating the need for multiple TLB entries for each allocation.
One key analysis of CHERI CC highlights that allocators like Jemalloc typically allocate objects under
512 bytes. When an objects 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
One key analysis of CHERI CC highlights that allocators like Jemalloc typically allocate objects under
512 bytes. When an objects 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 most allocators, such as Jemalloc, would allow precise
representation of bounds within a FAT-pointer. These pointers can then be repurposed as memory ranges
This means that the default behavior of most allocators, such as Jemalloc, would allow precise
representation of bounds within a FAT-pointer. These pointers can then be repurposed as memory ranges
in custom memory allocators, offering a more flexible alternative to fixed-size TLB entries.
% \subsection{Creation of Physically Contiguous Memory Ranges}
% \smallskip\noindent
% The memory chunk defined by the upper and lower bounds is always physically contiguous.
% By defining memory regions that are physically contiguous, systems can
% By defining memory regions that are physically contiguous, systems can
% achieve optimal memory access patterns, enhancing performance and efficiency.
\subsection{Instrumenting Block-Based Allocators with Physically Contiguous Memory}
@@ -486,7 +563,7 @@ structures to map virtual addresses to physical addresses.
This often requires multiple entries to handle different
memory segments, which increases overhead and adds complexity
to the translation process. In contrast, Our approach
simplifies this by using a single TLB
simplifies this by using a single TLB
entry to translate multiple addresses within a contiguous memory
range. This reduces the number of TLB entries needed, making the
translation process more efficient and less complex.
@@ -507,7 +584,8 @@ bounds for that particular pointer access. Using bounds
stored on the pointer a block based pattern can be reprecated
on physically contigous memory.
\subsection{Sample memory allocator design:}
\section{Memory allocator design}
\label{sec:MemoryAllocator}
This section presents a straightforward memory allocator designed and implemented based on the
principles outlined in our approach. The allocator consists of three core functions: InitAlloc,
malloc, and free. The InitAlloc function initializes the memory pool, setting up the necessary
@@ -523,7 +601,7 @@ such as Jemalloc, enabling them to operate with significantly lesser L1 TLB miss
contiguity is essential.
\begin{algorithm}
\caption{Sample malloc implementation}
\caption{Malloc implementation}
\label{alg:malloc}
\begin{algorithmic}[1]
\Function{malloc}{sz}
@@ -536,21 +614,21 @@ contiguity is essential.
\end{algorithmic}
\end{algorithm}
When the malloc function (Algorithm \ref{alg:malloc}) is invoked, the algorithm employs an eager allocation strategy for physical memory.
When the malloc function (Algorithm \ref{alg:malloc}) is invoked, the algorithm employs an eager allocation strategy for physical memory.
This is achieved through the use of the SetBounds mechanism, which constructs a FAT-pointer specialized
pointer that encodes both the start and end addresses of the allocated memory region within the pointer
itself. The start and end addresses correspond to the size of the memory block requested by malloc. This
approach introduces a method of memory tracking, where the bounds of the allocated region are
explicitly encoded in the address, enabling efficient monitoring and management of memory usage.
Furthermore, this design leverages shared huge page TLB (Translation Lookaside Buffer) entries to map
Furthermore, this design uses shared huge page TLB entries to map
and track memory addresses. By encoding bounds directly into the address, the algorithm ensures that memory
accesses remain within the allocated region, thereby enhancing safety and reducing the risk of out-of-bounds
errors. This use of FAT-pointers and shared TLB entries not only aligns with the principles of
efficient memory management but also demonstrates a practical usecase of huge pages in CHERI.
\begin{algorithm}
\caption{Sample free implementation}
\caption{Free implementation}
\label{alg:free}
\begin{algorithmic}[1]
\Function{free}{ptr}
@@ -564,9 +642,9 @@ efficient memory management but also demonstrates a practical usecase of huge pa
introduced in the malloc algorithm. When the free function is invoked, it utilizes the metadata
embedded within the FAT-pointer to determine the range and size of the allocated memory region.
Specifically, the start and end addresses encoded in the FAT-pointer provide the necessary information
to identify the exact memory block to be deallocated. This allows the allocator to precisely unmapped
to identify the exact memory block to be deallocated. This allows the allocator to precisely unmap
the corresponding memory region from the address space, ensuring efficient and accurate memory management.
By extracting the bounds and size directly from the FAT-pointer, the free function eliminates the need
for additional metadata lookups or complex data structures, streamlining the deallocation process.
This approach not only enhances performance but also reduces the risk of memory leaks or fragmentation.
@@ -574,7 +652,7 @@ efficient memory management but also demonstrates a practical usecase of huge pa
\begin{algorithm}
\caption{Sample init alloc function to create a initial 1 GB huge page}
\caption{Init alloc function to create a initial 1 GB huge page}
\label{alg:initAlloc}
\begin{algorithmic}[1]
\Function{Init\_alloc}{}
@@ -595,11 +673,10 @@ with page table management and enhances memory access efficiency, which is criti
applications and kernel-level operations.
\section{Evaluation}
We conducted tests of the FAT Pointer-based range addresses against Jemalloc\cite{jemalloc},
the default memory allocator for CHERIBSD\cite{cheribsd}, to assess the performance improvements
We conducted tests of the FAT Pointer-based range addresses against Jemalloc~\cite{jemalloc},
the default memory allocator for CHERIBSD~\cite{cheribsd}, to assess the performance improvements
enabled by a CHERI-based huge page-aware allocator. Specifically, we evaluated
the reduction in TLB misses and its impact on overall
performance metrics, such as wall clock runtime.
the reduction in TLB walks and misses and its impact on wall clock runtime.
To comprehensively analyze the proposed allocator, we categorized benchmarks into
two classes which are micro and macro benchmarks. Micro benchmarks comprise smaller
@@ -633,8 +710,8 @@ However, limitations were also identified, such as scenarios where the allocator
gains were marginal or where it introduced additional complexity in memory management. These
limitations provide a roadmap for future optimizations and refinements of the allocator design.
\subsection{Expirement setup}
The CHERI Morello\cite{Morello} board was used to evaluate the proposed memory allocator.
\subsection{Experiment setup}
The CHERI Morello~\cite{Morello} board was used to evaluate the proposed memory allocator.
Morello implements the ARM A76 with enhanced server-class memory, featuring a
quad-core ARM CPU with capability extensions. The L1 and L2 caches were modified
to proliferate the capability bit, ensuring compatibility with CHERI's capability-based
@@ -642,7 +719,7 @@ memory model. When compiling the C programs for benchmarking, the Benchmark ABI
used as recommended by the CHERI community. This compilation mode was enabled using
the Clang compiler.
The Benchmark ABI\cite{BenchmarkABI} was specifically designed because the Morello branch predictor
The Benchmark ABI~\cite{BenchmarkABI} was specifically designed because the Morello branch predictor
was not expanded to predict bounds. Consequently, a capability-based jump introduces
stalls in later PCC-dependent instructions until bounds are established. This issue
is particularly significant during dynamically linked calls and returns between
@@ -657,7 +734,7 @@ failing to overwrite the C program at runtime with the intended malloc functions
The second allocator was the standard OS memory allocator, which, in the case of
CHERIBSD, is Jemalloc.
Performance measurements were carried out using ARM performance counters\cite{PerformanceCounter} to
Performance measurements were carried out using ARM performance counters~\cite{PerformanceCounter} to
ensure accurate evaluation. These counters provided detailed metrics, allowing
us to compare the performance of the two allocators and assess the impact of
the proposed changes.
@@ -705,12 +782,9 @@ the proposed changes.
\end{table*}
\subsection{Benchmarks}
The benchmarks\cite{Benchmark} are classified into 2 classes:
The benchmarks~\cite{Benchmark} are classified into 2 classes:
\subsubsection{Micro benchmark}
\begin{enumerate}
\item Micro benchmark
\label{sec:org41c278c}
\begin{itemize}
\item GLIBC: The Glibc benchmark evaluates the performance of
@@ -727,7 +801,7 @@ The benchmarks\cite{Benchmark} are classified into 2 classes:
doubles the working set size to analyze memory hierarchy behavior.
\end{itemize}
\item Macro runs
\subsubsection{Macro benchmark}
\label{sec:org89020f2}
\begin{itemize}
\item Kmeans: Kmeans implements a parallelized K-means clustering algorithm that
@@ -744,7 +818,6 @@ task execution based on state and priority, tracking processed packets
and held tasks for performance evaluation. Configurable iterations and
timing help measure system performance and ensure correctness.
\end{itemize}
\end{enumerate}
\subsection{Results}
@@ -753,7 +826,7 @@ timing help measure system performance and ensure correctness.
\caption{\label{fig:bargraph}Percentage difference between the modified memory allocator against the default system memory allocator}
\end{figure*}
The graph (Diagram \ref{fig:bargraph}) highlights the performance comparison between the modified memory allocator and
The graph (Figure \ref{fig:bargraph}) highlights the performance comparison between the modified memory allocator and
Jemalloc, the default memory allocator. The FAT pointer memory allocator, specifically optimized
for use with huge pages, demonstrates a clear advantage in scenarios where memory allocation
patterns benefit from its design. The results align with expectations, showcasing the impact
@@ -788,7 +861,7 @@ bottlenecked by factors such as computation or I/O rather than memory translatio
The K-means algorithm was executed with varying cluster sizes to evaluate the performance difference
between the FAT pointer allocator and the baseline allocator as the workload scales. This analysis
aimed to understand how the allocator's optimizations, particularly its ability to manage memory
aims to understand how the allocator's optimizations, particularly its ability to manage memory
more efficiently with huge pages, impact performance under different workload conditions.
For most cluster sizes tested, the percentage difference in performance remained relatively
@@ -799,8 +872,7 @@ and efficiently manage memory allocations for the centroid and data point struct
the K-means algorithm.
However, an anomaly was observed at a cluster size of 2000, where the percentage difference
deviated significantly from the trend. This irregularity could be attributed to several factors.
At this cluster size, the memory access patterns and allocation behavior may align in a way that
deviated significantly from the trend. At this cluster size, the memory access patterns and allocation behavior may align in a way that
temporarily offsets the advantages of the FAT pointer allocator. For example, the memory layout
might interact with system-level caching mechanisms or TLB behavior differently, leading to an
unexpected change in performance. Additionally, the increased complexity of managing a higher
@@ -833,96 +905,11 @@ 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{Related work}
\label{sec:org0e192da}
\subsection{Huge Pages}
% A segment\cite{basu_efficient_nodate} can be viewed as mapping between contiguous virtual
% memory and contiguous physical memory. The property of a
% segment allows it to be larger than a page. Direct Segment allows the user to set a single segment
% for an application. Two registers are added to mark the start
% 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.
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
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
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.
\subsection{Direct Segment}
Early processors often used segments to manage virtual memory, where a segment\cite{DirectSegment} essentially mapped contiguous
virtual memory to contiguous physical memory. Unlike pages, which are relatively small, segments can be much
larger, offering the potential for more efficient memory management in certain scenarios.
This concept of segmentation has seen a resurgence in some modern approaches that aim to enhance
translation coverage by designating specific areas in the virtual address space.
This method allows programmers to explicitly define
a single segment for applications requiring significant memory. It introduces two new
registers to the system, which indicate the start and end of this segment.
Virtual addresses within this segment are translated by calculating
the offset from the virtual start address and applying this offset to the
physical start address. This straightforward method simplifies the translation
process for large memory areas but requires significant modifications to the
source code of applications.
\subsection{Range Memory Mapping (RMM)}
Redundant Memory Mappings (RMM)\cite{karakostas_redundant_2015} enhance memory management by introducing an additional range table
that pre-allocates contiguous physical pages for large memory allocations, creating ranges that
are both virtually and physically contiguous. This approach simplifies address translation
within these ranges by adding an offset, similar to Direct Segment, but RMM supports multiple
ranges and operates transparently to programmers, requiring no source code modifications.
The range table, separate from the conventional page table, holds the mappings for these
large allocations. To determine which range an address belongs to, RMM compares the address
against all range boundaries, a process that is computationally expensive and therefore performed
only after an L1 TLB miss. To optimize this, RMM uses a range TLB (RTLB) to quickly identify
if an address falls within any pre-allocated range, facilitating efficient translation and
reducing overhead. Range mapping works alongside the paging system by generating TLB entries on
TLB misses and still performing TLB lookups for each virtual address translation.
Unlike traditional segmentation mechanisms, range mapping activates a range lookaside
buffer (RTLB) located with the last level TLB upon a miss. The hardware TLB miss
handler then searches the RTLB for the miss address and, if found, generates a new
TLB entry with the physical address derived from the base virtual address and
range offset, along with permission bits. If the RTLB also misses, the system
defaults to a standard page walk while a range table walker simultaneously
loads the range into the RTLB in the background, avoiding delays in memory operations.
The RTLB, functioning as a fully associative search structure, ensures
that most last level TLB misses are handled efficiently by range mapping,
reducing the need for costly page table walks.
\subsection{CHERI}
\label{sec:orgbf2eaac}
CHERI (Capability Hardware Enhanced RISC Instructions) 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}
\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 Translation Lookaside Buffer (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
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}
@@ -939,17 +926,17 @@ The Bluespec design of the RISC-V processor will be modified to allow certain me
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 Translation Lookaside Buffers (TLBs).
To mitigate this gap, it proposes leveraging physically contiguous memory to reduce TLB walks. Additionally,
the report explores advancements in system security, particularly through the Capability Hardware Enhanced RISC Instructions (CHERI)
architecture. CHERI's capability-based addressing enhances system security by associating capabilities with memory pointers,
restricting access to memory regions, and thus protecting against various security threats. Importantly, these mechanisms
This paper addresses the growing disparity between application workloads and the capacity of s (TLBs).
To mitigate this gap, it proposes leveraging physically contiguous memory to reduce TLB walks. Additionally,
the report explores advancements in system security, particularly through the Capability Hardware Enhanced RISC Instructions (CHERI)
architecture. CHERI's capability-based addressing enhances system security by associating capabilities with memory pointers,
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\%,
Comprehensive benchmarking demonstrates that the allocator reduces TLB misses by up to 90\%,
leading to substantial performance gains in memory-intensive workloads, though the improvements are less pronounced
for larger, computation-heavy applications. These results highlight the allocator's potential to advance memory management
for larger, computation-heavy applications. These results highlight the allocator's potential to advance memory management
by combining enhanced security and performance through CHERI's capability-based model with the use of huge pages.
@@ -1225,7 +1212,7 @@ by combining enhanced security and performance through CHERI's capability-based
% \texttt{{\char'134}begin\,\ldots{\char'134}end} construction or with
% the short form \texttt{\$\,\ldots\$}. You can use any of the symbols
% and structures, from $\alpha$ to $\omega$, available in
% \LaTeX~\cite{Lamport:LaTeX}; this section will simply show a few
% \LaTeX~~\cite{Lamport:LaTeX}; this section will simply show a few
% examples of in-text equations in context. Notice how this equation:
% \begin{math}
% \lim_{n\rightarrow \infty}x=0
@@ -1336,40 +1323,40 @@ by combining enhanced security and performance through CHERI's capability-based
% command in the {\bfseries preamble} (before the command
% ``\verb|\begin{document}|'') of your \LaTeX\ source:
% \begin{verbatim}
% \citestyle{acmauthoryear}
% ~\citestyle{acmauthoryear}
% \end{verbatim}
% Some examples. A paginated journal article \cite{Abril07}, an
% enumerated journal article \cite{Cohen07}, a reference to an entire
% issue \cite{JCohen96}, a monograph (whole book) \cite{Kosiur01}, a
% Some examples. A paginated journal article ~\cite{Abril07}, an
% enumerated journal article ~\cite{Cohen07}, a reference to an entire
% issue ~\cite{JCohen96}, a monograph (whole book) ~\cite{Kosiur01}, a
% monograph/whole book in a series (see 2a in spec. document)
% \cite{Harel79}, a divisible-book such as an anthology or compilation
% \cite{Editor00} followed by the same example, however we only output
% the series if the volume number is given \cite{Editor00a} (so
% ~\cite{Harel79}, a divisible-book such as an anthology or compilation
% ~\cite{Editor00} followed by the same example, however we only output
% the series if the volume number is given ~\cite{Editor00a} (so
% Editor00a's series should NOT be present since it has no vol. no.),
% a chapter in a divisible book \cite{Spector90}, a chapter in a
% divisible book in a series \cite{Douglass98}, a multi-volume work as
% book \cite{Knuth97}, a couple of articles in a proceedings (of a
% a chapter in a divisible book ~\cite{Spector90}, a chapter in a
% divisible book in a series ~\cite{Douglass98}, a multi-volume work as
% book ~\cite{Knuth97}, a couple of articles in a proceedings (of a
% conference, symposium, workshop for example) (paginated proceedings
% article) \cite{Andler79, Hagerup1993}, a proceedings article with
% all possible elements \cite{Smith10}, an example of an enumerated
% proceedings article \cite{VanGundy07}, an informally published work
% \cite{Harel78}, a couple of preprints \cite{Bornmann2019,
% AnzarootPBM14}, a doctoral dissertation \cite{Clarkson85}, a
% master's thesis: \cite{anisi03}, an online document / world wide web
% resource \cite{Thornburg01, Ablamowicz07, Poker06}, a video game
% (Case 1) \cite{Obama08} and (Case 2) \cite{Novak03} and \cite{Lee05}
% and (Case 3) a patent \cite{JoeScientist001}, work accepted for
% publication \cite{rous08}, 'YYYYb'-test for prolific author
% \cite{SaeediMEJ10} and \cite{SaeediJETC10}. Other cites might
% article) ~\cite{Andler79, Hagerup1993}, a proceedings article with
% all possible elements ~\cite{Smith10}, an example of an enumerated
% proceedings article ~\cite{VanGundy07}, an informally published work
% ~\cite{Harel78}, a couple of preprints ~\cite{Bornmann2019,
% AnzarootPBM14}, a doctoral dissertation ~\cite{Clarkson85}, a
% master's thesis: ~\cite{anisi03}, an online document / world wide web
% resource ~\cite{Thornburg01, Ablamowicz07, Poker06}, a video game
% (Case 1) ~\cite{Obama08} and (Case 2) ~\cite{Novak03} and ~\cite{Lee05}
% and (Case 3) a patent ~\cite{JoeScientist001}, work accepted for
% publication ~\cite{rous08}, 'YYYYb'-test for prolific author
% ~\cite{SaeediMEJ10} and ~\cite{SaeediJETC10}. Other cites might
% contain 'duplicate' DOI and URLs (some SIAM articles)
% \cite{Kirschmer:2010:AEI:1958016.1958018}. Boris / Barbara Beeton:
% multi-volume works as books \cite{MR781536} and \cite{MR781537}. A
% ~\cite{Kirschmer:2010:AEI:1958016.1958018}. Boris / Barbara Beeton:
% multi-volume works as books ~\cite{MR781536} and ~\cite{MR781537}. A
% couple of citations with DOIs:
% \cite{2004:ITE:1009386.1010128,Kirschmer:2010:AEI:1958016.1958018}. Online
% citations: \cite{TUGInstmem, Thornburg01, CTANacmart}.
% Artifacts: \cite{R} and \cite{UMassCitations}.
% ~\cite{2004:ITE:1009386.1010128,Kirschmer:2010:AEI:1958016.1958018}. Online
% citations: ~\cite{TUGInstmem, Thornburg01, CTANacmart}.
% Artifacts: ~\cite{R} and ~\cite{UMassCitations}.
% \section{Acknowledgments}

View File

@@ -0,0 +1,70 @@
### General
- [ ] Change name (Thinking of using (Fat Address Translation) -> similar to GNU))
- [ ] Avoid words which create options
- [x] Use citation with ```~/cite{foo}```
- [ ] Clear distinction on Literature review and contribution done
- [x] Generalise capitalisation
- [ ] Avoid several use ex: There are 3 way...
- [x] Instead of "Leverage" -> "use"
- [ ] Remove whitespace from figures to be compressed
- [ ] Uniform font sizes in figures
- [ ] Symmetrical lines on the figure
- [ ] TLB with acronym only once for the first instance in the paper
### Abstract
- [ ] Reduce Abstract to a single paragraph'
- [ ] "Mitigate gap, capacity" -> Expand on for instance on how is it measured.
- [ ] Huge pages moved to the introduction.
- [ ] Robs proposed structure (This paper presents <NAME> user-space memory allocator. It uses capability-based addressing to <list properties>.
### Introduction
- [ ] "It becomes possible" expand more with baseline compressed bounds.
- [ ] "This paper makes the following contribution" -. bullet points with marked sections.
- [ ] Research questions removed.
- [ ] "This implementation" Specify implementation
- [ ] Robs recommended Introduction structure (Expansion of the abstract, Name of the existing system, clearly describe limitation, Introduce memory allocator).
### 2.1 Encoding ranges as bounds
- [x] Repetition "Tracking of memory ranges using information in pointers" -> remove this
- [ ] Paraphrase last sentence
### 2.2 128 bit compressed bounds
- [x] Cites Jemalloc paragraph.
- [ ] Last sentence needs rewriting.
### 2.3 Instrumenting block based allocator
- [ ] Needs citation "Which increases overhead and adds complexity"
- [ ] Elaborate on "this method"
- [ ] "precise" memory management (Elaborate on this and prove which aspects of the other allocator are not precise).
### Memory allocator design
- [x] Remove from heading "sample" and ":"
- [ ] Remove future work paragraph
- [x] "unmapped" -> unmap
- [ ] "Risks of memory leaks with metadata lookups or complex data structures" -> Elaborate on this
### Evaluation
- [x] Name of the project keeps the sentence shorter.
- [x] "Such as" -> Definitive and exhaustive.
- [ ] TLB misses and walk contextualised better.
- [ ] Section reference on evaluation expanded.
- [ ] Remove "Providing a solid foundation for meaningful comparisons"
- [ ] Decide to use Macro or instead "real world C programs"
- [x] 1st section Evaluation remove "We observed...."
- [x] Experiment section typo heading
- [x] Fix Latex benchmarks structure
- [x] Change from "Diagram" to "Figure"
- [ ] Result para 2 -> too wordy
- [x] "aimed" first use of past tense (Recommendation: avoid)
- [x] Last paragraph (More substance)
- [x] Experiment results systematically explained based on benchmarks as bullet points.
- [ ] Rewrite usability
### Related work
- [ ] Related work lifted up after introduction based on the reflection of the feedback.
### Conclusion
- [ ] Rewrite