fixed eurosys Robs changes

This commit is contained in:
2025-04-25 15:00:38 +01:00
parent b4be6facbc
commit 524057812c
8 changed files with 476 additions and 380 deletions

View File

@@ -14,6 +14,7 @@
\@writefile{toc}{\contentsline {section}{\numberline {2}Related work}{1}{section.2}\protected@file@percent }
\newlabel{sec:org0e192da}{{2}{1}{Related work}{section.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Huge Pages}{1}{subsection.2.1}\protected@file@percent }
\citation{IntelItanium}
\citation{Shadow_superpages}
\citation{DirectSegment}
\citation{karakostas_redundant_2015}
@@ -40,17 +41,15 @@
\newlabel{fig:RangeOfMemory}{{2}{3}{Range of memory}{figure.caption.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4}128 bit compressed bounds}{3}{section.4}\protected@file@percent }
\newlabel{sec:128bitCompressedBounds}{{4}{3}{128 bit compressed bounds}{section.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Instrumenting Block-Based Allocators with Physically Contiguous Memory}{4}{subsection.4.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces FAT Address Translations using huge pages}}{4}{figure.caption.5}\protected@file@percent }
\newlabel{fig:HugePages}{{3}{4}{FAT Address Translations using huge pages}{figure.caption.5}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Instrumenting Block-Based Allocators with Physically Contiguous Memory}{4}{subsection.4.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {5}Memory allocator design}{4}{section.5}\protected@file@percent }
\newlabel{sec:MemoryAllocator}{{5}{4}{Memory allocator design}{section.5}{}}
\@writefile{loa}{\contentsline {algorithm}{\numberline {1}{\ignorespaces Malloc implementation}}{4}{algorithm.1}\protected@file@percent }
\newlabel{alg:malloc}{{1}{4}{Malloc implementation}{algorithm.1}{}}
\@writefile{loa}{\contentsline {algorithm}{\numberline {2}{\ignorespaces Free implementation}}{4}{algorithm.2}\protected@file@percent }
\newlabel{alg:free}{{2}{4}{Free implementation}{algorithm.2}{}}
\@writefile{loa}{\contentsline {algorithm}{\numberline {3}{\ignorespaces Init alloc function to create a initial 1 GB huge page}}{4}{algorithm.3}\protected@file@percent }
\newlabel{alg:initAlloc}{{3}{4}{Init alloc function to create a initial 1 GB huge page}{algorithm.3}{}}
\citation{jemalloc}
\citation{cheribsd}
\citation{Morello}
@@ -59,6 +58,8 @@
\citation{Benchmark}
\citation{singh1993}
\citation{holt1995}
\@writefile{loa}{\contentsline {algorithm}{\numberline {3}{\ignorespaces Init alloc function to create a initial 1 GB huge page}}{5}{algorithm.3}\protected@file@percent }
\newlabel{alg:initAlloc}{{3}{5}{Init alloc function to create a initial 1 GB huge page}{algorithm.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {6}Evaluation}{5}{section.6}\protected@file@percent }
\newlabel{sec:Evaluation}{{6}{5}{Evaluation}{section.6}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Experiment setup}{5}{subsection.6.1}\protected@file@percent }
@@ -68,36 +69,35 @@
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.1}Micro benchmark}{5}{subsubsection.6.2.1}\protected@file@percent }
\newlabel{sec:Macro}{{6.2.2}{5}{Macro benchmark}{subsubsection.6.2.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.2}Macro benchmark}{5}{subsubsection.6.2.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}Results}{5}{subsection.6.3}\protected@file@percent }
\newlabel{sec:Results}{{6.3}{5}{Results}{subsection.6.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}Results}{6}{subsection.6.3}\protected@file@percent }
\newlabel{sec:Results}{{6.3}{6}{Results}{subsection.6.3}{}}
\@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{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Percentage difference between the modified memory allocator against the default system memory allocator}}{7}{figure.caption.7}\protected@file@percent }
\newlabel{fig:bargraph}{{4}{7}{Percentage difference between the modified memory allocator against the default system memory allocator}{figure.caption.7}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Kmeans COZ benchmark executed against various cluster sizes}}{7}{figure.caption.8}\protected@file@percent }
\newlabel{fig:org8683315}{{5}{7}{Kmeans COZ benchmark executed against various cluster sizes}{figure.caption.8}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Analysis}{7}{subsection.6.4}\protected@file@percent }
\newlabel{sec:Analysis}{{6.4}{7}{Analysis}{subsection.6.4}{}}
\bibstyle{unsrt}
\bibstyle{unsrtnat}
\bibdata{paperReferences}
\bibcite{mittal_survey_2017}{{1}{}{{}}{{}}}
\bibcite{panwar_hawkeye_2019}{{2}{}{{}}{{}}}
\bibcite{woodruff_cheri_2014}{{3}{}{{}}{{}}}
\bibcite{woodruff_cheri_2019}{{4}{}{{}}{{}}}
\bibcite{TLBReach}{{5}{}{{}}{{}}}
\bibcite{THP}{{6}{}{{}}{{}}}
\bibcite{Shadow_superpages}{{7}{}{{}}{{}}}
\bibcite{DirectSegment}{{8}{}{{}}{{}}}
\bibcite{karakostas_redundant_2015}{{9}{}{{}}{{}}}
\bibcite{chen_flexpointer_2023}{{10}{}{{}}{{}}}
\bibcite{jemalloc}{{11}{}{{}}{{}}}
\bibcite{cheribsd}{{12}{}{{}}{{}}}
\bibcite{Morello}{{13}{}{{}}{{}}}
\bibcite{BenchmarkABI}{{14}{}{{}}{{}}}
\bibcite{PerformanceCounter}{{15}{}{{}}{{}}}
\bibcite{Benchmark}{{16}{}{{}}{{}}}
\bibcite{singh1993}{{17}{}{{}}{{}}}
\bibcite{holt1995}{{18}{}{{}}{{}}}
\bibcite{mittal_survey_2017}{{1}{}{{Mittal}}{{}}}
\bibcite{panwar_hawkeye_2019}{{2}{}{{Panwar et~al.}}{{Panwar, Bansal, and Gopinath}}}
\bibcite{woodruff_cheri_2014}{{3}{}{{Woodruff et~al.}}{{Woodruff, Watson, Chisnall, Moore, Anderson, Davis, Laurie, Neumann, Norton, and Roe}}}
\bibcite{woodruff_cheri_2019}{{4}{}{{Woodruff et~al.}}{{Woodruff, Joannou, Xia, Fox, Norton, Chisnall, Davis, Gudka, Filardo, Markettos, Roe, Neumann, Watson, and Moore}}}
\bibcite{TLBReach}{{5}{2014}{{Pham et~al.}}{{Pham, Bhattacharjee, Eckert, and Loh}}}
\bibcite{THP}{{6}{2003}{{Navarro et~al.}}{{Navarro, Iyer, Druschel, and Cox}}}
\bibcite{IntelItanium}{{7}{2003}{{Cornea et~al.}}{{Cornea, Harrison, and Tang}}}
\bibcite{Shadow_superpages}{{8}{2001}{{Park and Park}}{{}}}
\bibcite{DirectSegment}{{9}{2013}{{Basu et~al.}}{{Basu, Gandhi, Chang, Hill, and Swift}}}
\bibcite{karakostas_redundant_2015}{{10}{}{{Karakostas et~al.}}{{Karakostas, Gandhi, Ayar, Cristal, Hill, {McKinley}, Nemirovsky, Swift, and Ünsal}}}
\bibcite{chen_flexpointer_2023}{{11}{2023}{{Chen et~al.}}{{Chen, Tong, Yang, Yi, and Cheng}}}
\bibcite{jemalloc}{{12}{2006}{{Evans}}{{}}}
\bibcite{cheribsd}{{13}{}{{che}}{{}}}
\bibcite{Morello}{{14}{}{{Mor}}{{}}}
\bibcite{BenchmarkABI}{{15}{2023}{{Watson et~al.}}{{Watson, Clarke, Sewell, Woodruff, Moore, Barnes, Grisenthwaite, Stacer, Baranga, and Richardson}}}
\bibcite{PerformanceCounter}{{16}{}{{Per}}{{}}}
\bibcite{Benchmark}{{17}{}{{Ben}}{{}}}
\bibcite{singh1993}{{18}{1993}{{Singh}}{{}}}
\bibcite{holt1995}{{19}{1995}{{Holt and Singh}}{{}}}
\newlabel{tocindent-1}{0pt}
\newlabel{tocindent0}{0pt}
\newlabel{tocindent1}{4.185pt}
@@ -105,7 +105,8 @@
\newlabel{tocindent3}{18.198pt}
\newlabel{tocindent4}{0pt}
\newlabel{tocindent5}{0pt}
\providecommand\NAT@force@numbers{}\NAT@force@numbers
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Analysis}{8}{subsection.6.4}\protected@file@percent }
\newlabel{sec:Analysis}{{6.4}{8}{Analysis}{subsection.6.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {7}Conclusion}{8}{section.7}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{References}{8}{section*.10}\protected@file@percent }
\newlabel{TotPages}{{8}{8}{}{page.8}{}}

View File

@@ -1,80 +1,141 @@
\begin{thebibliography}{10}
\begin{thebibliography}{19}
\providecommand{\natexlab}[1]{#1}
\providecommand{\url}[1]{\texttt{#1}}
\expandafter\ifx\csname urlstyle\endcsname\relax
\providecommand{\doi}[1]{doi: #1}\else
\providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi
\bibitem{mittal_survey_2017}
\bibitem[Mittal()]{mittal_survey_2017}
Sparsh Mittal.
\newblock A survey of techniques for architecting {TLBs}.
\newblock 29(10):e4061.
\newblock 29\penalty0 (10):\penalty0 e4061.
\newblock ISSN 1532-0634.
\newblock \doi{10.1002/cpe.4061}.
\newblock URL \url{https://onlinelibrary.wiley.com/doi/abs/10.1002/cpe.4061}.
\newblock \_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1002/cpe.4061.
\bibitem{panwar_hawkeye_2019}
\bibitem[Panwar et~al.()Panwar, Bansal, and Gopinath]{panwar_hawkeye_2019}
Ashish Panwar, Sorav Bansal, and K.~Gopinath.
\newblock {HawkEye}: Efficient fine-grained {OS} support for huge pages.
\newblock In {\em Proceedings of the Twenty-Fourth International Conference on
\newblock In \emph{Proceedings of the Twenty-Fourth International Conference on
Architectural Support for Programming Languages and Operating Systems}, pages
347--360. {ACM}.
\newblock ISBN 978-1-4503-6240-5.
\newblock \doi{10.1145/3297858.3304064}.
\newblock URL \url{https://dl.acm.org/doi/10.1145/3297858.3304064}.
\bibitem{woodruff_cheri_2014}
\bibitem[Woodruff et~al.({\natexlab{a}})Woodruff, Watson, Chisnall, Moore,
Anderson, Davis, Laurie, Neumann, Norton, and Roe]{woodruff_cheri_2014}
Jonathan Woodruff, Robert~N.M. Watson, David Chisnall, Simon~W. Moore, Jonathan
Anderson, Brooks Davis, Ben Laurie, Peter~G. Neumann, Robert Norton, and
Michael Roe.
\newblock The {CHERI} capability model: revisiting {RISC} in an age of risk.
\newblock 42(3):457--468.
\newblock 42\penalty0 (3):\penalty0 457--468, {\natexlab{a}}.
\newblock ISSN 0163-5964.
\newblock \doi{10.1145/2678373.2665740}.
\newblock URL \url{https://doi.org/10.1145/2678373.2665740}.
\bibitem{woodruff_cheri_2019}
\bibitem[Woodruff et~al.({\natexlab{b}})Woodruff, Joannou, Xia, Fox, Norton,
Chisnall, Davis, Gudka, Filardo, Markettos, Roe, Neumann, Watson, and
Moore]{woodruff_cheri_2019}
Jonathan Woodruff, Alexandre Joannou, Hongyan Xia, Anthony Fox, Robert~M.
Norton, David Chisnall, Brooks Davis, Khilan Gudka, Nathaniel~W. Filardo,
A.~Theodore Markettos, Michael Roe, Peter~G. Neumann, Robert N.~M. Watson,
and Simon~W. Moore.
\newblock {CHERI} concentrate: Practical compressed capabilities.
\newblock 68(10):1455--1469.
\newblock 68\penalty0 (10):\penalty0 1455--1469, {\natexlab{b}}.
\newblock ISSN 0018-9340, 1557-9956, 2326-3814.
\newblock \doi{10.1109/TC.2019.2914037}.
\newblock URL \url{https://ieeexplore.ieee.org/document/8703061/}.
\bibitem{TLBReach}
\bibitem[Pham et~al.(2014)Pham, Bhattacharjee, Eckert, and Loh]{TLBReach}
Binh Pham, Abhishek Bhattacharjee, Yasuko Eckert, and Gabriel~H. Loh.
\newblock Increasing tlb reach by exploiting clustering in page translations.
\newblock In {\em 2014 IEEE 20th International Symposium on High Performance
\newblock In \emph{2014 IEEE 20th International Symposium on High Performance
Computer Architecture (HPCA)}, pages 558--567, 2014.
\newblock \doi{10.1109/HPCA.2014.6835964}.
\bibitem{THP}
Juan Navarro.
\bibitem[Navarro et~al.(2003)Navarro, Iyer, Druschel, and Cox]{THP}
Juan Navarro, Sitararn Iyer, Peter Druschel, and Alan Cox.
\newblock Practical, transparent operating system support for superpages.
\newblock \emph{SIGOPS Oper. Syst. Rev.}, 36\penalty0 (SI):\penalty0 89104,
December 2003.
\newblock ISSN 0163-5980.
\newblock \doi{10.1145/844128.844138}.
\newblock URL \url{https://doi.org/10.1145/844128.844138}.
\bibitem{Shadow_superpages}
\bibitem[Cornea et~al.(2003)Cornea, Harrison, and Tang]{IntelItanium}
Marius Cornea, John Harrison, and Ping Tak~Peter Tang.
\newblock Intel® itanium® floating-point architecture.
\newblock In \emph{Proceedings of the 2003 Workshop on Computer Architecture
Education: Held in Conjunction with the 30th International Symposium on
Computer Architecture}, WCAE '03, page 3es, New York, NY, USA, 2003.
Association for Computing Machinery.
\newblock ISBN 9781450347327.
\newblock \doi{10.1145/1275521.1275526}.
\newblock URL \url{https://doi.org/10.1145/1275521.1275526}.
\bibitem[Park and Park(2001)]{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.
\newblock \emph{Microprocessors and Microsystems}, 25\penalty0 (7):\penalty0
329--342, 2001.
\newblock ISSN 0141-9331.
\newblock \doi{https://doi.org/10.1016/S0141-9331(01)00125-9}.
\newblock URL
\url{https://www.sciencedirect.com/science/article/pii/S0141933101001259}.
\bibitem{DirectSegment}
\bibitem[Basu et~al.(2013)Basu, Gandhi, Chang, Hill, and Swift]{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.
\newblock \emph{SIGARCH Comput. Archit. News}, 41\penalty0 (3):\penalty0
237248, June 2013.
\newblock ISSN 0163-5964.
\newblock \doi{10.1145/2508148.2485943}.
\newblock URL \url{https://doi.org/10.1145/2508148.2485943}.
\bibitem{karakostas_redundant_2015}
\bibitem[Karakostas et~al.()Karakostas, Gandhi, Ayar, Cristal, Hill,
{McKinley}, Nemirovsky, Swift, and Ünsal]{karakostas_redundant_2015}
Vasileios Karakostas, Jayneel Gandhi, Furkan Ayar, Adrián Cristal, Mark~D.
Hill, Kathryn~S. {McKinley}, Mario Nemirovsky, Michael~M. Swift, and Osman
Ünsal.
\newblock Redundant memory mappings for fast access to large memories.
\newblock In {\em Proceedings of the 42nd Annual International Symposium on
\newblock In \emph{Proceedings of the 42nd Annual International Symposium on
Computer Architecture}, pages 66--78. {ACM}.
\newblock ISBN 978-1-4503-3402-0.
\newblock \doi{10.1145/2749469.2749471}.
\newblock URL \url{https://dl.acm.org/doi/10.1145/2749469.2749471}.
\bibitem{chen_flexpointer_2023}
\bibitem[Chen et~al.(2023)Chen, Tong, Yang, Yi, and
Cheng]{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.
\newblock Flexpointer: Fast address translation based on range tlb and tagged
pointers.
\newblock \emph{ACM Trans. Archit. Code Optim.}, 20\penalty0 (2), March 2023.
\newblock ISSN 1544-3566.
\newblock \doi{10.1145/3579854}.
\newblock URL \url{https://doi.org/10.1145/3579854}.
\bibitem{jemalloc}
{JEMALLOC}.
\bibitem[Evans(2006)]{jemalloc}
Jason Evans.
\newblock A scalable concurrent malloc (3) implementation for freebsd.
\newblock In \emph{Proc. of the bsdcan conference, ottawa, canada}, 2006.
\bibitem{cheribsd}
\bibitem[che()]{cheribsd}
Benchmark {ABI} - {CheriBSD} 23.11 new features tutorial.
\newblock URL
\url{https://www.cheribsd.org/tutorial/23.11/benchmark/index.html}.
\bibitem{Morello}
\bibitem[Mor()]{Morello}
Department of computer science and technology {CHERI}: The arm morello
board.
\newblock URL
\url{https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/cheri-morello.html}.
\bibitem{BenchmarkABI}
\bibitem[Watson et~al.(2023)Watson, Clarke, Sewell, Woodruff, Moore, Barnes,
Grisenthwaite, Stacer, Baranga, and Richardson]{BenchmarkABI}
Robert N.~M. Watson, Jessica Clarke, Peter Sewell, Jonathan Woodruff, Simon~W.
Moore, Graeme Barnes, Richard Grisenthwaite, Kathryn Stacer, Silviu Baranga,
and Alexander Richardson.
@@ -84,23 +145,26 @@ Robert N.~M. Watson, Jessica Clarke, Peter Sewell, Jonathan Woodruff, Simon~W.
Laboratory, 15 JJ Thomson Avenue, Cambridge CB3 0FD, United Kingdom, phone
+44 1223 763500, September 2023.
\bibitem{PerformanceCounter}
\bibitem[Per()]{PerformanceCounter}
Arm architecture reference manual for a-profile architecture.
\newblock URL \url{https://developer.arm.com/documentation/ddi0487/latest}.
\bibitem{Benchmark}
\bibitem[Ben()]{Benchmark}
{CHERI}-allocator/benchmarks/benchmarks/{StressTestMalloc}/glibc-bench.c at
main · akilan1999/{CHERI}-allocator.
\newblock URL
\url{https://github.com/Akilan1999/CHERI-Allocator/blob/main/benchmarks/benchmarks/StressTestMalloc/glibc-bench.c}.
\bibitem{singh1993}
\bibitem[Singh(1993)]{singh1993}
Jaswinder~Pal Singh.
\newblock {\em Parallel Hierarchical N-body Methods and Their Implications for
\newblock \emph{Parallel Hierarchical N-body Methods and Their Implications for
Multiprocessors}.
\newblock PhD thesis, Stanford University, February 1993.
\bibitem{holt1995}
\bibitem[Holt and Singh(1995)]{holt1995}
C.~Holt and Jaswinder~Pal Singh.
\newblock Hierarchical n-body methods on shared address space multiprocessors.
\newblock In {\em SIAM Conference on Parallel Processing for Scientific
\newblock In \emph{SIAM Conference on Parallel Processing for Scientific
Computing}, February 1995.
\newblock To appear.

View File

@@ -1,69 +1,70 @@
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
The style file: unsrtnat.bst
Database file #1: paperReferences.bib
Warning--entry type for "cheribsd" isn't style-file defined
--line 483 of file paperReferences.bib
Warning--entry type for "jemalloc" isn't style-file defined
--line 505 of file paperReferences.bib
--line 496 of file paperReferences.bib
Warning--entry type for "Benchmark" isn't style-file defined
--line 512 of file paperReferences.bib
--line 525 of file paperReferences.bib
Warning--entry type for "Morello" isn't style-file defined
--line 519 of file paperReferences.bib
--line 532 of file paperReferences.bib
Warning--entry type for "PerformanceCounter" isn't style-file defined
--line 526 of file paperReferences.bib
--line 539 of file paperReferences.bib
Warning--empty journal in mittal_survey_2017
Warning--empty year in mittal_survey_2017
Warning--empty year in mittal_survey_2017
Warning--empty year in panwar_hawkeye_2019
Warning--empty year in panwar_hawkeye_2019
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 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 18 entries,
1791 wiz_defined-function locations,
540 strings with 7108 characters,
and the built_in function-call counts, 4072 in all, are:
= -- 306
> -- 229
< -- 4
+ -- 85
- -- 67
* -- 299
:= -- 615
add.period$ -- 47
call.type$ -- 18
change.case$ -- 17
chr.to.int$ -- 0
cite$ -- 30
duplicate$ -- 174
empty$ -- 407
format.name$ -- 67
if$ -- 900
int.to.chr$ -- 0
int.to.str$ -- 18
missing$ -- 11
newline$ -- 84
num.names$ -- 13
pop$ -- 80
Warning--empty year in karakostas_redundant_2015
Warning--empty year in cheribsd
Warning--empty year in Morello
Warning--empty year in PerformanceCounter
Warning--empty year in Benchmark
You've used 19 entries,
2481 wiz_defined-function locations,
694 strings with 9651 characters,
and the built_in function-call counts, 8253 in all, are:
= -- 687
> -- 483
< -- 10
+ -- 187
- -- 148
* -- 708
:= -- 1308
add.period$ -- 89
call.type$ -- 19
change.case$ -- 37
chr.to.int$ -- 18
cite$ -- 38
duplicate$ -- 388
empty$ -- 699
format.name$ -- 167
if$ -- 1758
int.to.chr$ -- 2
int.to.str$ -- 20
missing$ -- 13
newline$ -- 132
num.names$ -- 45
pop$ -- 168
preamble$ -- 1
purify$ -- 0
purify$ -- 19
quote$ -- 0
skip$ -- 111
skip$ -- 240
stack$ -- 0
substring$ -- 219
swap$ -- 42
text.length$ -- 4
substring$ -- 281
swap$ -- 86
text.length$ -- 5
text.prefix$ -- 0
top$ -- 0
type$ -- 0
warning$ -- 12
while$ -- 30
width$ -- 20
write$ -- 162
(There were 17 warnings)
type$ -- 133
warning$ -- 15
while$ -- 47
width$ -- 0
write$ -- 302
(There were 19 warnings)

View File

@@ -1,13 +1,13 @@
# Fdb version 4
["bibtex paper"] 1745226088.13548 "paper.aux" "paper.bbl" "paper" 1745226887.34445 0
"./paperReferences.bib" 1745154876.64218 46828 b3c7e70331098da6a7fbd68e2a4277a3 ""
"/usr/local/texlive/2025/texmf-dist/bibtex/bst/base/unsrt.bst" 1292289607 18030 1376b4b231b50c66211e47e42eda2875 ""
"paper.aux" 1745226887.03248 7750 1497cb0b90f6a69d43cefe86a839a1cf "pdflatex"
["bibtex paper"] 1745589516.16405 "paper.aux" "paper.bbl" "paper" 1745589517.84714 0
"./paperReferences.bib" 1745589340.63702 48697 d4883e407b5f720043f557e554344075 ""
"/usr/local/texlive/2025/texmf-dist/bibtex/bst/natbib/unsrtnat.bst" 1233624470 24550 a41a6405f4de768c43e871d9fbce2bc8 ""
"paper.aux" 1745589517.5207 8552 e0b379fd395dbbe6ebf080ac5170b445 "pdflatex"
(generated)
"paper.bbl"
"paper.blg"
(rewritten before read)
["pdflatex"] 1745226885.83453 "paper.tex" "paper.pdf" "paper" 1745226887.34458 0
["pdflatex"] 1745589516.25369 "paper.tex" "paper.pdf" "paper" 1745589517.84729 0
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc" 1558214095 7693 0f2dce6d313c82989ec3a67fc24df2a0 ""
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_25tcsq.enc" 1490131464 2921 8ca0eb0831f9bc5da080d3697cfe67bf ""
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc" 1490131464 2933 9ad527ce78d7c5fa0a642dead095f172 ""
@@ -219,10 +219,10 @@
"diagram/TLBAccess.drawio.png" 1744196148.80543 77522 75367f218335fe386db852966a892e9b ""
"diagram/bargraph.png" 1744196148.80607 74263 65509d21744edc6c9ca02b8c67d664fb ""
"diagram/kmeans.png" 1744196148.80901 94217 5d14308c169ff296bf499805b9823aa6 ""
"paper.aux" 1745226887.03248 7750 1497cb0b90f6a69d43cefe86a839a1cf "pdflatex"
"paper.bbl" 1745226088.21937 4124 00c91189ca7ebb5f2c50a354246b9795 "bibtex paper"
"paper.out" 1745226887.0343 3219 ff23a20e7f9cd62748c922bd1981ad35 "pdflatex"
"paper.tex" 1745226861.93669 84069 24e852831cdd5c77cb63a6d7ba0879e7 ""
"paper.aux" 1745589517.5207 8552 e0b379fd395dbbe6ebf080ac5170b445 "pdflatex"
"paper.bbl" 1745589516.2507 7952 406fd33fafd3f295010669ce5a521439 "bibtex paper"
"paper.out" 1745589517.52145 3219 ff23a20e7f9cd62748c922bd1981ad35 "pdflatex"
"paper.tex" 1745589509.64475 84123 a4d189845b5fe4a229f1c06aa03b110b ""
(generated)
"paper.aux"
"paper.log"

View File

@@ -1,4 +1,4 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 21 APR 2025 10:14
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 25 APR 2025 14:58
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
@@ -802,7 +802,7 @@ y)
Package grffile Info: This package is an empty stub for compatibility on input
line 40.
)
Package hyperref Info: Option `pdfdisplaydoctitle' set `true' on input line 124
Package hyperref Info: Option `pdfdisplaydoctitle' set `true' on input line 125
.
\c@theorem=\count346
@@ -814,56 +814,56 @@ Excluding comment 'screenonly' Include comment 'printonly'
Include comment 'anonsuppress' (./paper.aux)
\openout1 = `paper.aux'.
LaTeX Font Info: Checking defaults for OML/nxlmi/m/it on input line 124.
LaTeX Font Info: Checking defaults for OML/nxlmi/m/it on input line 125.
LaTeX Font Info: Trying to load font information for OML+nxlmi on input line
124.
125.
(/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/omlnxlmi.fd
File: omlnxlmi.fd 2013/11/19 Fontinst v1.933 font definitions for OML/nxlmi.
)
LaTeX Font Info: ... okay on input line 124.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 124.
LaTeX Font Info: ... okay on input line 124.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 124.
LaTeX Font Info: ... okay on input line 124.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 124.
LaTeX Font Info: ... okay on input line 124.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 124.
LaTeX Font Info: ... okay on input line 124.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 124.
LaTeX Font Info: ... okay on input line 124.
LaTeX Font Info: Checking defaults for U/ntxexa/m/n on input line 124.
LaTeX Font Info: ... okay on input line 125.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 125.
LaTeX Font Info: ... okay on input line 125.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 125.
LaTeX Font Info: ... okay on input line 125.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 125.
LaTeX Font Info: ... okay on input line 125.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 125.
LaTeX Font Info: ... okay on input line 125.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 125.
LaTeX Font Info: ... okay on input line 125.
LaTeX Font Info: Checking defaults for U/ntxexa/m/n on input line 125.
LaTeX Font Info: Trying to load font information for U+ntxexa on input line
124.
125.
(/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxexa.fd
File: untxexa.fd 2012/04/16 Fontinst v1.933 font definitions for U/ntxexa.
)
LaTeX Font Info: ... okay on input line 124.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 124.
LaTeX Font Info: ... okay on input line 124.
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 124.
LaTeX Font Info: ... okay on input line 124.
LaTeX Font Info: Checking defaults for LMS/ntxsy/m/n on input line 124.
LaTeX Font Info: ... okay on input line 125.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 125.
LaTeX Font Info: ... okay on input line 125.
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 125.
LaTeX Font Info: ... okay on input line 125.
LaTeX Font Info: Checking defaults for LMS/ntxsy/m/n on input line 125.
LaTeX Font Info: Trying to load font information for LMS+ntxsy on input line
124.
125.
(/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/lmsntxsy.fd
File: lmsntxsy.fd 2016/07/02 Fontinst v1.933 font definitions for LMS/ntxsy.
)
LaTeX Font Info: ... okay on input line 124.
LaTeX Font Info: Checking defaults for LMX/ntxexx/m/n on input line 124.
LaTeX Font Info: ... okay on input line 125.
LaTeX Font Info: Checking defaults for LMX/ntxexx/m/n on input line 125.
LaTeX Font Info: Trying to load font information for LMX+ntxexx on input lin
e 124.
e 125.
(/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/lmxntxexx.fd
File: lmxntxexx.fd 2016/07/03 Fontinst v1.933 font definitions for LMX/ntxexx.
)
LaTeX Font Info: ... okay on input line 124.
LaTeX Font Info: ... okay on input line 125.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 7.0pt on input line 124.
(Font) scaled to size 7.0pt on input line 125.
LaTeX Font Info: Trying to load font information for OT1+LinuxLibertineT-TLF
on input line 124.
on input line 125.
(/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/OT1LinuxLibertineT-TLF.
fd
@@ -871,85 +871,85 @@ File: OT1LinuxLibertineT-TLF.fd 2017/03/20 (autoinst) Font definitions for OT1/
LinuxLibertineT-TLF.
)
LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 7.3pt on input line 124.
(Font) scaled to size 7.3pt on input line 125.
<<ot1.cmap>>
LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 5.5pt on input line 124.
(Font) scaled to size 5.5pt on input line 125.
LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be
(Font) scaled to size 7.3pt on input line 124.
(Font) scaled to size 7.3pt on input line 125.
<<oml.cmap>>
LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be
(Font) scaled to size 5.5pt on input line 124.
(Font) scaled to size 5.5pt on input line 125.
LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be
(Font) scaled to size 7.3pt on input line 124.
(Font) scaled to size 7.3pt on input line 125.
LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be
(Font) scaled to size 5.5pt on input line 124.
(Font) scaled to size 5.5pt on input line 125.
LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be
(Font) scaled to size 7.3pt on input line 124.
(Font) scaled to size 7.3pt on input line 125.
LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be
(Font) scaled to size 5.5pt on input line 124.
LaTeX Font Info: Trying to load font information for U+msa on input line 124
(Font) scaled to size 5.5pt on input line 125.
LaTeX Font Info: Trying to load font information for U+msa on input line 125
.
(/usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsa.fd
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
)
LaTeX Font Info: Trying to load font information for U+msb on input line 124
LaTeX Font Info: Trying to load font information for U+msb on input line 125
.
(/usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
)
LaTeX Font Info: Trying to load font information for U+ntxmia on input line
124.
125.
(/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxmia.fd
File: untxmia.fd 2024/04/09 Fontinst v1.933 font definitions for U/ntxmia.
)
LaTeX Font Info: Font shape `U/ntxmia/m/it' will be
(Font) scaled to size 7.3pt on input line 124.
(Font) scaled to size 7.3pt on input line 125.
LaTeX Font Info: Font shape `U/ntxmia/m/it' will be
(Font) scaled to size 5.5pt on input line 124.
(Font) scaled to size 5.5pt on input line 125.
LaTeX Font Info: Trying to load font information for U+ntxsym on input line
124.
125.
(/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxsym.fd
File: untxsym.fd 2023/08/16 Fontinst v1.933 font definitions for U/ntxsym.
)
LaTeX Font Info: Font shape `U/ntxsym/m/n' will be
(Font) scaled to size 7.3pt on input line 124.
(Font) scaled to size 7.3pt on input line 125.
LaTeX Font Info: Font shape `U/ntxsym/m/n' will be
(Font) scaled to size 5.5pt on input line 124.
(Font) scaled to size 5.5pt on input line 125.
LaTeX Font Info: Trying to load font information for U+ntxsyc on input line
124.
125.
(/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxsyc.fd
File: untxsyc.fd 2012/04/12 Fontinst v1.933 font definitions for U/ntxsyc.
)
LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be
(Font) scaled to size 7.3pt on input line 124.
(Font) scaled to size 7.3pt on input line 125.
LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be
(Font) scaled to size 5.5pt on input line 124.
(Font) scaled to size 5.5pt on input line 125.
LaTeX Font Info: Font shape `U/ntxexa/m/n' will be
(Font) scaled to size 7.3pt on input line 124.
(Font) scaled to size 7.3pt on input line 125.
LaTeX Font Info: Font shape `U/ntxexa/m/n' will be
(Font) scaled to size 5.5pt on input line 124.
LaTeX Info: Command `\dddot' is already robust on input line 124.
LaTeX Info: Command `\ddddot' is already robust on input line 124.
LaTeX Info: Redefining \microtypecontext on input line 124.
Package microtype Info: Applying patch `item' on input line 124.
Package microtype Info: Applying patch `toc' on input line 124.
Package microtype Info: Applying patch `eqnum' on input line 124.
Package microtype Info: Applying patch `footnote' on input line 124.
Package microtype Info: Applying patch `verbatim' on input line 124.
LaTeX Info: Redefining \microtypesetup on input line 124.
(Font) scaled to size 5.5pt on input line 125.
LaTeX Info: Command `\dddot' is already robust on input line 125.
LaTeX Info: Command `\ddddot' is already robust on input line 125.
LaTeX Info: Redefining \microtypecontext on input line 125.
Package microtype Info: Applying patch `item' on input line 125.
Package microtype Info: Applying patch `toc' on input line 125.
Package microtype Info: Applying patch `eqnum' on input line 125.
Package microtype Info: Applying patch `footnote' on input line 125.
Package microtype Info: Applying patch `verbatim' on input line 125.
LaTeX Info: Redefining \microtypesetup on input line 125.
Package microtype Info: Generating PDF output.
Package microtype Info: Character protrusion enabled (level 2).
Package microtype Info: Using default protrusion set `alltext'.
Package microtype Info: Automatic font expansion enabled (level 2),
(microtype) stretch: 20, shrink: 20, step: 1, non-selected.
Package microtype Info: Using default expansion set `alltext-nott'.
LaTeX Info: Redefining \showhyphens on input line 124.
LaTeX Info: Redefining \showhyphens on input line 125.
Package microtype Info: No adjustment of tracking.
Package microtype Info: No adjustment of interword spacing.
Package microtype Info: No adjustment of character kerning.
@@ -957,7 +957,7 @@ Package microtype Info: Loading generic protrusion settings for font family
(microtype) `LinuxLibertineT-TLF' (encoding: T1).
(microtype) For optimal results, create family-specific settings.
(microtype) See the microtype manual for details.
Package hyperref Info: Link coloring OFF on input line 124.
Package hyperref Info: Link coloring OFF on input line 125.
(./paper.out)
(./paper.out)
\@outlinefile=\write4
@@ -1032,52 +1032,52 @@ Package caption Info: listings package is loaded.
Package caption Info: End \AtBeginDocument code.
\c@lstlisting=\count355
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 17.28pt on input line 307.
(Font) scaled to size 17.28pt on input line 308.
LaTeX Font Info: Trying to load font information for T1+LinuxBiolinumT-TLF o
n input line 307.
n input line 308.
(/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd
File: T1LinuxBiolinumT-TLF.fd 2017/03/20 (autoinst) Font definitions for T1/Lin
uxBiolinumT-TLF.
)
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be
(Font) scaled to size 17.28pt on input line 307.
(Font) scaled to size 17.28pt on input line 308.
Package microtype Info: Loading generic protrusion settings for font family
(microtype) `LinuxBiolinumT-TLF' (encoding: T1).
(microtype) For optimal results, create family-specific settings.
(microtype) See the microtype manual for details.
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/b/n' will be
(Font) scaled to size 17.28pt on input line 307.
(Font) scaled to size 17.28pt on input line 308.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 12.0pt on input line 307.
(Font) scaled to size 12.0pt on input line 308.
LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 12.0pt on input line 307.
(Font) scaled to size 12.0pt on input line 308.
Package microtype Info: Loading generic protrusion settings for font family
(microtype) `LinuxLibertineT-TLF' (encoding: OT1).
(microtype) For optimal results, create family-specific settings.
(microtype) See the microtype manual for details.
LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 8.8pt on input line 307.
(Font) scaled to size 8.8pt on input line 308.
LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 6.6pt on input line 307.
(Font) scaled to size 6.6pt on input line 308.
LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be
(Font) scaled to size 12.0pt on input line 307.
(Font) scaled to size 12.0pt on input line 308.
LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be
(Font) scaled to size 8.8pt on input line 307.
(Font) scaled to size 8.8pt on input line 308.
LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be
(Font) scaled to size 6.6pt on input line 307.
(Font) scaled to size 6.6pt on input line 308.
LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be
(Font) scaled to size 12.0pt on input line 307.
(Font) scaled to size 12.0pt on input line 308.
LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be
(Font) scaled to size 8.8pt on input line 307.
(Font) scaled to size 8.8pt on input line 308.
LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be
(Font) scaled to size 6.6pt on input line 307.
(Font) scaled to size 6.6pt on input line 308.
LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be
(Font) scaled to size 12.0pt on input line 307.
(Font) scaled to size 12.0pt on input line 308.
LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be
(Font) scaled to size 8.8pt on input line 307.
(Font) scaled to size 8.8pt on input line 308.
LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be
(Font) scaled to size 6.6pt on input line 307.
(Font) scaled to size 6.6pt on input line 308.
(/usr/local/texlive/2025/texmf-dist/tex/latex/microtype/mt-msa.cfg
File: mt-msa.cfg 2006/02/04 v1.1 microtype config. file: AMS symbols (a) (RS)
)
@@ -1085,31 +1085,31 @@ File: mt-msa.cfg 2006/02/04 v1.1 microtype config. file: AMS symbols (a) (RS)
File: mt-msb.cfg 2005/06/01 v1.0 microtype config. file: AMS symbols (b) (RS)
)
LaTeX Font Info: Font shape `U/ntxmia/m/it' will be
(Font) scaled to size 12.0pt on input line 307.
(Font) scaled to size 12.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxmia/m/it' will be
(Font) scaled to size 8.8pt on input line 307.
(Font) scaled to size 8.8pt on input line 308.
LaTeX Font Info: Font shape `U/ntxmia/m/it' will be
(Font) scaled to size 6.6pt on input line 307.
(Font) scaled to size 6.6pt on input line 308.
LaTeX Font Info: Font shape `U/ntxsym/m/n' will be
(Font) scaled to size 12.0pt on input line 307.
(Font) scaled to size 12.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxsym/m/n' will be
(Font) scaled to size 8.8pt on input line 307.
(Font) scaled to size 8.8pt on input line 308.
LaTeX Font Info: Font shape `U/ntxsym/m/n' will be
(Font) scaled to size 6.6pt on input line 307.
(Font) scaled to size 6.6pt on input line 308.
LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be
(Font) scaled to size 12.0pt on input line 307.
(Font) scaled to size 12.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be
(Font) scaled to size 8.8pt on input line 307.
(Font) scaled to size 8.8pt on input line 308.
LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be
(Font) scaled to size 6.6pt on input line 307.
(Font) scaled to size 6.6pt on input line 308.
LaTeX Font Info: Font shape `U/ntxexa/m/n' will be
(Font) scaled to size 12.0pt on input line 307.
(Font) scaled to size 12.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxexa/m/n' will be
(Font) scaled to size 8.8pt on input line 307.
(Font) scaled to size 8.8pt on input line 308.
LaTeX Font Info: Font shape `U/ntxexa/m/n' will be
(Font) scaled to size 6.6pt on input line 307.
(Font) scaled to size 6.6pt on input line 308.
LaTeX Font Info: Trying to load font information for TS1+LinuxLibertineT-TLF
on input line 307.
on input line 308.
(/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF.
fd
@@ -1117,151 +1117,151 @@ File: TS1LinuxLibertineT-TLF.fd 2017/03/20 (autoinst) Font definitions for TS1/
LinuxLibertineT-TLF.
)
LaTeX Font Info: Font shape `TS1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 8.8pt on input line 307.
(Font) scaled to size 8.8pt on input line 308.
Package microtype Info: Loading generic protrusion settings for font family
(microtype) `LinuxLibertineT-TLF' (encoding: TS1).
(microtype) For optimal results, create family-specific settings.
(microtype) See the microtype manual for details.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 10.0pt on input line 307.
(Font) scaled to size 10.0pt on input line 308.
LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 10.0pt on input line 307.
(Font) scaled to size 10.0pt on input line 308.
LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be
(Font) scaled to size 10.0pt on input line 307.
(Font) scaled to size 10.0pt on input line 308.
LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be
(Font) scaled to size 10.0pt on input line 307.
(Font) scaled to size 10.0pt on input line 308.
LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be
(Font) scaled to size 10.0pt on input line 307.
(Font) scaled to size 10.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxmia/m/it' will be
(Font) scaled to size 10.0pt on input line 307.
(Font) scaled to size 10.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxsym/m/n' will be
(Font) scaled to size 10.0pt on input line 307.
(Font) scaled to size 10.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be
(Font) scaled to size 10.0pt on input line 307.
(Font) scaled to size 10.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxexa/m/n' will be
(Font) scaled to size 10.0pt on input line 307.
(Font) scaled to size 10.0pt on input line 308.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/b/n' will be
(Font) scaled to size 10.0pt on input line 307.
(Font) scaled to size 10.0pt on input line 308.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/it' will be
(Font) scaled to size 7.0pt on input line 307.
(Font) scaled to size 7.0pt on input line 308.
LaTeX Font Info: Font shape `TS1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 7.0pt on input line 307.
(Font) scaled to size 7.0pt on input line 308.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/b/n' will be
(Font) scaled to size 9.0pt on input line 307.
(Font) scaled to size 9.0pt on input line 308.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/b/n' will be
(Font) scaled to size 10.95pt on input line 307.
(Font) scaled to size 10.95pt on input line 308.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 8.0pt on input line 307.
(Font) scaled to size 8.0pt on input line 308.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/b/n' will be
(Font) scaled to size 8.0pt on input line 307.
(Font) scaled to size 8.0pt on input line 308.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/it' will be
(Font) scaled to size 8.0pt on input line 307.
(Font) scaled to size 8.0pt on input line 308.
LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 8.0pt on input line 307.
(Font) scaled to size 8.0pt on input line 308.
LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 6.0pt on input line 307.
(Font) scaled to size 6.0pt on input line 308.
LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be
(Font) scaled to size 8.0pt on input line 307.
(Font) scaled to size 8.0pt on input line 308.
LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be
(Font) scaled to size 6.0pt on input line 307.
(Font) scaled to size 6.0pt on input line 308.
LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be
(Font) scaled to size 8.0pt on input line 307.
(Font) scaled to size 8.0pt on input line 308.
LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be
(Font) scaled to size 6.0pt on input line 307.
(Font) scaled to size 6.0pt on input line 308.
LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be
(Font) scaled to size 8.0pt on input line 307.
(Font) scaled to size 8.0pt on input line 308.
LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be
(Font) scaled to size 6.0pt on input line 307.
(Font) scaled to size 6.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxmia/m/it' will be
(Font) scaled to size 8.0pt on input line 307.
(Font) scaled to size 8.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxmia/m/it' will be
(Font) scaled to size 6.0pt on input line 307.
(Font) scaled to size 6.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxsym/m/n' will be
(Font) scaled to size 8.0pt on input line 307.
(Font) scaled to size 8.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxsym/m/n' will be
(Font) scaled to size 6.0pt on input line 307.
(Font) scaled to size 6.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be
(Font) scaled to size 8.0pt on input line 307.
(Font) scaled to size 8.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be
(Font) scaled to size 6.0pt on input line 307.
(Font) scaled to size 6.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxexa/m/n' will be
(Font) scaled to size 8.0pt on input line 307.
(Font) scaled to size 8.0pt on input line 308.
LaTeX Font Info: Font shape `U/ntxexa/m/n' will be
(Font) scaled to size 6.0pt on input line 307.
(Font) scaled to size 6.0pt on input line 308.
LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 9.0pt on input line 359.
(Font) scaled to size 9.0pt on input line 360.
LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be
(Font) scaled to size 9.0pt on input line 359.
(Font) scaled to size 9.0pt on input line 360.
LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be
(Font) scaled to size 9.0pt on input line 359.
(Font) scaled to size 9.0pt on input line 360.
LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be
(Font) scaled to size 9.0pt on input line 359.
(Font) scaled to size 9.0pt on input line 360.
LaTeX Font Info: Font shape `U/ntxmia/m/it' will be
(Font) scaled to size 9.0pt on input line 359.
(Font) scaled to size 9.0pt on input line 360.
LaTeX Font Info: Font shape `U/ntxsym/m/n' will be
(Font) scaled to size 9.0pt on input line 359.
(Font) scaled to size 9.0pt on input line 360.
LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be
(Font) scaled to size 9.0pt on input line 359.
(Font) scaled to size 9.0pt on input line 360.
LaTeX Font Info: Font shape `U/ntxexa/m/n' will be
(Font) scaled to size 9.0pt on input line 359.
(Font) scaled to size 9.0pt on input line 360.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 6.0pt on input line 391.
(Font) scaled to size 6.0pt on input line 392.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 36.135pt on input line 391.
LaTeX Font Info: Calculating math sizes for size <36.135> on input line 391.
(Font) scaled to size 36.135pt on input line 392.
LaTeX Font Info: Calculating math sizes for size <36.135> on input line 392.
LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 36.135pt on input line 391.
(Font) scaled to size 36.135pt on input line 392.
LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 26.37839pt on input line 391.
(Font) scaled to size 26.37839pt on input line 392.
LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 19.87434pt on input line 391.
(Font) scaled to size 19.87434pt on input line 392.
LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be
(Font) scaled to size 36.135pt on input line 391.
(Font) scaled to size 36.135pt on input line 392.
LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be
(Font) scaled to size 26.37839pt on input line 391.
(Font) scaled to size 26.37839pt on input line 392.
LaTeX Font Info: Font shape `OML/nxlmi/m/it' will be
(Font) scaled to size 19.87434pt on input line 391.
(Font) scaled to size 19.87434pt on input line 392.
LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be
(Font) scaled to size 36.135pt on input line 391.
(Font) scaled to size 36.135pt on input line 392.
LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be
(Font) scaled to size 26.37839pt on input line 391.
(Font) scaled to size 26.37839pt on input line 392.
LaTeX Font Info: Font shape `LMS/ntxsy/m/n' will be
(Font) scaled to size 19.87434pt on input line 391.
(Font) scaled to size 19.87434pt on input line 392.
LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be
(Font) scaled to size 36.135pt on input line 391.
(Font) scaled to size 36.135pt on input line 392.
LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be
(Font) scaled to size 26.37839pt on input line 391.
(Font) scaled to size 26.37839pt on input line 392.
LaTeX Font Info: Font shape `LMX/ntxexx/m/n' will be
(Font) scaled to size 19.87434pt on input line 391.
(Font) scaled to size 19.87434pt on input line 392.
LaTeX Font Info: Font shape `U/ntxmia/m/it' will be
(Font) scaled to size 36.135pt on input line 391.
(Font) scaled to size 36.135pt on input line 392.
LaTeX Font Info: Font shape `U/ntxmia/m/it' will be
(Font) scaled to size 26.37839pt on input line 391.
(Font) scaled to size 26.37839pt on input line 392.
LaTeX Font Info: Font shape `U/ntxmia/m/it' will be
(Font) scaled to size 19.87434pt on input line 391.
(Font) scaled to size 19.87434pt on input line 392.
LaTeX Font Info: Font shape `U/ntxsym/m/n' will be
(Font) scaled to size 36.135pt on input line 391.
(Font) scaled to size 36.135pt on input line 392.
LaTeX Font Info: Font shape `U/ntxsym/m/n' will be
(Font) scaled to size 26.37839pt on input line 391.
(Font) scaled to size 26.37839pt on input line 392.
LaTeX Font Info: Font shape `U/ntxsym/m/n' will be
(Font) scaled to size 19.87434pt on input line 391.
(Font) scaled to size 19.87434pt on input line 392.
LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be
(Font) scaled to size 36.135pt on input line 391.
(Font) scaled to size 36.135pt on input line 392.
LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be
(Font) scaled to size 26.37839pt on input line 391.
(Font) scaled to size 26.37839pt on input line 392.
LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be
(Font) scaled to size 19.87434pt on input line 391.
(Font) scaled to size 19.87434pt on input line 392.
LaTeX Font Info: Font shape `U/ntxexa/m/n' will be
(Font) scaled to size 36.135pt on input line 391.
(Font) scaled to size 36.135pt on input line 392.
LaTeX Font Info: Font shape `U/ntxexa/m/n' will be
(Font) scaled to size 26.37839pt on input line 391.
(Font) scaled to size 26.37839pt on input line 392.
LaTeX Font Info: Font shape `U/ntxexa/m/n' will be
(Font) scaled to size 19.87434pt on input line 391.
(Font) scaled to size 19.87434pt on input line 392.
[1.1{/usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map}{/usr
/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc}{/usr/
local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_25tcsq.enc}{/usr/l
@@ -1270,50 +1270,47 @@ ocal/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc}
{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_nh77jq.enc}{
/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_7grukw.enc}]
<diagram/HighOverviewArchitecture.drawio.png, id=126, 1072.005pt x 836.12375pt>
<diagram/HighOverviewArchitecture.drawio.png, id=127, 1072.005pt x 836.12375pt>
File: diagram/HighOverviewArchitecture.drawio.png Graphic file (type png)
<use diagram/HighOverviewArchitecture.drawio.png>
Package pdftex.def Info: diagram/HighOverviewArchitecture.drawio.png used on i
nput line 511.
nput line 512.
(pdftex.def) Requested size: 303.78008pt x 236.93262pt.
Class acmart Warning: A possible image without description on input line 515.
Class acmart Warning: A possible image without description on input line 516.
LaTeX Warning: `h' float specifier changed to `ht'.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/it' will be
(Font) scaled to size 9.0pt on input line 517.
(Font) scaled to size 9.0pt on input line 518.
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be
(Font) scaled to size 9.0pt on input line 523.
(Font) scaled to size 9.0pt on input line 524.
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be
(Font) scaled to size 7.0pt on input line 523.
(Font) scaled to size 7.0pt on input line 524.
[2.2]
<diagram/AllocationOverview24.png, id=141, 723.70375pt x 501.875pt>
<diagram/AllocationOverview24.png, id=143, 723.70375pt x 501.875pt>
File: diagram/AllocationOverview24.png Graphic file (type png)
<use diagram/AllocationOverview24.png>
Package pdftex.def Info: diagram/AllocationOverview24.png used on input line 5
40.
41.
(pdftex.def) Requested size: 202.51491pt x 140.43979pt.
Class acmart Warning: A possible image without description on input line 543.
Class acmart Warning: A possible image without description on input line 544.
<diagram/TLBAccess.drawio.png, id=146, 773.89125pt x 945.5325pt>
<diagram/TLBAccess.drawio.png, id=148, 773.89125pt x 945.5325pt>
File: diagram/TLBAccess.drawio.png Graphic file (type png)
<use diagram/TLBAccess.drawio.png>
Package pdftex.def Info: diagram/TLBAccess.drawio.png used on input line 616.
Package pdftex.def Info: diagram/TLBAccess.drawio.png used on input line 617.
(pdftex.def) Requested size: 202.51491pt x 247.43411pt.
Class acmart Warning: A possible image without description on input line 619.
LaTeX Warning: `h' float specifier changed to `ht'.
Class acmart Warning: A possible image without description on input line 620.
Underfull \vbox (badness 10000) has occurred while \output is active []
@@ -1323,13 +1320,13 @@ Underfull \vbox (badness 10000) has occurred while \output is active []
[3.3 <./diagram/HighOverviewArchitecture.drawio.png> <./diagram/AllocationOverv
iew24.png>]
Package hyperref Info: bookmark level for unknown algorithm defaults to 0 on in
put line 672.
put line 673.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/sc' will be
(Font) scaled to size 9.0pt on input line 675.
(Font) scaled to size 9.0pt on input line 676.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 6.6pt on input line 676.
(Font) scaled to size 6.6pt on input line 677.
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
(Font) scaled to size 5.5pt on input line 676.
(Font) scaled to size 5.5pt on input line 677.
@@ -1337,7 +1334,7 @@ LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
[4.4{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_ncsllp.e
nc}{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_oexx6f.en
c} <./diagram/TLBAccess.drawio.png>]
Overfull \hbox (2.01144pt too wide) in paragraph at lines 750--753
Overfull \hbox (2.01144pt too wide) in paragraph at lines 751--754
\T1/LinuxLibertineT-TLF/m/n/9 (-20) loc [[]]. Je-mal-loc is the de-fault mem-or
y al-lo-ca-tor for CHERIBSD [[]].
[]
@@ -1345,67 +1342,71 @@ y al-lo-ca-tor for CHERIBSD [[]].
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/it' will be
(Font) scaled to size 9.0pt on input line 867.
(Font) scaled to size 9.0pt on input line 868.
LaTeX Font Info: Trying to load font information for T1+zi4 on input line 86
8.
9.
(/usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/t1zi4.fd
File: t1zi4.fd 2018/01/14 T1/zi4 (Inconsolata)
)
LaTeX Font Info: Font shape `T1/zi4/m/n' will be
(Font) scaled to size 9.0pt on input line 868.
(Font) scaled to size 9.0pt on input line 869.
Package microtype Info: Loading generic protrusion settings for font family
(microtype) `zi4' (encoding: T1).
(microtype) For optimal results, create family-specific settings.
(microtype) See the microtype manual for details.
<diagram/bargraph.png, id=181, 1156.32pt x 722.7pt>
<diagram/bargraph.png, id=183, 1156.32pt x 722.7pt>
File: diagram/bargraph.png Graphic file (type png)
<use diagram/bargraph.png>
Package pdftex.def Info: diagram/bargraph.png used on input line 911.
Package pdftex.def Info: diagram/bargraph.png used on input line 912.
(pdftex.def) Requested size: 455.6624pt x 284.78517pt.
Class acmart Warning: A possible image without description on input line 913.
Class acmart Warning: A possible image without description on input line 914.
LaTeX Warning: `h' float specifier changed to `ht'.
Underfull \vbox (badness 5802) has occurred while \output is active []
[5.5{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc
}]
<./diagram/kmeans.png, id=201, 1011.78pt x 578.16pt>
File: ./diagram/kmeans.png Graphic file (type png)
<use ./diagram/kmeans.png>
Package pdftex.def Info: ./diagram/kmeans.png used on input line 961.
(pdftex.def) Requested size: 265.2637pt x 151.57959pt.
Overfull \hbox (24.11621pt too wide) in paragraph at lines 961--962
[][]
[]
Class acmart Warning: A possible image without description on input line 963.
Underfull \vbox (badness 10000) has occurred while \output is active []
[6.6]
<./diagram/kmeans.png, id=208, 1011.78pt x 578.16pt>
File: ./diagram/kmeans.png Graphic file (type png)
<use ./diagram/kmeans.png>
Package pdftex.def Info: ./diagram/kmeans.png used on input line 962.
(pdftex.def) Requested size: 265.2637pt x 151.57959pt.
Overfull \hbox (24.11621pt too wide) in paragraph at lines 962--963
[][]
[]
Underfull \vbox (badness 1769) has occurred while \output is active []
Class acmart Warning: A possible image without description on input line 964.
Underfull \vbox (badness 2096) has occurred while \output is active []
Underfull \vbox (badness 10000) has occurred while \output is active []
[7.7 <./diagram/bargraph.png> <./diagram/kmeans.png>] (./paper.bbl
Underfull \vbox (badness 3428) has occurred while \output is active []
Underfull \hbox (badness 2443) in paragraph at lines 91--93
Underfull \hbox (badness 2443) in paragraph at lines 153--157
[]\T1/LinuxLibertineT-TLF/m/n/7 (+20) CHERI-allocator/benchmarks/benchmarks/Str
essTestMalloc/glibc-bench.c at
[]
@@ -1441,13 +1442,13 @@ Package rerunfilecheck Info: File `paper.out' has not changed.
(rerunfilecheck) Checksum: FF23A20E7F9CD62748C922BD1981AD35;3219.
)
Here is how much of TeX's memory you used:
24046 strings out of 473190
394363 string characters out of 5715801
967839 words of memory out of 5000000
46201 multiletter control sequences out of 15000+600000
776193 words of font info for 456 fonts, out of 8000000 for 9000
24068 strings out of 473190
394868 string characters out of 5715801
972033 words of memory out of 5000000
46206 multiletter control sequences out of 15000+600000
777479 words of font info for 467 fonts, out of 8000000 for 9000
1302 hyphenation exceptions out of 8191
90i,16n,131p,1002b,639s stack positions out of 10000i,1000n,20000p,200000b,200000s
90i,16n,131p,1002b,645s stack positions out of 10000i,1000n,20000p,200000b,200000s
</usr/local/texlive/2025/texmf-dist/fonts/type1/public/inconsolata/Inconsolat
a-zi4r.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/newtx/Liberti
neMathMI.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/L
@@ -1459,10 +1460,10 @@ lic/libertine/LinLibertineTB.pfb></usr/local/texlive/2025/texmf-dist/fonts/type
1/public/libertine/LinLibertineTI.pfb></usr/local/texlive/2025/texmf-dist/fonts
/type1/public/newtx/NewTXMI.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1
/public/newtx/txsys.pfb>
Output written on paper.pdf (8 pages, 710565 bytes).
Output written on paper.pdf (8 pages, 714425 bytes).
PDF statistics:
292 PDF objects out of 1000 (max. 8388607)
243 compressed objects within 3 object streams
60 named destinations out of 1000 (max. 500000)
314 PDF objects out of 1000 (max. 8388607)
265 compressed objects within 3 object streams
61 named destinations out of 1000 (max. 500000)
119498 words of extra memory for PDF output out of 128383 (max. 10000000)

Binary file not shown.

View File

@@ -54,6 +54,7 @@
\usepackage{lipsum}
\usepackage{stfloats}
\usepackage{grffile}
\usepackage{hyperref}
\lstset{basicstyle=\small\ttfamily,columns=fullflexible}
@@ -350,7 +351,7 @@ 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 presents additional opportunities for performance enhancement. CHERI's capability-based addressing approach not
only strengthens system security by tightly controlling memory access but also opens avenues for optimising memory management
operations. By integrating CHERI's compressed encoded bounds~\cite{woodruff_cheri_2019} with the use of huge pages, We have shown it is possible to track, manage
operations. By integrating CHERI's compressed encoded bounds~\cite{woodruff_cheri_2019} with the use of huge pages we have shown it is possible to track, manage
large and physically contiguous memory blocks without requiring numerous TLB entries. This combination reduces the TLB pressure by minimising the number of
entries required to map extensive memory regions thereby decreasing TLB misses and improving address translation performance.
Furthermore, we introduce FAT which accelerates memory-intensive tasks by reducing the overhead associated with managing non-contiguous
@@ -392,7 +393,7 @@ The x86-64 architecture supports huge pages of 2 MB and 1 GB which are backed by
% 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 (Page Table Entries) and in contrast 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
half of the memory space. Some architectures offer more page size choices, such as Intel Itanium~\cite{IntelItanium} which
allows different areas of the address space to have their own page sizes. Itanium uses a hash page table to organise huge
pages and without significant changes to the conventional page table. It only helps reduce page walk overheads.
Huge page tunable base page size permits the OS to adjust the base page, but still faces internal fragmentation problems
@@ -468,7 +469,7 @@ provided to support fine-grained memory protection (including spatial, referenti
for scalable software compartmentalisation.
\subsection{CHERI CC}
CHERI Concentrate: Practical Compressed Capabilities\cite{woodruff_cheri_2019} introduces a compression scheme for CHERI that aims to address the performance and compatibility challenges associated with
CHERI CC(Concentrate Compressed Capabilities)~\cite{woodruff_cheri_2019} introduces a compression scheme for CHERI that aims to address the performance and compatibility challenges associated with
capability pointers. Capability pointers enhance memory safety by embedding bounds and permissions directly
within pointers. Traditional implementations of CHERI double their size leading in bounds to increased memory usage. CHERI CC
proposes a compression strategy that preserves security while reducing size and inefficiencies. Key contributions include a floating-point
@@ -476,7 +477,7 @@ bound encoding technique with an internal exponent mechanism that offers greater
\section{Fat Address Translations}
\label{sec:FatPointerTranslations}
Fat Address Translations (FAT) uses the CHERI architecture to
Fat Address Translations (FAT) is our new memory allocator for CHERI. It uses the CHERI architecture to
bring about block-based allocations in physically contiguous memory.
FAT leverages techniques like FlexPointer~\cite{chen_flexpointer_2023} and RMM~\cite{karakostas_redundant_2015} to
reduce pressure on the TLB. A key component
@@ -514,7 +515,7 @@ in this implementation is the use of range addresses with CHERI CC~\cite{woodruf
% \end{minipage}
\end{figure*}
Figure \ref{fig:HighOverviewArchitecture} illustrates a comparison between standard memory allocation (\textit{malloc()}) and the proposed FAT method. The standard approach involves a C program interacting with a custom allocator which uses 48-bit
Figure \ref{fig:HighOverviewArchitecture} illustrates a comparison between standard memory allocation (\textit{malloc}) and the proposed FAT method. The standard approach involves a C program interacting with a custom allocator which uses 48-bit
virtual addresses and a TLB walker (L1, L2 and L3 cache) to achieve non-contiguous allocation in physical memory.
This typically results in more TLB entries and increased TLB misses increasing the reasoning to have more TLB walks.
In contrast, the FAT method employs a custom allocator leveraging
@@ -742,7 +743,7 @@ which is a mechanism supported by modern architectures to optimise memory manage
allocating a fixed block of 1 GB physically contiguous memory. This decision is driven by the
architectural constraints of contemporary systems, particularly ARM-based CPUs. Where 1 GB represents
the largest supported page size. By leveraging huge pages, the algorithm reduces the overhead associated
with page table management and enhances memory access. which is critical for performance-sensitive
with page table management and enhances memory access which is critical for performance-sensitive
applications and kernel-level operations.
\section{Evaluation}
@@ -912,7 +913,7 @@ This extension is described by Holt and Singh ~\cite{holt1995}.
\caption{\label{fig:bargraph}Percentage difference between the modified memory allocator against the default system memory allocator}
\end{figure*}
The graph (Figure \ref{fig:bargraph}) highlights the performance comparison between the modified memory allocator and
Figure \ref{fig:bargraph} highlights the performance comparison between the modified memory allocator and
Jemalloc, the default memory allocator. The FAT memory allocator is specifically optimised
for use with huge pages and demonstrates a clear advantage in scenarios where memory allocation
patterns benefit from its design. The results align with expectations, showcasing the impact
@@ -920,7 +921,7 @@ of its capability to handle memory more efficiently by leveraging huge pages.
\begin{itemize}
\item L1 DTLB reads: There was a noticeable reduction of L1 DTLB reads for kmeans of about an average of
4\% lesser and for Glibc there was significant reduction of 50\% less than Jemalloc.
4\% less than Jemalloc and for Glibc there was significant reduction of 50\% less than Jemalloc.
\item L2 DTLB reads: For all the benchmarks on figure \ref{fig:bargraph} there was on average 98\%
reduction in L2 DTLB reads. This demonstrates that all the TLB translations are read at the L1 TLB
@@ -943,11 +944,11 @@ to be resolved directly at the L1 TLB, the need to walk through the deeper TLB h
largely eliminated. This reduction in translation overhead is a key factor in the allocators
performance for certain types of workloads.
The microbenchmarks which are crafted to emphasise memory read operations, highlight the
The micro benchmarks which are crafted to emphasise memory read operations, highlight the
allocators strengths. These tests simulate frequent and intensive memory access patterns,
where the reduction in TLB misses directly translate into measurable performance gains.
On average, the FAT allocator achieves a 50\% reduction in wall clock runtimes for
these workloads. Underscoring its ability to optimise high-throughput memory operations.
these workloads underscoring its ability to optimise high-throughput memory operations.
On the other hand, macro benchmarks which represent larger and more complex real-world applications,
exhibit minimal differences in wall clock runtimes when using the FAT allocator.
@@ -1006,8 +1007,7 @@ insights into the allocators interaction with system-level caching and memory tr
While the allocator excels in scenarios emphasising on high-memory throughput. Its impact on
macro benchmarks is less pronounced. This suggests that its benefits are most relevant for
applications with frequent and intensive memory operations rather than those constrained by
computation or I/O bottlenecks.
applications with frequent and intensive memory operations rather than are compute-bound workloads.
% \section{Future work}
% The current experimental setup on the ARM Morello board is constrained by the requirement that all memory reads must
@@ -1032,7 +1032,7 @@ computation or I/O bottlenecks.
\section{Conclusion} %Title of the Conclusion
This paper addresses the growing disparity between application workloads and the capacity of TLBs.
To mitigate this gap, we proposed leveraging physically contiguous memory with CHERI bounds to reduce TLB walks.
To mitigate this gap, FAT proposed leveraging physically contiguous memory with CHERI bounds to reduce TLB walks.
We designed a memory allocator that uses huge pages with the CHERI CC scheme to track allocations within the
allocated huge page. This approach reduces the number of TLB entries needed while using bounds
to minimise fragmentation.
@@ -1587,7 +1587,7 @@ by repurposing CHERI's capability-based model with the use of huge pages.
% rhoncus. Maecenas eu arcu ac neque placerat aliquam. Nunc pulvinar
% massa et mattis lacinia.
\bibliographystyle{unsrt}
\bibliographystyle{unsrtnat}
\bibliography{paperReferences}
\end{document}

View File

@@ -14,13 +14,25 @@ abstract = {While superpages are an efficient solution to increase TLB reach, st
}
@article{THP,
title = {Practical, transparent operating system support for superpages},
abstract = {Most general-purpose processors provide support for memory pages of large sizes, called superpages. Superpages enable each entry in the translation lookaside buffer ({TLB}) to map a large physical memory region into a virtual address space. This dramatically increases {TLB} coverage, reduces {TLB} misses, and promises performance improvements for many applications. However, supporting superpages poses several challenges to the operating system, in terms of superpage allocation and promotion tradeoffs, fragmentation control, etc. We analyze these issues, and propose the design of an effective superpage management system. We implement it in {FreeBSD} on the Alpha {CPU}, and evaluate it on real workloads and benchmarks. We obtain substantial performance benefits, often exceeding 30\%; these benefits are sustained even under stressful workload scenarios.},
author = {Navarro, Juan},
langid = {english},
file = {Navarro - Practical, transparent operating system support fo.pdf:/Users/akilan/Zotero/storage/R9MSCWQX/Navarro - Practical, transparent operating system support fo.pdf:application/pdf},
author = {Navarro, Juan and Iyer, Sitararn and Druschel, Peter and Cox, Alan},
title = {Practical, transparent operating system support for superpages},
year = {2003},
issue_date = {Winter 2002},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {36},
number = {SI},
issn = {0163-5980},
url = {https://doi.org/10.1145/844128.844138},
doi = {10.1145/844128.844138},
abstract = {Most general-purpose processors provide support for memory pages of large sizes, called superpages. Superpages enable each entry in the translation lookaside buffer (TLB) to map a large physical memory region into a virtual address space. This dramatically increases TLB coverage, reduces TLB misses, and promises performance improvements for many applications. However, supporting superpages poses several challenges to the operating system, in terms of superpage allocation and promotion tradeoffs, fragmentation control, etc. We analyze these issues, and propose the design of an effective superpage management system. We implement it in FreeBSD on the Alpha CPU, and evaluate it on real workloads and benchmarks. We obtain substantial performance benefits, often exceeding 30\%; these benefits are sustained even under stressful workload scenarios.},
journal = {SIGOPS Oper. Syst. Rev.},
month = dec,
pages = {89104},
numpages = {16}
}
@INPROCEEDINGS{TLBReach,
author={Pham, Binh and Bhattacharjee, Abhishek and Eckert, Yasuko and Loh, Gabriel H.},
booktitle={2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA)},
@@ -99,23 +111,23 @@ keywords = {tanslation lookaside buffer, virtual memory}
}
@article{chen_flexpointer_2023,
title = {{FlexPointer}: Fast Address Translation Based on Range {TLB} and Tagged Pointers},
volume = {20},
issn = {1544-3566, 1544-3973},
url = {https://dl.acm.org/doi/10.1145/3579854},
doi = {10.1145/3579854},
shorttitle = {{FlexPointer}},
abstract = {Page-based virtual memory relies on {TLBs} to accelerate the address translation. Nowadays, the gap between application workloads and the capacity of {TLB} continues to grow, bringing many costly {TLB} misses and making the {TLB} a performance bottleneck. Previous studies seek to narrow the gap by exploiting the contiguity of physical pages. One promising solution is to group pages that are both virtually and physically contiguous into a memory range. Recording range translations can greatly increase the {TLB} reach, but ranges are also hard to index because they have arbitrary bounds. The processor has to compare against all the boundaries to determine which range an address falls in, which restricts the usage of memory ranges.
In this article, we propose a tagged-pointer-based scheme, {FlexPointer}, to solve the range indexing problem. The core insight of {FlexPointer} is that large memory objects are rare, so we can create memory ranges based on such objects and assign each of them a unique {ID}. With the range {ID} integrated into pointers, we can index the range {TLB} with {IDs} and greatly simplify its structure. Moreover, because the {ID} is stored in the unused bits of a pointer and is not manipulated by the address generation, we can shift the range lookup to an earlier stage, working in parallel with the address generation. According to our trace-based simulation results, {FlexPointer} can reduce nearly all the L1 {TLB} misses, and page walks for a variety of memory-intensive workloads. Compared with a 4K-page baseline system, {FlexPointer} shows a 14\% performance improvement on average and up to 2.8x speedup in the best case. For other workloads, {FlexPointer} shows no performance degradation.},
pages = {1--24},
number = {2},
journaltitle = {{ACM} Transactions on Architecture and Code Optimization},
shortjournal = {{ACM} Trans. Archit. Code Optim.},
author = {Chen, Dongwei and Tong, Dong and Yang, Chun and Yi, Jiangfang and Cheng, Xu},
urldate = {2024-05-27},
date = {2023-06-30},
langid = {english},
file = {Full Text PDF:/Users/akilan/Zotero/storage/L9XGZDFK/Chen et al. - 2023 - FlexPointer Fast Address Translation Based on Ran.pdf:application/pdf},
author = {Chen, Dongwei and Tong, Dong and Yang, Chun and Yi, Jiangfang and Cheng, Xu},
title = {FlexPointer: Fast Address Translation Based on Range TLB and Tagged Pointers},
year = {2023},
issue_date = {June 2023},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {20},
number = {2},
issn = {1544-3566},
url = {https://doi.org/10.1145/3579854},
doi = {10.1145/3579854},
abstract = {Page-based virtual memory relies on TLBs to accelerate the address translation. Nowadays, the gap between application workloads and the capacity of TLB continues to grow, bringing many costly TLB misses and making the TLB a performance bottleneck. Previous studies seek to narrow the gap by exploiting the contiguity of physical pages. One promising solution is to group pages that are both virtually and physically contiguous into a memory range. Recording range translations can greatly increase the TLB reach, but ranges are also hard to index because they have arbitrary bounds. The processor has to compare against all the boundaries to determine which range an address falls in, which restricts the usage of memory ranges. In this article, we propose a tagged-pointer-based scheme, FlexPointer, to solve the range indexing problem. The core insight of FlexPointer is that large memory objects are rare, so we can create memory ranges based on such objects and assign each of them a unique ID. With the range ID integrated into pointers, we can index the range TLB with IDs and greatly simplify its structure. Moreover, because the ID is stored in the unused bits of a pointer and is not manipulated by the address generation, we can shift the range lookup to an earlier stage, working in parallel with the address generation. According to our trace-based simulation results, FlexPointer can reduce nearly all the L1 TLB misses, and page walks for a variety of memory-intensive workloads. Compared with a 4K-page baseline system, FlexPointer shows a 14\% performance improvement on average and up to 2.8x speedup in the best case. For other workloads, FlexPointer shows no performance degradation.},
journal = {ACM Trans. Archit. Code Optim.},
month = mar,
articleno = {30},
numpages = {24},
keywords = {Tagged pointer, TLB reach, address translation}
}
@article{woodruff_cheri_2019,
@@ -187,12 +199,13 @@ keywords = {tanslation lookaside buffer, virtual memory}
file = {Curtsinger and Berger - 2015 - Coz Finding Code that Counts with Causal Profilin.pdf:/Users/akilan/Zotero/storage/QTFQXVHE/Curtsinger and Berger - 2015 - Coz Finding Code that Counts with Causal Profilin.pdf:application/pdf},
}
@online{noauthor_benchmark_nodate,
title = {Benchmark {ABI} - {CheriBSD} 23.11 new features tutorial},
url = {https://www.cheribsd.org/tutorial/23.11/benchmark/index.html},
urldate = {2024-06-07},
file = {Benchmark ABI - CheriBSD 23.11 new features tutorial:/Users/akilan/Zotero/storage/9BDKUW28/index.html:text/html},
}
@online{noauthor_benchmark_nodate,
title = {Benchmark {ABI} - {CheriBSD} 23.11 new features tutorial},
url = {https://www.cheribsd.org/tutorial/23.11/benchmark/index.html},
howpublished = "\url{https://www.cheribsd.org/tutorial/23.11/benchmark/index.html}",
urldate = {2024-06-07},
file = {Benchmark ABI - CheriBSD 23.11 new features tutorial:/Users/akilan/Zotero/storage/9BDKUW28/index.html:text/html},
}
@inproceedings{zhu_research_2018,
location = {Taipei, Taiwan},
@@ -502,11 +515,11 @@ keywords = {tanslation lookaside buffer, virtual memory}
number = {UCAM-CL-TR-986}
}
@online{jemalloc,
title = {{JEMALLOC}},
url = {https://jemalloc.net/jemalloc.3.html},
urldate = {2025-01-15},
file = {JEMALLOC:/Users/akilan/Zotero/storage/QDEIEJ9N/jemalloc.3.html:text/html},
@inproceedings{jemalloc,
title={A scalable concurrent malloc (3) implementation for FreeBSD},
author={Evans, Jason},
booktitle={Proc. of the bsdcan conference, ottawa, canada},
year={2006}
}
@online{Benchmark,
@@ -549,6 +562,22 @@ pages = {129139},
numpages = {11}
}
@inproceedings{IntelItanium,
author = {Cornea, Marius and Harrison, John and Tang, Ping Tak Peter},
title = {Intel® Itanium® floating-point architecture},
year = {2003},
isbn = {9781450347327},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/1275521.1275526},
doi = {10.1145/1275521.1275526},
abstract = {The Intel® Itanium® architecture is increasingly becoming one of the major processor architectures present in the market today. Launched in 2001, the Intel Itanium processor was followed in 2002 by the Itanium 2 processor, with increased integer and floating-point performance. Measured by the SPEC CINT2000 benchmarks, the Itanium 2 processor still trails by about 25\% the Intel P4 processor in integer performance, albeit P4 runs at more than three times Itanium's clock frequency. However, its floating-point performance clearly leads in the SPEC CFP2000 charts, and its rating is about 25\% higher than that of the P4 processor. While the general features of the Itanium architecture such as large register sets, predication, speculation, and support for explicit parallelism [1] have been presented in several papers, books, and mainstream college textbooks [2], its floating-point architecture has been less publicized. Two books, [3] and [4], cover well this area. The present paper focuses on the floating-point architecture of the Itanium processor family, and points out a few remarkable features suitable to be the focus of a lecture, lab session, or project in a computer architecture class.},
booktitle = {Proceedings of the 2003 Workshop on Computer Architecture Education: Held in Conjunction with the 30th International Symposium on Computer Architecture},
pages = {3es},
location = {San Diego, California},
series = {WCAE '03}
}
@phdthesis{singh1993,
author = {Singh, Jaswinder Pal},
title = {Parallel Hierarchical N-body Methods and Their Implications for Multiprocessors},