diff --git a/docs/EuroSys/Paper/build.sh b/docs/EuroSys/Paper/build.sh new file mode 100644 index 0000000..089206d --- /dev/null +++ b/docs/EuroSys/Paper/build.sh @@ -0,0 +1 @@ +latexmk -pdf paper.tex diff --git a/docs/EuroSys/Paper/comment.cut b/docs/EuroSys/Paper/comment.cut new file mode 100644 index 0000000..5b2dff9 --- /dev/null +++ b/docs/EuroSys/Paper/comment.cut @@ -0,0 +1 @@ +To Robert, for the bagels and explaining CMYK and color spaces. diff --git a/docs/EuroSys/Paper/diagram/.DS_Store b/docs/EuroSys/Paper/diagram/.DS_Store new file mode 100644 index 0000000..593c0df Binary files /dev/null and b/docs/EuroSys/Paper/diagram/.DS_Store differ diff --git a/docs/EuroSys/Paper/diagram/AllocationOverview24.png b/docs/EuroSys/Paper/diagram/AllocationOverview24.png new file mode 100644 index 0000000..71f03dd Binary files /dev/null and b/docs/EuroSys/Paper/diagram/AllocationOverview24.png differ diff --git a/docs/EuroSys/Paper/diagram/HighOverviewArchitecture.drawio.png b/docs/EuroSys/Paper/diagram/HighOverviewArchitecture.drawio.png new file mode 100644 index 0000000..9baa72d Binary files /dev/null and b/docs/EuroSys/Paper/diagram/HighOverviewArchitecture.drawio.png differ diff --git a/docs/EuroSys/Paper/diagram/HighOverviewArchitecture24.png b/docs/EuroSys/Paper/diagram/HighOverviewArchitecture24.png new file mode 100644 index 0000000..82568e2 Binary files /dev/null and b/docs/EuroSys/Paper/diagram/HighOverviewArchitecture24.png differ diff --git a/docs/EuroSys/Paper/diagram/SoftwareStack24.png b/docs/EuroSys/Paper/diagram/SoftwareStack24.png new file mode 100644 index 0000000..7898354 Binary files /dev/null and b/docs/EuroSys/Paper/diagram/SoftwareStack24.png differ diff --git a/docs/EuroSys/Paper/diagram/TLBAccess.drawio.png b/docs/EuroSys/Paper/diagram/TLBAccess.drawio.png new file mode 100644 index 0000000..b99381f Binary files /dev/null and b/docs/EuroSys/Paper/diagram/TLBAccess.drawio.png differ diff --git a/docs/EuroSys/Paper/diagram/allbenchmarks.png b/docs/EuroSys/Paper/diagram/allbenchmarks.png new file mode 100644 index 0000000..6ef6f53 Binary files /dev/null and b/docs/EuroSys/Paper/diagram/allbenchmarks.png differ diff --git a/docs/EuroSys/Paper/diagram/bargraph.png b/docs/EuroSys/Paper/diagram/bargraph.png new file mode 100644 index 0000000..9396c13 Binary files /dev/null and b/docs/EuroSys/Paper/diagram/bargraph.png differ diff --git a/docs/EuroSys/Paper/diagram/drawio/.DS_Store b/docs/EuroSys/Paper/diagram/drawio/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/docs/EuroSys/Paper/diagram/drawio/.DS_Store differ diff --git a/docs/EuroSys/Paper/diagram/drawio/AllocationOverview.drawio b/docs/EuroSys/Paper/diagram/drawio/AllocationOverview.drawio new file mode 100644 index 0000000..bf5b3fc --- /dev/null +++ b/docs/EuroSys/Paper/diagram/drawio/AllocationOverview.drawio @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/EuroSys/Paper/diagram/drawio/HighOverviewArchitecture-2.drawio b/docs/EuroSys/Paper/diagram/drawio/HighOverviewArchitecture-2.drawio new file mode 100644 index 0000000..720eb53 --- /dev/null +++ b/docs/EuroSys/Paper/diagram/drawio/HighOverviewArchitecture-2.drawio @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/EuroSys/Paper/diagram/drawio/HighOverviewArchitecture-TLB.drawio b/docs/EuroSys/Paper/diagram/drawio/HighOverviewArchitecture-TLB.drawio new file mode 100644 index 0000000..85b587a --- /dev/null +++ b/docs/EuroSys/Paper/diagram/drawio/HighOverviewArchitecture-TLB.drawio @@ -0,0 +1,470 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/EuroSys/Paper/diagram/drawio/HighOverviewArchitecture.drawio b/docs/EuroSys/Paper/diagram/drawio/HighOverviewArchitecture.drawio new file mode 100644 index 0000000..7d313a5 --- /dev/null +++ b/docs/EuroSys/Paper/diagram/drawio/HighOverviewArchitecture.drawio @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/EuroSys/Paper/diagram/drawio/InputLeap_3.0.2_macos_AppleSilicon.dmg b/docs/EuroSys/Paper/diagram/drawio/InputLeap_3.0.2_macos_AppleSilicon.dmg new file mode 100644 index 0000000..9cd0b66 Binary files /dev/null and b/docs/EuroSys/Paper/diagram/drawio/InputLeap_3.0.2_macos_AppleSilicon.dmg differ diff --git a/docs/EuroSys/Paper/diagram/drawio/InputLeap_3.0.2_macos_x86_64.dmg b/docs/EuroSys/Paper/diagram/drawio/InputLeap_3.0.2_macos_x86_64.dmg new file mode 100644 index 0000000..003df15 Binary files /dev/null and b/docs/EuroSys/Paper/diagram/drawio/InputLeap_3.0.2_macos_x86_64.dmg differ diff --git a/docs/EuroSys/Paper/diagram/drawio/Software stack.drawio b/docs/EuroSys/Paper/diagram/drawio/Software stack.drawio new file mode 100644 index 0000000..1681839 --- /dev/null +++ b/docs/EuroSys/Paper/diagram/drawio/Software stack.drawio @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/EuroSys/Paper/diagram/drawio/TLBAccess.drawio b/docs/EuroSys/Paper/diagram/drawio/TLBAccess.drawio new file mode 100644 index 0000000..b41abe9 --- /dev/null +++ b/docs/EuroSys/Paper/diagram/drawio/TLBAccess.drawio @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/EuroSys/Paper/diagram/expirement-runs.png b/docs/EuroSys/Paper/diagram/expirement-runs.png new file mode 100644 index 0000000..e07100c Binary files /dev/null and b/docs/EuroSys/Paper/diagram/expirement-runs.png differ diff --git a/docs/EuroSys/Paper/diagram/glibc.png b/docs/EuroSys/Paper/diagram/glibc.png new file mode 100644 index 0000000..8f86f84 Binary files /dev/null and b/docs/EuroSys/Paper/diagram/glibc.png differ diff --git a/docs/EuroSys/Paper/diagram/hugepages.drawio.png b/docs/EuroSys/Paper/diagram/hugepages.drawio.png new file mode 100644 index 0000000..bb62a42 Binary files /dev/null and b/docs/EuroSys/Paper/diagram/hugepages.drawio.png differ diff --git a/docs/EuroSys/Paper/diagram/hugepages.drawio.svg b/docs/EuroSys/Paper/diagram/hugepages.drawio.svg new file mode 100644 index 0000000..3016501 --- /dev/null +++ b/docs/EuroSys/Paper/diagram/hugepages.drawio.svg @@ -0,0 +1,4 @@ + + + +
48 bit free Virtual address
48 bit free Virtual address
bounds
Upper [11:3]
Bottom[13:3]
bounds...
object type
object type
Permission
Permission
Processor Description
Processor Description
huge page entry
huge page entry
4k page entry
4k page entry
4k page entry
4k page entry
N pages entries 
N pages entries 
L1 TLB
L1 TLB
unused bits
unused bits
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/EuroSys/Paper/diagram/kmeans.png b/docs/EuroSys/Paper/diagram/kmeans.png new file mode 100644 index 0000000..cb1df4f Binary files /dev/null and b/docs/EuroSys/Paper/diagram/kmeans.png differ diff --git a/docs/EuroSys/Paper/diagram/loadmem.png b/docs/EuroSys/Paper/diagram/loadmem.png new file mode 100644 index 0000000..cf154a8 Binary files /dev/null and b/docs/EuroSys/Paper/diagram/loadmem.png differ diff --git a/docs/EuroSys/Paper/drawio/Expirement-new.drawio b/docs/EuroSys/Paper/drawio/Expirement-new.drawio new file mode 100644 index 0000000..734f8a6 --- /dev/null +++ b/docs/EuroSys/Paper/drawio/Expirement-new.drawio @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/EuroSys/Paper/drawio/Expirement.drawio b/docs/EuroSys/Paper/drawio/Expirement.drawio new file mode 100644 index 0000000..5fa7cde --- /dev/null +++ b/docs/EuroSys/Paper/drawio/Expirement.drawio @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/EuroSys/Paper/drawio/Hardwareoverview.drawio b/docs/EuroSys/Paper/drawio/Hardwareoverview.drawio new file mode 100644 index 0000000..e43dae7 --- /dev/null +++ b/docs/EuroSys/Paper/drawio/Hardwareoverview.drawio @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/EuroSys/Paper/drawio/MainOverview.drawio b/docs/EuroSys/Paper/drawio/MainOverview.drawio new file mode 100644 index 0000000..d3922d6 --- /dev/null +++ b/docs/EuroSys/Paper/drawio/MainOverview.drawio @@ -0,0 +1,461 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/EuroSys/Paper/drawio/RangeTLB.drawio b/docs/EuroSys/Paper/drawio/RangeTLB.drawio new file mode 100644 index 0000000..8ec44bb --- /dev/null +++ b/docs/EuroSys/Paper/drawio/RangeTLB.drawio @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/EuroSys/Paper/drawio/RangeTranslation.drawio b/docs/EuroSys/Paper/drawio/RangeTranslation.drawio new file mode 100644 index 0000000..e684dfa --- /dev/null +++ b/docs/EuroSys/Paper/drawio/RangeTranslation.drawio @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/EuroSys/Paper/drawio/hugepages.drawio b/docs/EuroSys/Paper/drawio/hugepages.drawio new file mode 100644 index 0000000..fbdbf6b --- /dev/null +++ b/docs/EuroSys/Paper/drawio/hugepages.drawio @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/EuroSys/Paper/drawio/hugepages.drawio.svg b/docs/EuroSys/Paper/drawio/hugepages.drawio.svg new file mode 100644 index 0000000..3016501 --- /dev/null +++ b/docs/EuroSys/Paper/drawio/hugepages.drawio.svg @@ -0,0 +1,4 @@ + + + +
48 bit free Virtual address
48 bit free Virtual address
bounds
Upper [11:3]
Bottom[13:3]
bounds...
object type
object type
Permission
Permission
Processor Description
Processor Description
huge page entry
huge page entry
4k page entry
4k page entry
4k page entry
4k page entry
N pages entries 
N pages entries 
L1 TLB
L1 TLB
unused bits
unused bits
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/EuroSys/Paper/paper.aux b/docs/EuroSys/Paper/paper.aux new file mode 100644 index 0000000..c6a6a4d --- /dev/null +++ b/docs/EuroSys/Paper/paper.aux @@ -0,0 +1,107 @@ +\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} +\citation{panwar_hawkeye_2019} +\citation{woodruff_cheri_2014} +\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{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}Instrumenting Block-Based Allocators with Physically Contiguous Memory}{2}{subsection.2.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Sample memory allocator design:}{2}{subsection.2.3}\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{loa}{\contentsline {algorithm}{\numberline {1}{\ignorespaces Sample malloc implementation\relax }}{3}{algorithm.1}\protected@file@percent } +\newlabel{alg:malloc}{{1}{3}{Sample malloc implementation\relax }{algorithm.1}{}} +\@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} +\citation{Morello} +\citation{BenchmarkABI} +\@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 } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Expirement setup}{4}{subsection.3.1}\protected@file@percent } +\citation{PerformanceCounter} +\citation{Benchmark} +\@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{lot}{\contentsline {table}{\numberline {1}{\ignorespaces ARM performance counters\relax }}{5}{table.caption.6}\protected@file@percent } +\newlabel{tab:org246a883}{{1}{5}{ARM performance counters\relax }{table.caption.6}{}} +\citation{panwar_hawkeye_2019} +\citation{THP} +\citation{Shadow_superpages} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Results}{6}{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{toc}{\contentsline {section}{\numberline {4}Related work}{6}{section.4}\protected@file@percent } +\newlabel{sec:org0e192da}{{4}{6}{Related work}{section.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Huge Pages}{6}{subsection.4.1}\protected@file@percent } +\citation{DirectSegment} +\citation{karakostas_redundant_2015} +\@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:orga7f3598}{{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 {subsection}{\numberline {4.2}Direct Segment}{7}{subsection.4.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Range Memory Mapping (RMM)}{7}{subsection.4.3}\protected@file@percent } +\citation{esswoodcheriosnodate} +\@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 {subsection}{\numberline {5.3}Concept of SASOS:}{8}{subsection.5.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Advantages of SASOS with CHERI:}{8}{subsection.5.4}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6}Conclusion}{8}{section.6}\protected@file@percent } +\bibstyle{unsrt} +\bibdata{paperReferences} +\bibcite{mittal_survey_2017}{{1}{}{{}}{{}}} +\bibcite{panwar_hawkeye_2019}{{2}{}{{}}{{}}} +\bibcite{woodruff_cheri_2014}{{3}{}{{}}{{}}} +\bibcite{woodruff_cheri_2019}{{4}{}{{}}{{}}} +\bibcite{jemalloc}{{5}{}{{}}{{}}} +\bibcite{cheribsd}{{6}{}{{}}{{}}} +\bibcite{Morello}{{7}{}{{}}{{}}} +\bibcite{BenchmarkABI}{{8}{}{{}}{{}}} +\bibcite{PerformanceCounter}{{9}{}{{}}{{}}} +\bibcite{Benchmark}{{10}{}{{}}{{}}} +\bibcite{THP}{{11}{}{{}}{{}}} +\bibcite{Shadow_superpages}{{12}{}{{}}{{}}} +\bibcite{DirectSegment}{{13}{}{{}}{{}}} +\bibcite{karakostas_redundant_2015}{{14}{}{{}}{{}}} +\newlabel{tocindent-1}{0pt} +\newlabel{tocindent0}{0pt} +\newlabel{tocindent1}{4.185pt} +\newlabel{tocindent2}{10.34999pt} +\newlabel{tocindent3}{18.198pt} +\providecommand\NAT@force@numbers{}\NAT@force@numbers +\@writefile{toc}{\contentsline {section}{References}{9}{section*.10}\protected@file@percent } +\newlabel{TotPages}{{9}{9}{}{page.9}{}} +\gdef \@abspage@last{9} diff --git a/docs/EuroSys/Paper/paper.bbl b/docs/EuroSys/Paper/paper.bbl new file mode 100644 index 0000000..f66a9b1 --- /dev/null +++ b/docs/EuroSys/Paper/paper.bbl @@ -0,0 +1,82 @@ +\begin{thebibliography}{10} + +\bibitem{mittal_survey_2017} +Sparsh Mittal. +\newblock A survey of techniques for architecting {TLBs}. +\newblock 29(10):e4061. +\newblock \_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1002/cpe.4061. + +\bibitem{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 + Architectural Support for Programming Languages and Operating Systems}, pages + 347--360. {ACM}. + +\bibitem{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. + +\bibitem{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. + +\bibitem{jemalloc} +{JEMALLOC}. + +\bibitem{cheribsd} +Benchmark {ABI} - {CheriBSD} 23.11 new features tutorial. + +\bibitem{Morello} +Department of computer science and technology – {CHERI}: The arm morello + board. + +\bibitem{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. +\newblock {Early performance results from the prototype Morello + microarchitecture}. +\newblock Technical Report UCAM-CL-TR-986, University of Cambridge, Computer + Laboratory, 15 JJ Thomson Avenue, Cambridge CB3 0FD, United Kingdom, phone + +44 1223 763500, September 2023. + +\bibitem{PerformanceCounter} +Arm architecture reference manual for a-profile architecture. + +\bibitem{Benchmark} +{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):237–248, June 2013. + +\bibitem{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 + Computer Architecture}, pages 66--78. {ACM}. + +\end{thebibliography} diff --git a/docs/EuroSys/Paper/paper.blg b/docs/EuroSys/Paper/paper.blg new file mode 100644 index 0000000..ccf43d3 --- /dev/null +++ b/docs/EuroSys/Paper/paper.blg @@ -0,0 +1,68 @@ +This is BibTeX, Version 0.99d (TeX Live 2022) +Capacity: max_strings=200000, hash_size=200000, hash_prime=170003 +The top-level auxiliary file: paper.aux +The style file: unsrt.bst +Database file #1: paperReferences.bib +Warning--entry type for "cheribsd" isn't style-file defined +--line 471 of file paperReferences.bib +Warning--entry type for "jemalloc" isn't style-file defined +--line 493 of file paperReferences.bib +Warning--entry type for "Benchmark" isn't style-file defined +--line 500 of file paperReferences.bib +Warning--entry type for "Morello" isn't style-file defined +--line 507 of file paperReferences.bib +Warning--entry type for "PerformanceCounter" isn't style-file defined +--line 514 of file paperReferences.bib +Warning--I didn't find a database entry for "esswoodcheriosnodate" +Warning--empty journal in mittal_survey_2017 +Warning--empty year in mittal_survey_2017 +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 +You've used 14 entries, + 1791 wiz_defined-function locations, + 518 strings with 6373 characters, +and the built_in function-call counts, 3132 in all, are: += -- 228 +> -- 186 +< -- 3 ++ -- 69 +- -- 55 +* -- 239 +:= -- 472 +add.period$ -- 34 +call.type$ -- 14 +change.case$ -- 14 +chr.to.int$ -- 0 +cite$ -- 24 +duplicate$ -- 125 +empty$ -- 312 +format.name$ -- 55 +if$ -- 686 +int.to.chr$ -- 0 +int.to.str$ -- 14 +missing$ -- 8 +newline$ -- 63 +num.names$ -- 9 +pop$ -- 62 +preamble$ -- 1 +purify$ -- 0 +quote$ -- 0 +skip$ -- 86 +stack$ -- 0 +substring$ -- 175 +swap$ -- 28 +text.length$ -- 3 +text.prefix$ -- 0 +top$ -- 0 +type$ -- 0 +warning$ -- 10 +while$ -- 22 +width$ -- 16 +write$ -- 119 +(There were 16 warnings) diff --git a/docs/EuroSys/Paper/paper.fdb_latexmk b/docs/EuroSys/Paper/paper.fdb_latexmk new file mode 100644 index 0000000..354b8cc --- /dev/null +++ b/docs/EuroSys/Paper/paper.fdb_latexmk @@ -0,0 +1,228 @@ +# Fdb version 3 +["bibtex paper"] 1740927026 "paper.aux" "paper.bbl" "paper" 1740927028 + "/usr/local/texlive/2022/texmf-dist/bibtex/bst/base/unsrt.bst" 1292289607 18030 1376b4b231b50c66211e47e42eda2875 "" + "paper.aux" 1740927028 7769 cce4eb6dc6d798b51fbe7a178c89573e "pdflatex" + "paperReferences.bib" 1740927020 43881 89a1490784dad1fc6ac99d5562dad496 "" + (generated) + "paper.bbl" + "paper.blg" +["pdflatex"] 1740927027 "paper.tex" "paper.pdf" "paper" 1740927028 + "/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" 1740927028 7769 cce4eb6dc6d798b51fbe7a178c89573e "pdflatex" + "paper.bbl" 1740927027 3157 f7bf8e4ca8e5ead2be76892ccdcf9508 "bibtex paper" + "paper.out" 1740927028 4003 c9c5ff980e1cf5431e70b96fc8b4c94e "pdflatex" + "paper.tex" 1740926924 76374 846c91be80771745aa759f0aca3449f9 "" + (generated) + "paper.aux" + "paper.log" + "paper.out" + "paper.pdf" diff --git a/docs/EuroSys/Paper/paper.fls b/docs/EuroSys/Paper/paper.fls new file mode 100644 index 0000000..952ffe9 --- /dev/null +++ b/docs/EuroSys/Paper/paper.fls @@ -0,0 +1,1470 @@ +PWD /Users/akilan/Documents/Cheri/Test/CHERI-Allocator/docs/EuroSys/Paper +INPUT /usr/local/texlive/2022/texmf.cnf +INPUT /usr/local/texlive/2022/texmf-dist/web2c/texmf.cnf +INPUT /usr/local/texlive/2022/texmf-var/web2c/pdftex/pdflatex.fmt +INPUT paper.tex +OUTPUT paper.log +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/acmart/acmart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/acmart/acmart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/acmart/acmart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/acmart/acmart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/acmart/acmart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/acmart/acmart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/acmart/acmart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/acmart/acmart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/acmart/acmart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/acmart/acmart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/acmart/acmart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xkeyval/xkeyval.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xkeyval/xkvutils.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xkeyval/keyval.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsart.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/fonts/map/fontname/texfonts.map +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr9.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/everyshi/everyshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/everyshi/everyshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/everyshi/everyshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/everyshi/everyshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/everyshi/everyshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/everyshi/everyshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/everyshi/everyshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/everyshi/everyshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/everyshi/everyshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/everyshi/everyshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/everyshi/everyshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/environ/environ.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/environ/environ.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/environ/environ.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/environ/environ.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/environ/environ.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/environ/environ.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/environ/environ.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/environ/environ.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/environ/environ.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/environ/environ.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/environ/environ.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/trimspaces/trimspaces.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/trimspaces/trimspaces.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/trimspaces/trimspaces.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/trimspaces/trimspaces.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/trimspaces/trimspaces.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/trimspaces/trimspaces.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/trimspaces/trimspaces.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/trimspaces/trimspaces.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/trimspaces/trimspaces.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/trimspaces/trimspaces.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/trimspaces/trimspaces.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/textcase/textcase.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/textcase/textcase.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/textcase/textcase.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/textcase/textcase.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/textcase/textcase.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/textcase/textcase.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/textcase/textcase.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/textcase/textcase.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/textcase/textcase.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/textcase/textcase.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/textcase/textcase.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/natbib/natbib.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/natbib/natbib.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/natbib/natbib.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/natbib/natbib.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/natbib/natbib.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/natbib/natbib.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/natbib/natbib.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/natbib/natbib.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/natbib/natbib.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/natbib/natbib.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/natbib/natbib.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/stringenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/stringenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/stringenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/stringenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/stringenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/stringenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/stringenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/stringenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/stringenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/stringenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/stringenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/ifdraft.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/ifdraft.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/ifdraft.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/ifdraft.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/ifdraft.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/ifdraft.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/ifdraft.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/ifdraft.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/ifdraft.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/ifdraft.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/ifdraft.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/puenc.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/puenc.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/puenc.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/puenc.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/color.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/manyfoot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/manyfoot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/manyfoot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/manyfoot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/manyfoot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/manyfoot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/manyfoot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/manyfoot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/manyfoot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/manyfoot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/manyfoot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/nccfoots.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/nccfoots.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/nccfoots.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/nccfoots.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/nccfoots.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/nccfoots.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/nccfoots.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/nccfoots.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/nccfoots.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/nccfoots.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/nccfoots.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftex/glyphtounicode.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftex/glyphtounicode.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftex/glyphtounicode.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftex/glyphtounicode.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftex/glyphtounicode.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftex/glyphtounicode.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/pdftex/glyphtounicode.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/cmap.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/cmap.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/cmap.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/cmap.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/cmap.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/cmap.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/cmap.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/cmap.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/cmap.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/cmap.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/cmap.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm0900.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/t1.cmap +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/t1.cmap +OUTPUT paper.pdf +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/t1.cmap +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/mweights/mweights.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fontaxes/fontaxes.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fontaxes/fontaxes.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fontaxes/fontaxes.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fontaxes/fontaxes.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fontaxes/fontaxes.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fontaxes/fontaxes.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fontaxes/fontaxes.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fontaxes/fontaxes.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fontaxes/fontaxes.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fontaxes/fontaxes.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fontaxes/fontaxes.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/LinLibertine_I.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/LinLibertine_I.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/LinLibertine_I.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/LinLibertine_I.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/LinLibertine_I.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/LinLibertine_I.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/LinLibertine_I.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/centernot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/centernot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/centernot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/centernot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/centernot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/centernot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/centernot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/centernot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/centernot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/centernot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/centernot.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kastrup/binhex.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kastrup/binhex.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kastrup/binhex.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kastrup/binhex.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kastrup/binhex.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kastrup/binhex.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/kastrup/binhex.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption-ams-smf.sto +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption-ams-smf.sto +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption-ams-smf.sto +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption-ams-smf.sto +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/comment/comment.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/comment/comment.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/comment/comment.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/comment/comment.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/comment/comment.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/comment/comment.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/comment/comment.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/comment/comment.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/comment/comment.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/comment/comment.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/comment/comment.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/T1LinuxLibertineT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/T1LinuxLibertineT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/T1LinuxLibertineT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/T1LinuxLibertineT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/sttools/stfloats.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/sttools/stfloats.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/sttools/stfloats.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/sttools/stfloats.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/sttools/stfloats.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/sttools/stfloats.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/sttools/stfloats.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/sttools/stfloats.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/sttools/stfloats.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/sttools/stfloats.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/sttools/stfloats.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/grffile/grffile.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/grffile/grffile.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/grffile/grffile.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/grffile/grffile.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/grffile/grffile.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/grffile/grffile.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/grffile/grffile.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/grffile/grffile.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/grffile/grffile.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/grffile/grffile.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/grffile/grffile.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/preprint/balance.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/preprint/balance.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/preprint/balance.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/preprint/balance.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/preprint/balance.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/preprint/balance.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/preprint/balance.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/preprint/balance.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/preprint/balance.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/preprint/balance.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/preprint/balance.sty +INPUT ./paper.aux +INPUT paper.aux +INPUT paper.aux +OUTPUT paper.aux +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/omlnxlmi.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/omlnxlmi.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/omlnxlmi.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/omlnxlmi.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxexa.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxexa.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxexa.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxexa.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/lmsntxsy.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/lmsntxsy.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/lmsntxsy.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/lmsntxsy.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/lmxntxexx.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/lmxntxexx.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/lmxntxexx.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/lmxntxexx.fd +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/OT1LinuxLibertineT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/OT1LinuxLibertineT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/OT1LinuxLibertineT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/OT1LinuxLibertineT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/ot1.cmap +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/ot1.cmap +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/cmap/ot1.cmap +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi7.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/mmap/oml.cmap +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/mmap/oml.cmap +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/mmap/oml.cmap +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi5.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy7.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy5.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsb.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsb.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsb.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsb.fd +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxmia.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxmia.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxmia.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxmia.fd +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxsym.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxsym.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxsym.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxsym.fd +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxsyc.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxsyc.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxsyc.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxsyc.fd +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT ./paper.out +INPUT paper.out +INPUT ./paper.out +INPUT paper.out +INPUT ./paper.out +INPUT paper.out +INPUT ./paper.out +INPUT paper.out +INPUT ./paper.out +INPUT ./paper.out +OUTPUT paper.out +INPUT /usr/local/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/local/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/local/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/local/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/upquote/upquote.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/upquote/upquote.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/upquote/upquote.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/upquote/upquote.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/upquote/upquote.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/upquote/upquote.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/upquote/upquote.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/upquote/upquote.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/upquote/upquote.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/upquote/upquote.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/upquote/upquote.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumT-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTB-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi7.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy7.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/mt-msa.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/mt-msa.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/mt-msa.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/mt-msa.cfg +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/mt-msb.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/mt-msb.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/mt-msb.cfg +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/microtype/mt-msb.cfg +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF.fd +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ts1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ts1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi7.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi5.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy7.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy5.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinBiolinumTB-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTB-tlf-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-ts1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ts1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineTB-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineTB-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineTI-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineTB-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineTI-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-ts1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ts1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/newtx/ntxsy.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/txsys.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/txex-bar.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineTB-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1--base.tfm +INPUT ./diagram/HighOverviewArchitecture.drawio.png +INPUT ./diagram/HighOverviewArchitecture.drawio.png +INPUT diagram/HighOverviewArchitecture.drawio.png +INPUT ./diagram/HighOverviewArchitecture.drawio.png +INPUT ./diagram/HighOverviewArchitecture.drawio.png +INPUT ./diagram/AllocationOverview24.png +INPUT ./diagram/AllocationOverview24.png +INPUT diagram/AllocationOverview24.png +INPUT ./diagram/AllocationOverview24.png +INPUT ./diagram/AllocationOverview24.png +INPUT ./diagram/TLBAccess.drawio.png +INPUT ./diagram/TLBAccess.drawio.png +INPUT diagram/TLBAccess.drawio.png +INPUT ./diagram/TLBAccess.drawio.png +INPUT ./diagram/TLBAccess.drawio.png +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-sc-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumT-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumT-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinBiolinumT-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumT-tlf-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-sc-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-sc-t1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/newtx/nxlmi.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/LibertineMathMI.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/NewTXMI.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/stxscr.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-ot1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1--base.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTI-tlf-t1.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinBiolinumTI-tlf-t1.vf +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTI-tlf-t1--base.tfm +INPUT ./diagram/bargraph.png +INPUT ./diagram/bargraph.png +INPUT diagram/bargraph.png +INPUT ./diagram/bargraph.png +INPUT ./diagram/bargraph.png +INPUT ./diagram/kmeans.png +INPUT ./diagram/kmeans.png +INPUT ./diagram/kmeans.png +INPUT ./diagram/kmeans.png +INPUT ./diagram/kmeans.png +INPUT ./paper.bbl +INPUT paper.bbl +INPUT ./paper.bbl +INPUT paper.bbl +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-pdfdoc.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-pdfdoc.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-pdfdoc.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-pdfdoc.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-pdfdoc.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-pdfdoc.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-utf8.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-utf8.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-utf8.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-utf8.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-utf8.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-utf8.def +INPUT paper.aux +INPUT ./paper.out +INPUT ./paper.out +INPUT /usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_25tcsq.enc +INPUT /usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_oexx6f.enc +INPUT /usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_ncsllp.enc +INPUT /usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_7grukw.enc +INPUT /usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_nh77jq.enc +INPUT /usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc +INPUT /usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/newtx/LibertineMathMI.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinBiolinumT.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinBiolinumTB.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinBiolinumTI.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinLibertineT.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinLibertineTB.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinLibertineTI.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/newtx/NewTXMI.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/newtx/txsys.pfb diff --git a/docs/EuroSys/Paper/paper.log b/docs/EuroSys/Paper/paper.log new file mode 100644 index 0000000..1fa5fb3 --- /dev/null +++ b/docs/EuroSys/Paper/paper.log @@ -0,0 +1,1288 @@ +This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.8.23) 2 MAR 2025 14:50 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**paper.tex +(./paper.tex +LaTeX2e <2021-11-15> patch level 1 +L3 programming layer <2022-02-24> +(/usr/local/texlive/2022/texmf-dist/tex/latex/acmart/acmart.cls +Document Class: acmart 2022/02/19 v1.83 Typesetting articles for the Associatio +n for Computing Machinery +(/usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty +Package: xkeyval 2020/11/20 v2.8 package option processing (HA) + +(/usr/local/texlive/2022/texmf-dist/tex/generic/xkeyval/xkeyval.tex +(/usr/local/texlive/2022/texmf-dist/tex/generic/xkeyval/xkvutils.tex +\XKV@toks=\toks16 +\XKV@tempa@toks=\toks17 + +(/usr/local/texlive/2022/texmf-dist/tex/generic/xkeyval/keyval.tex)) +\XKV@depth=\count185 +File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA) +)) +(/usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.sty +(/usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.tex +\integerpart=\count186 +\decimalpart=\count187 +) +Package: xstring 2021/07/21 v1.84 String manipulations (CT) +) +(/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty +Package: iftex 2022/02/03 v1.0f TeX engine tests +) +Package acmart Info: Not using screen mode on input line 73. +Package acmart Info: Using breaking urls on hyphens on input line 81. +Package acmart Info: Requiring acmthm on input line 89. +Package acmart Info: Not using review mode on input line 98. +Package acmart Info: Not using authorversion mode on input line 106. +Package acmart Info: Not using nonacm mode on input line 118. +Package acmart Info: Explicitly selecting natbib mode on input line 134. +Package acmart Info: Not using anonymous mode on input line 142. +Package acmart Info: Not using timestamp mode on input line 150. +Package acmart Info: Not using authordraft mode on input line 160. +Package acmart Info: Using authordraft mode on input line 174. +Class acmart Info: Using format sigconf, number 4 on input line 174. +Class acmart Info: Using fontsize 9pt on input line 258. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsart.cls +Document Class: amsart 2020/05/29 v2.20.6 +\linespacing=\dimen138 +\normalparindent=\dimen139 +\normaltopskip=\skip47 +(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2021/10/15 v2.17l AMS math features +\@mathmargin=\skip48 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2021/08/26 v2.01 AMS text + +(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks18 +\ex@=\dimen140 +)) +(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen141 +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2021/08/26 v2.02 operator names +) +\inf@bad=\count188 +LaTeX Info: Redefining \frac on input line 234. +\uproot@=\count189 +\leftroot@=\count190 +LaTeX Info: Redefining \overline on input line 399. +\classnum@=\count191 +\DOTSCASE@=\count192 +LaTeX Info: Redefining \ldots on input line 496. +LaTeX Info: Redefining \dots on input line 499. +LaTeX Info: Redefining \cdots on input line 620. +\Mathstrutbox@=\box50 +\strutbox@=\box51 +\big@size=\dimen142 +LaTeX Font Info: Redeclaring font encoding OML on input line 743. +LaTeX Font Info: Redeclaring font encoding OMS on input line 744. +\macc@depth=\count193 +\c@MaxMatrixCols=\count194 +\dotsspace@=\muskip16 +\c@parentequation=\count195 +\dspbrk@lvl=\count196 +\tag@help=\toks19 +\row@=\count197 +\column@=\count198 +\maxfields@=\count199 +\andhelp@=\toks20 +\eqnshift@=\dimen143 +\alignsep@=\dimen144 +\tagshift@=\dimen145 +\tagwidth@=\dimen146 +\totwidth@=\dimen147 +\lineht@=\dimen148 +\@envbody=\toks21 +\multlinegap=\skip49 +\multlinetaggap=\skip50 +\mathdisplay@stack=\toks22 +LaTeX Info: Redefining \[ on input line 2938. +LaTeX Info: Redefining \] on input line 2939. +) +LaTeX Font Info: Trying to load font information for U+msa on input line 397 +. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +) +\copyins=\insert252 +\abstractbox=\box52 +\listisep=\skip51 +\c@part=\count266 +\c@section=\count267 +\c@subsection=\count268 +\c@subsubsection=\count269 +\c@paragraph=\count270 +\c@subparagraph=\count271 +\c@figure=\count272 +\c@table=\count273 +\abovecaptionskip=\skip52 +\belowcaptionskip=\skip53 +\captionindent=\dimen149 +\thm@style=\toks23 +\thm@bodyfont=\toks24 +\thm@headfont=\toks25 +\thm@notefont=\toks26 +\thm@headpunct=\toks27 +\thm@preskip=\skip54 +\thm@postskip=\skip55 +\thm@headsep=\skip56 +\dth@everypar=\toks28 +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.sty +Package: microtype 2022/03/14 v3.0d Micro-typographical refinements (RS) + +(/usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count274 +) +\MT@toks=\toks29 +\MT@tempbox=\box53 +\MT@count=\count275 +LaTeX Info: Redefining \noprotrusionifhmode on input line 1027. +LaTeX Info: Redefining \leftprotrusion on input line 1028. +LaTeX Info: Redefining \rightprotrusion on input line 1036. +LaTeX Info: Redefining \textls on input line 1195. +\MT@outer@kern=\dimen150 +LaTeX Info: Redefining \textmicrotypecontext on input line 1781. +\MT@listname@count=\count276 + +(/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype-pdftex.def +File: microtype-pdftex.def 2022/03/14 v3.0d Definitions specific to pdftex (RS) + +LaTeX Info: Redefining \lsstyle on input line 900. +LaTeX Info: Redefining \lslig on input line 900. +\MT@outer@space=\skip57 +) +Package microtype Info: Loading configuration file microtype.cfg. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.cfg +File: microtype.cfg 2022/03/14 v3.0d microtype main configuration file (RS) +)) +(/usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty +Package: booktabs 2020/01/12 v1.61803398 Publication quality tables +\heavyrulewidth=\dimen151 +\lightrulewidth=\dimen152 +\cmidrulewidth=\dimen153 +\belowrulesep=\dimen154 +\belowbottomsep=\dimen155 +\aboverulesep=\dimen156 +\abovetopsep=\dimen157 +\cmidrulesep=\dimen158 +\cmidrulekern=\dimen159 +\defaultaddspace=\dimen160 +\@cmidla=\count277 +\@cmidlb=\count278 +\@aboverulesep=\dimen161 +\@belowrulesep=\dimen162 +\@thisruleclass=\count279 +\@lastruleclass=\count280 +\@thisrulewidth=\dimen163 +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty +Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) + +(/usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +Package: ltxcmds 2020-05-10 v1.25 LaTeX kernel commands for general use (HO) +) +(/usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty +Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) +)) +(/usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty +Package: totpages 2005/09/19 v2.00 Totpages Package (muewi) + +(/usr/local/texlive/2022/texmf-dist/tex/latex/everyshi/everyshi.sty +Package: everyshi 2020/11/18 v4.00 EveryShipout Package +)) +(/usr/local/texlive/2022/texmf-dist/tex/latex/environ/environ.sty +Package: environ 2014/05/04 v0.3 A new way to define environments + +(/usr/local/texlive/2022/texmf-dist/tex/latex/trimspaces/trimspaces.sty +Package: trimspaces 2009/09/17 v1.1 Trim spaces around a token list +)) +(/usr/local/texlive/2022/texmf-dist/tex/latex/textcase/textcase.sty +Package: textcase 2019/09/14 v1.00 Text only upper/lower case changing (DPC) +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/natbib/natbib.sty +Package: natbib 2010/09/13 8.31b (PWD, AO) +\bibhang=\skip58 +\bibsep=\skip59 +LaTeX Info: Redefining \cite on input line 694. +\c@NAT@ctr=\count281 +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty +Package: hyperxmp 2020/11/22 v5.9 Store hyperref metadata in XMP format +\hyxmp@aep@toks=\toks30 + +(/usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty +Package: kvoptions 2020-10-07 v3.14 Key value format for package options (HO) + +(/usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO) +)) +(/usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty +Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) + +(/usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +)) +(/usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/stringenc.sty +Package: stringenc 2019/11/29 v1.12 Convert strings between diff. encodings (HO +) +) +(/usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty +Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty +Package: ifmtarg 2018/04/16 v1.2b check for an empty argument +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2020/11/24 v1.1c Standard LaTeX ifthen package (DPC) +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/ifdraft.sty +Package: ifdraft 2016/05/16 v1.4 Detect class options draft and final (HO) +) +(/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty +Package: ifluatex 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead. +)) +(/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2022-02-21 v7.00n Hypertext links for LaTeX + +(/usr/local/texlive/2022/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/hycolor/hycolor.sty +Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO) +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/auxhook/auxhook.sty +Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) +) +\@linkdim=\dimen164 +\Hy@linkcounter=\count282 +\Hy@pagecounter=\count283 + +(/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2022-02-21 v7.00n Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) +(/usr/local/texlive/2022/texmf-dist/tex/generic/etexcmds/etexcmds.sty +Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO) +) +\Hy@SavedSpaceFactor=\count284 + +(/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/puenc.def +File: puenc.def 2022-02-21 v7.00n Hyperref: PDF Unicode definition (HO) +Now handling font encoding PU ... +... no UTF-8 mapping file for font encoding PU +) +Package hyperref Info: Option `bookmarksnumbered' set `true' on input line 4018 +. +Package hyperref Info: Option `unicode' set `true' on input line 4018. +Package hyperref Info: Hyper figures OFF on input line 4137. +Package hyperref Info: Link nesting OFF on input line 4142. +Package hyperref Info: Hyper index ON on input line 4145. +Package hyperref Info: Plain pages OFF on input line 4152. +Package hyperref Info: Backreferencing OFF on input line 4157. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4390. +\c@Hy@tempcnt=\count285 + +(/usr/local/texlive/2022/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip17 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 4749. +\XeTeXLinkMargin=\dimen165 + +(/usr/local/texlive/2022/texmf-dist/tex/generic/bitset/bitset.sty +Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) + +(/usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO +) +)) +\Fld@menulength=\count286 +\Field@Width=\dimen166 +\Fld@charsize=\dimen167 +Package hyperref Info: Hyper figures OFF on input line 6027. +Package hyperref Info: Link nesting OFF on input line 6032. +Package hyperref Info: Hyper index ON on input line 6035. +Package hyperref Info: backreferencing OFF on input line 6042. +Package hyperref Info: Link coloring OFF on input line 6047. +Package hyperref Info: Link coloring with OCG OFF on input line 6052. +Package hyperref Info: PDF/A mode OFF on input line 6057. +LaTeX Info: Redefining \ref on input line 6097. +LaTeX Info: Redefining \pageref on input line 6101. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/base/atbegshi-ltx.sty +Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi +package with kernel methods +) +\Hy@abspage=\count287 +\c@Item=\count288 +\c@Hfootnote=\count289 +) +Package hyperref Info: Driver (autodetected): hpdftex. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2022-02-21 v7.00n Hyperref driver for pdfTeX + +(/usr/local/texlive/2022/texmf-dist/tex/latex/base/atveryend-ltx.sty +Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend pac +kage +with kernel methods +) +\Fld@listcount=\count290 +\c@bookmark@seq@number=\count291 + +(/usr/local/texlive/2022/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO) + +(/usr/local/texlive/2022/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +86. +) +\Hy@SectionHShift=\skip60 +) (/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2021/03/04 v1.4d Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2021/08/11 v1.11 sin cos tan (DPC) +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 107. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen168 +\Gin@req@width=\dimen169 +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2021/10/31 v2.13 LaTeX color extensions (UK) + +(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 227. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1352. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1356. +Package xcolor Info: Model `RGB' extended on input line 1368. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1370. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1371. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1372. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1373. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1374. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1375. +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty +Package: draftwatermark 2020/12/08 3.0 Put a gray textual watermark on document + pages +) (/usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2020/01/02 v5.9 Page Geometry + +(/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty +Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. +) +\Gm@cnth=\count292 +\Gm@cntv=\count293 +\c@Gm@tempcnt=\count294 +\Gm@bindingoffset=\dimen170 +\Gm@wd@mp=\dimen171 +\Gm@odd@mp=\dimen172 +\Gm@even@mp=\dimen173 +\Gm@layoutwidth=\dimen174 +\Gm@layoutheight=\dimen175 +\Gm@layouthoffset=\dimen176 +\Gm@layoutvoffset=\dimen177 +\Gm@dimlist=\toks31 +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/manyfoot.sty +Package: manyfoot 2019/08/03 v1.11 Many Footnote Levels Package (NCC) + +(/usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/nccfoots.sty +Package: nccfoots 2005/02/03 v1.2 NCC Footnotes Package (NCC) +) +\MFL@columnwidth=\dimen178 +) +\footinsauthorsaddresses=\insert251 +\c@footnoteauthorsaddresses=\count295 +\footinscopyrightpermission=\insert250 +\c@footnotecopyrightpermission=\count296 + +(/usr/local/texlive/2022/texmf-dist/tex/generic/pdftex/glyphtounicode.tex) +(/usr/local/texlive/2022/texmf-dist/tex/latex/cmap/cmap.sty +Package: cmap 2021/02/06 v1.0j CMap support: searchable PDF +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2021/04/29 v2.0v Standard LaTeX package +<>) +(/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty +Package: libertine 2020/03/26 (Bob Tennent) Supports Libertine and Biolinum fon +ts for all LaTeX engines. + +(/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty +Package: ifxetex 2019/10/25 v0.7 ifxetex legacy package. Use iftex instead. +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2020/02/02 v2.0n Standard LaTeX package +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2021/04/29 v2.0v Standard LaTeX package +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/fontaxes/fontaxes.sty +Package: fontaxes 2020/07/21 v1.0e Font selection axes +LaTeX Info: Redefining \upshape on input line 29. +LaTeX Info: Redefining \itshape on input line 31. +LaTeX Info: Redefining \slshape on input line 33. +LaTeX Info: Redefining \swshape on input line 35. +LaTeX Info: Redefining \scshape on input line 37. +LaTeX Info: Redefining \sscshape on input line 39. +LaTeX Info: Redefining \ulcshape on input line 41. +LaTeX Info: Redefining \textsw on input line 47. +LaTeX Info: Redefining \textssc on input line 48. +LaTeX Info: Redefining \textulc on input line 49. +) +LaTeX Info: Redefining \oldstylenums on input line 484. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/LinLibertine_I.tex)) +(/usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty +Package: zi4 2019/05/17 v1.12 + +`inconsolata-zi4' v1.12, 2019/05/17 Text macros for Inconsolata (msharpe) +\zifour@ocount=\count297 +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty +Package: newtxmath 2022/01/16 v1.71 + +`newtxmath' v1.71, 2022/01/16 Math macros based originally on txfonts (msharpe) +(/usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/centernot.sty +Package: centernot 2016/05/16 v1.4 Centers the not symbol horizontally (HO) +) +\tx@cntz=\count298 + +(/usr/local/texlive/2022/texmf-dist/tex/generic/kastrup/binhex.tex) +\tx@Isdigit=\count299 +\tx@IsAlNum=\count300 +\tx@tA=\toks32 +\tx@tB=\toks33 +\tx@su=\read2 + +amsthm NOT loaded +LaTeX Font Info: Redeclaring symbol font `operators' on input line 376. +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/LinuxLibertineT-TLF/m/n on input li +ne 376. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/LinuxLibertineT-TLF/m/n on input l +ine 376. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/LinuxLibertineT-TLF/m/n --> OT1/LinuxLibertineT-TLF +/sb/n on input line 377. +LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 383. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> T1/LinuxBiolinumT-TLF/m/n on input lin +e 383. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> T1/LinuxBiolinumT-TLF/m/n on input li +ne 383. +LaTeX Font Info: Redeclaring math alphabet \mathit on input line 384. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/LinuxLibertineT-TLF/m/it on input +line 384. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/LinuxLibertineT-TLF/m/it on input + line 384. +LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 385. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> T1/zi4/m/n on input line 385. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> T1/zi4/m/n on input line 385. +LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 387. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/LinuxLibertineT-TLF/sb/n on input +line 387. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/LinuxLibertineT-TLF/sb/n on input +line 387. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/LinuxLibertineT-TLF/m/it --> OT1/LinuxLibertineT-TL +F/sb/it on input line 388. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) T1/LinuxBiolinumT-TLF/m/n --> T1/LinuxBiolinumT-TLF/b/n + on input line 389. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) T1/zi4/m/n --> T1/zi4/b/n on input line 390. +LaTeX Font Info: Redeclaring symbol font `letters' on input line 407. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/nxlmi/m/it on input line 407. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/nxlmi/m/it on input line 407. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/nxlmi/m/it --> OML/nxlmi/b/it on input line 408. +\symlettersA=\mathgroup6 +LaTeX Font Info: Overwriting symbol font `lettersA' in version `bold' +(Font) U/ntxmia/m/it --> U/ntxmia/b/it on input line 547. +LaTeX Font Info: Redeclaring math alphabet \mathfrak on input line 549. +Now handling font encoding LMS ... +... no UTF-8 mapping file for font encoding LMS +LaTeX Font Info: Redeclaring symbol font `symbols' on input line 568. +LaTeX Font Info: Encoding `OMS' has changed to `LMS' for symbol font +(Font) `symbols' in the math version `normal' on input line 568. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> LMS/ntxsy/m/n on input line 568. +LaTeX Font Info: Encoding `OMS' has changed to `LMS' for symbol font +(Font) `symbols' in the math version `bold' on input line 568. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> LMS/ntxsy/m/n on input line 568. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) LMS/ntxsy/m/n --> LMS/ntxsy/b/n on input line 569. +\symAMSm=\mathgroup7 +LaTeX Font Info: Overwriting symbol font `AMSm' in version `bold' +(Font) U/ntxsym/m/n --> U/ntxsym/b/n on input line 594. +\symsymbolsC=\mathgroup8 +LaTeX Font Info: Overwriting symbol font `symbolsC' in version `bold' +(Font) U/ntxsyc/m/n --> U/ntxsyc/b/n on input line 615. +Now handling font encoding LMX ... +... no UTF-8 mapping file for font encoding LMX +LaTeX Font Info: Redeclaring symbol font `largesymbols' on input line 628. +LaTeX Font Info: Encoding `OMX' has changed to `LMX' for symbol font +(Font) `largesymbols' in the math version `normal' on input line 6 +28. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> LMX/ntxexx/m/n on input line 628. +LaTeX Font Info: Encoding `OMX' has changed to `LMX' for symbol font +(Font) `largesymbols' in the math version `bold' on input line 628 +. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> LMX/ntxexx/m/n on input line 628. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) LMX/ntxexx/m/n --> LMX/ntxexx/b/n on input line 629. +\symlargesymbolsTXA=\mathgroup9 +LaTeX Font Info: Overwriting symbol font `largesymbolsTXA' in version `bold' + +(Font) U/ntxexa/m/n --> U/ntxexa/b/n on input line 643. +\tx@sbptoks=\toks34 +LaTeX Font Info: Redeclaring math delimiter \lfloor on input line 866. +LaTeX Font Info: Redeclaring math delimiter \rfloor on input line 867. +LaTeX Font Info: Redeclaring math delimiter \lceil on input line 868. +LaTeX Font Info: Redeclaring math delimiter \rceil on input line 869. +LaTeX Font Info: Redeclaring math delimiter \lbrace on input line 870. +LaTeX Font Info: Redeclaring math delimiter \rbrace on input line 871. +LaTeX Font Info: Redeclaring math delimiter \langle on input line 872. +LaTeX Font Info: Redeclaring math delimiter \rangle on input line 874. +LaTeX Font Info: Redeclaring math delimiter \arrowvert on input line 878. +LaTeX Font Info: Redeclaring math delimiter \vert on input line 879. +LaTeX Font Info: Redeclaring math accent \dot on input line 950. +LaTeX Font Info: Redeclaring math accent \ddot on input line 951. +LaTeX Font Info: Redeclaring math accent \vec on input line 2020. +LaTeX Info: Redefining \Bbbk on input line 2810. +LaTeX Info: Redefining \not on input line 2959. +LaTeX Info: Redefining \textsquare on input line 2989. +LaTeX Info: Redefining \openbox on input line 2991. +) (/usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2022/03/01 v3.6b Customizing captions (AR) + +(/usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2022/03/17 v2.3b caption3 kernel (AR) +\caption@tempdima=\dimen179 +\captionmargin=\dimen180 +\caption@leftmargin=\dimen181 +\caption@rightmargin=\dimen182 +\caption@width=\dimen183 +\caption@indent=\dimen184 +\caption@parindent=\dimen185 +\caption@hangindent=\dimen186 +Package caption Info: AMS or SMF document class detected. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption-ams-smf.sto +File: caption-ams-smf.sto 2020/08/22 v2.0 Adaption of the caption package to th +e AMS and SMF document classes (AR) +)) +\c@caption@flags=\count301 +\c@continuedfloat=\count302 +Package caption Info: hyperref package is loaded. +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +Package: float 2001/11/08 v1.3d Float enhancements (AL) +\c@float@type=\count303 +\float@exts=\toks35 +\float@box=\box54 +\@float@everytoks=\toks36 +\@floatcapt=\box55 +) +\@float@every@sidebar=\toks37 +\c@sidebar=\count304 +\fulltextwidth=\dimen187 +\@ACM@labelwidth=\dimen188 +\listisep=\skip61 +\num@authorgroups=\count305 +\num@authors=\count306 +\@ACM@badge@width=\skip62 +\@ACM@title@width=\skip63 +\@ACM@badge@skip=\skip64 +Class acmart Info: Printing CCS on input line 1608. +Class acmart Info: Printing bibformat on input line 1608. +Class acmart Info: Suppressing folios on input line 1615. +Class acmart Info: Setting authorsperrow to 0 on input line 1618. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/comment/comment.sty +\CommentStream=\write3 + +Excluding comment 'comment') Excluding comment 'CCSXML' +\c@@concepts=\count307 +\mktitle@bx=\box56 +\@ACM@commabox=\box57 +\author@bx=\box58 +\author@bx@wd=\dimen189 +\author@bx@sep=\skip65 + +(/usr/local/texlive/2022/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +Package: fancyhdr 2021/01/28 v4.0.1 Extensive control of page headers and foote +rs +\f@nch@headwidth=\skip66 +\f@nch@O@elh=\skip67 +\f@nch@O@erh=\skip68 +\f@nch@O@olh=\skip69 +\f@nch@O@orh=\skip70 +\f@nch@O@elf=\skip71 +\f@nch@O@erf=\skip72 +\f@nch@O@olf=\skip73 +\f@nch@O@orf=\skip74 +) +\ACM@linecount@bx=\box59 +\ACM@linecount@bxht=\skip75 +\ACM@linecount=\count308 +\c@ACM@time@hours=\count309 +\c@ACM@time@minutes=\count310 +\@folio@wd=\dimen190 +\@folio@ht=\dimen191 +\@folio@voffset=\dimen192 + +Special comment 'acks' +LaTeX Font Info: Trying to load font information for T1+LinuxLibertineT-TLF +on input line 3205. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/T1LinuxLibertineT-TLF.f +d +File: T1LinuxLibertineT-TLF.fd 2017/03/20 (autoinst) Font definitions for T1/Li +nuxLibertineT-TLF. +) +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 9.0pt on input line 3205. +) (/usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count311 +\lst@gtempboxa=\box60 +\lst@token=\toks38 +\lst@length=\count312 +\lst@currlwidth=\dimen193 +\lst@column=\count313 +\lst@pos=\count314 +\lst@lostspace=\dimen194 +\lst@width=\dimen195 +\lst@newlines=\count315 +\lst@lineno=\count316 +\lst@maxwidth=\dimen196 + +(/usr/local/texlive/2022/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2020/03/24 1.8d (Carsten Heinz) +\c@lstnumber=\count317 +\lst@skipnumbers=\count318 +\lst@framebox=\box61 +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2020/03/24 1.8d listings configuration +)) +Package: listings 2020/03/24 1.8d (Carsten Heinz) + +(/usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +Package: algorithm 2009/08/24 v0.1 Document Style `algorithm' - floating enviro +nment +\@float@every@algorithm=\toks39 +\c@algorithm=\count319 +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +Package: algpseudocode + +(/usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +Package: algorithmicx 2005/04/27 v1.2 Algorithmicx + +Document Style algorithmicx 1.2 - a greatly improved `algorithmic' style +\c@ALG@line=\count320 +\c@ALG@rem=\count321 +\c@ALG@nested=\count322 +\ALG@tlm=\skip76 +\ALG@thistlm=\skip77 +\c@ALG@Lnr=\count323 +\c@ALG@blocknr=\count324 +\c@ALG@storecount=\count325 +\c@ALG@tmpcounter=\count326 +\ALG@tmplength=\skip78 +) +Document Style - pseudocode environments for use with the `algorithmicx' style +) (/usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.sty +(/usr/local/texlive/2022/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +(/usr/local/texlive/2022/texmf-dist/tex/latex/l3kernel/expl3.sty +Package: expl3 2022-02-24 L3 programming layer (loader) + +(/usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +File: l3backend-pdftex.def 2022-02-07 L3 backend support: PDF output (pdfTeX) +\l__color_backend_stack_int=\count327 +\l__pdf_internal_box=\box62 +)) +Package: l3keys2e 2022-01-12 LaTeX2e option processing using LaTeX3 keys +) +Package: lipsum 2021-09-20 v2.7 150 paragraphs of Lorem Ipsum dummy text +\g__lipsum_par_int=\count328 +\l__lipsum_a_int=\count329 +\l__lipsum_b_int=\count330 +(/usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex)) +(/usr/local/texlive/2022/texmf-dist/tex/latex/sttools/stfloats.sty +Package: stfloats 2017/03/27 v3.3 Improve float mechanism and baselineskip sett +ings +\@dblbotnum=\count331 +\c@dblbotnumber=\count332 +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/grffile/grffile.sty +Package: grffile 2019/11/11 v2.1 Extended file name support for graphics (legac +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 +. +\c@theorem=\count333 + +(/usr/local/texlive/2022/texmf-dist/tex/latex/preprint/balance.sty +Package: balance 1999/02/23 4.3 (PWD) +\oldvsize=\dimen197 +) +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: Trying to load font information for OML+nxlmi on input line + 124. + +(/usr/local/texlive/2022/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: Trying to load font information for U+ntxexa on input line +124. + +(/usr/local/texlive/2022/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: Trying to load font information for LMS+ntxsy on input line + 124. + +(/usr/local/texlive/2022/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: Trying to load font information for LMX+ntxexx on input lin +e 124. + +(/usr/local/texlive/2022/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: Font shape `T1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 7.0pt on input line 124. +LaTeX Font Info: Trying to load font information for OT1+LinuxLibertineT-TLF + on input line 124. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/OT1LinuxLibertineT-TLF. +fd +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. +<> +LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/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 +. + +(/usr/local/texlive/2022/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 +. + +(/usr/local/texlive/2022/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. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxmia.fd +File: untxmia.fd 2018/04/14 Fontinst v1.933 font definitions for U/ntxmia. +) +LaTeX Font Info: Trying to load font information for U+ntxsym on input line +124. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxsym.fd +File: untxsym.fd 2015/03/20 Fontinst v1.933 font definitions for U/ntxsym. +) +LaTeX Font Info: Trying to load font information for U+ntxsyc on input line +124. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxsyc.fd +File: untxsyc.fd 2012/04/12 Fontinst v1.933 font definitions for U/ntxsyc. +) +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: 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. +Package microtype Info: No adjustment of tracking. +Package microtype Info: No adjustment of interword spacing. +Package microtype Info: No adjustment of character kerning. +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. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2021-04-02 v2.47 Cross-referencing by name of section + +(/usr/local/texlive/2022/texmf-dist/tex/generic/gettitlestring/gettitlestring.s +ty +Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) +) +\c@section@level=\count334 +) +LaTeX Info: Redefining \ref on input line 124. +LaTeX Info: Redefining \pageref on input line 124. +LaTeX Info: Redefining \nameref on input line 124. + (./paper.out) (./paper.out) +\@outlinefile=\write4 +\openout4 = `paper.out'. + + +(/usr/local/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count335 +\scratchdimen=\dimen198 +\scratchbox=\box63 +\nofMPsegments=\count336 +\nofMParguments=\count337 +\everyMPshowfont=\toks40 +\MPscratchCnt=\count338 +\MPscratchDim=\dimen199 +\MPnumerator=\count339 +\makeMPintoPDFobject=\count340 +\everyMPtoPDFconversion=\toks41 +) (/usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +85. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: includehead includefoot twoside heightrounded +* h-part:(L,W,R)=(54.0pt, 506.295pt, 54.0pt) +* v-part:(T,H,B)=(57.0pt, 664.96999pt, 73.0pt) +* \paperwidth=614.295pt +* \paperheight=794.96999pt +* \textwidth=506.295pt +* \textheight=626.0pt +* \oddsidemargin=-18.26999pt +* \evensidemargin=-18.26999pt +* \topmargin=-15.26999pt +* \headheight=13.0pt +* \headsep=14.0pt +* \topskip=10.0pt +* \footskip=12.0pt +* \marginparwidth=24.0pt +* \marginparsep=11.0pt +* \columnsep=24.0pt +* \skip\footins=7.0pt plus 11.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidetrue +* \@mparswitchtrue +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +\c@mv@tabular=\count341 +\c@mv@boldtabular=\count342 +(/usr/local/texlive/2022/texmf-dist/tex/latex/upquote/upquote.sty +Package: upquote 2012/04/19 v1.3 upright-quote and grave-accent glyphs in verba +tim +) +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: float package is loaded. +Package caption Info: listings package is loaded. +Package caption Info: End \AtBeginDocument code. +\c@lstlisting=\count343 +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 17.28pt on input line 287. +LaTeX Font Info: Trying to load font information for T1+LinuxBiolinumT-TLF o +n input line 287. + +(/usr/local/texlive/2022/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 287. +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 287. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 12.0pt on input line 287. +LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 12.0pt on input line 287. +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 287. +LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 6.6pt on input line 287. + (/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/mt-msa.cfg +File: mt-msa.cfg 2006/02/04 v1.1 microtype config. file: AMS symbols (a) (RS) +) +(/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/mt-msb.cfg +File: mt-msb.cfg 2005/06/01 v1.0 microtype config. file: AMS symbols (b) (RS) +) +LaTeX Font Info: Trying to load font information for TS1+LinuxLibertineT-TLF + on input line 287. + +(/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF. +fd +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 287. +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 287. +LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 10.0pt on input line 287. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/b/n' will be +(Font) scaled to size 10.0pt on input line 287. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/it' will be +(Font) scaled to size 7.0pt on input line 287. +LaTeX Font Info: Font shape `TS1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 7.0pt on input line 287. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/b/n' will be +(Font) scaled to size 9.0pt on input line 287. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/b/n' will be +(Font) scaled to size 10.95pt on input line 287. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 8.0pt on input line 287. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/b/n' will be +(Font) scaled to size 8.0pt on input line 287. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/it' will be +(Font) scaled to size 8.0pt on input line 287. +LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 8.0pt on input line 287. +LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 6.2pt on input line 287. +LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 9.0pt on input line 340. + +Overfull \hbox (6.91936pt too wide) in paragraph at lines 340--342 +[]\T1/LinuxLibertineT-TLF/b/n/9 (-20) Fat-pointer Based Range Ad-dresses\T1/Lin +uxLibertineT-TLF/m/n/9 (-20) : In-tro-duces fat-pointers + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 350--357 + + [] + +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 6.0pt on input line 357. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 36.135pt on input line 357. +LaTeX Font Info: Calculating math sizes for size <36.135> on input line 357. + +LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 36.135pt on input line 357. +LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 26.37839pt on input line 357. +LaTeX Font Info: Font shape `OT1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 19.87434pt on input line 357. +[1.1{/usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map} + +] + + +File: diagram/HighOverviewArchitecture.drawio.png Graphic file (type png) + +Package pdftex.def Info: diagram/HighOverviewArchitecture.drawio.png used on i +nput line 395. +(pdftex.def) Requested size: 303.78008pt x 236.93262pt. + + +Class acmart Warning: A possible image without description on input line 399. + + +LaTeX Warning: `h' float specifier changed to `ht'. + + +File: diagram/AllocationOverview24.png Graphic file (type png) + +Package pdftex.def Info: diagram/AllocationOverview24.png used on input line 4 +18. +(pdftex.def) Requested size: 202.51491pt x 140.43979pt. + +Class acmart Warning: A possible image without description on input line 421. + + +LaTeX Warning: `h' float specifier changed to `ht'. + + +File: diagram/TLBAccess.drawio.png Graphic file (type png) + +Package pdftex.def Info: diagram/TLBAccess.drawio.png used on input line 445. +(pdftex.def) Requested size: 202.51491pt x 247.43411pt. + +Class acmart Warning: A possible image without description on input line 448. + + +LaTeX Warning: `h' float specifier changed to `ht'. + +Package hyperref Info: bookmark level for unknown algorithm defaults to 0 on in +put line 492. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/sc' will be +(Font) scaled to size 9.0pt on input line 495. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 7.3pt on input line 496. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 5.5pt on input line 496. +LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be +(Font) scaled to size 9.0pt on input line 517. +LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be +(Font) scaled to size 7.0pt on input line 517. +[2.2] [3.3 <./diagram/HighOverviewArchitecture.drawio.png> <./diagram/Allocatio +nOverview24.png> <./diagram/TLBAccess.drawio.png>] +Overfull \hbox (1.93413pt too wide) in paragraph at lines 536--539 +\T1/LinuxLibertineT-TLF/m/n/9 (-20) the free func-tion elim-i-nates the need fo +r ad-di-tional meta-data lookups + [] + + +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [4.4] +LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/it' will be +(Font) scaled to size 9.0pt on input line 678. + +Underfull \vbox (badness 2512) has occurred while \output is active [] + + +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [5.5] + +File: diagram/bargraph.png Graphic file (type png) + +Package pdftex.def Info: diagram/bargraph.png used on input line 718. +(pdftex.def) Requested size: 455.6624pt x 284.78517pt. + + +Class acmart Warning: A possible image without description on input line 720. + + +LaTeX Warning: `h' float specifier changed to `ht'. + + +LaTeX Warning: Reference `fig:bargraph' on page 6 undefined on input line 722. + +<./diagram/kmeans.png, id=186, 1011.78pt x 578.16pt> +File: ./diagram/kmeans.png Graphic file (type png) + +Package pdftex.def Info: ./diagram/kmeans.png used on input line 751. +(pdftex.def) Requested size: 265.2637pt x 151.57959pt. + +Overfull \hbox (24.11621pt too wide) in paragraph at lines 751--752 + [][] + [] + + +Class acmart Warning: A possible image without description on input line 753. + + +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [6.6] +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [7.7 <./diagram/bargraph.png> <./diagram/kmeans.png>] +Underfull \vbox (badness 1990) has occurred while \output is active [] + + + +Package natbib Warning: Citation `esswoodcheriosnodate' on page 8 undefined on +input line 906. + + +Overfull \hbox (1.4779pt too wide) in paragraph at lines 913--915 +[]\T1/LinuxLibertineT-TLF/m/n/9 (-20) Simplified Mem-ory Man-age-ment : With-ou +t the need to switch + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 920--927 + + [] + +[8.8] +Underfull \hbox (badness 10000) in paragraph at lines 928--944 + + [] + +(./paper.bbl +Underfull \hbox (badness 2443) in paragraph at lines 55--57 +[]\T1/LinuxLibertineT-TLF/m/n/7 (+20) CHERI-allocator/benchmarks/benchmarks/Str +essTestMalloc/glibc-bench.c at + [] + +) + +Package natbib Warning: There were undefined citations. + +(/usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-pdfdoc.def +File: se-pdfdoc.def 2019/11/29 v1.12 stringenc: PDFDocEncoding +) +(/usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-utf8.def +File: se-utf8.def 2019/11/29 v1.12 stringenc: UTF-8 +) + +Class acmart Warning: Some images may lack descriptions. + + +Class acmart Warning: ACM keywords are mandatory for papers over two pages. + + +Class acmart Warning: CCS concepts are mandatory for papers over two pages. + + +Package balance Warning: You have called \balance in second column +(balance) Columns might not be balanced. + +[9.9] (./paper.aux) + +LaTeX Warning: There were undefined references. + +Package rerunfilecheck Info: File `paper.out' has not changed. +(rerunfilecheck) Checksum: C9C5FF980E1CF5431E70B96FC8B4C94E;4003. + ) +Here is how much of TeX's memory you used: + 23695 strings out of 478268 + 391840 string characters out of 5846347 + 850517 words of memory out of 5000000 + 40790 multiletter control sequences out of 15000+600000 + 678434 words of font info for 432 fonts, out of 8000000 for 9000 + 1302 hyphenation exceptions out of 8191 + 84i,17n,131p,1002b,685s stack positions out of 10000i,1000n,20000p,200000b,200000s +{/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_25tcsq.enc +}{/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_oexx6f.enc} +{/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_ncsllp.enc}{ +/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_7grukw.enc}{/ +usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_nh77jq.enc}{/u +sr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc}{/us +r/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc} + +Output written on paper.pdf (9 pages, 701484 bytes). +PDF statistics: + 287 PDF objects out of 1000 (max. 8388607) + 238 compressed objects within 3 object streams + 63 named destinations out of 1000 (max. 500000) + 114914 words of extra memory for PDF output out of 128383 (max. 10000000) + diff --git a/docs/EuroSys/Paper/paper.pdf b/docs/EuroSys/Paper/paper.pdf new file mode 100644 index 0000000..07121eb Binary files /dev/null and b/docs/EuroSys/Paper/paper.pdf differ diff --git a/docs/EuroSys/Paper/paper.tex b/docs/EuroSys/Paper/paper.tex new file mode 100644 index 0000000..bde080a --- /dev/null +++ b/docs/EuroSys/Paper/paper.tex @@ -0,0 +1,1494 @@ +%% +%% This is file `sample-sigconf-authordraft.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% samples.dtx (with options: `all,proceedings,bibtex,authordraft') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from sample-sigconf-authordraft.tex. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file samples.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% +%% +%% Commands for TeXCount +%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 +%TC:envir displaymath 0 word +%TC:envir math 0 word +%TC:envir comment 0 0 +%% +%% +%% The first command in your LaTeX source must be the \documentclass +%% command. +%% +%% For submission and review of your manuscript please change the +%% command to \documentclass[manuscript, screen, review]{acmart}. +%% +%% When submitting camera ready or to TAPS, please change the command +%% to \documentclass[sigconf]{acmart} or whichever template is required +%% for your publication. +%% +%% +\documentclass[sigconf,authordraft]{acmart} +\usepackage{listings} +\usepackage{algorithm} +\usepackage{algpseudocode} +\usepackage{amsmath} + +\usepackage{lipsum} +\usepackage{stfloats} +\usepackage{grffile} + +\lstset{basicstyle=\small\ttfamily,columns=fullflexible} + +%% +%% \BibTeX command to typeset BibTeX logo in the docs +\AtBeginDocument{% + \providecommand\BibTeX{{% + Bib\TeX}}} + +%% Rights management information. This information is sent to you +%% when you complete the rights form. These commands have SAMPLE +%% values in them; it is your responsibility as an author to replace +%% the commands and values with those provided to you when you +%% complete the rights form. +\setcopyright{acmlicensed} +\copyrightyear{2018} +\acmYear{2018} +\acmDOI{XXXXXXX.XXXXXXX} + +%% These commands are for a PROCEEDINGS abstract or paper. +\acmConference[Conference acronym 'XX]{Make sure to enter the correct + conference title from your rights confirmation emai}{June 03--05, + 2018}{Woodstock, NY} +%% +%% Uncomment \acmBooktitle if the title of the proceedings is different +%% from ``Proceedings of ...''! +%% +%%\acmBooktitle{Woodstock '18: ACM Symposium on Neural Gaze Detection, +%% June 03--05, 2018, Woodstock, NY} +\acmISBN{978-1-4503-XXXX-X/18/06} + + +%% +%% Submission ID. +%% Use this when submitting an article to a sponsored event. You'll +%% receive a unique submission ID from the organizers +%% of the event, and this ID should be used as the parameter to this command. +%%\acmSubmissionID{123-A56-BU3} + +%% +%% For managing citations, it is recommended to use bibliography +%% files in BibTeX format. +%% +%% You can then either use BibTeX with the ACM-Reference-Format style, +%% or BibLaTeX with the acmnumeric or acmauthoryear sytles, that include +%% support for advanced citation of software artefact from the +%% biblatex-software package, also separately available on CTAN. +%% +%% Look at the sample-*-biblatex.tex files for templates showcasing +%% the biblatex styles. +%% + +%% +%% The majority of ACM publications use numbered citations and +%% references. The command \citestyle{authoryear} switches to the +%% "author year" style. +%% +%% If you are preparing content for an event +%% sponsored by ACM SIGGRAPH, you must use the "author year" style of +%% citations and references. +%% Uncommenting +%% the next command will enable that style. +%%\citestyle{acmauthoryear} + + +%% +%% end of the preamble, start of the body of the document source. +\begin{document} + +%% +%% The "title" command has an optional parameter, +%% allowing the author to define a "short title" to be used in page headers. +\title{Fat-pointer Address Translations} + +%% +%% The "author" command and its associated commands are used to define +%% the authors and their affiliations. +%% Of note is the shared affiliation of the first two authors, and the +%% "authornote" and "authornotemark" commands +%% used to denote shared contribution to the research. +\author{Akilan Selvacoumar} +% \authornote{Both authors contributed equally to this research.} +% \email{as251@hw.ac.uk} +% \orcid{1234-5678-9012} +% \author{G.K.M. Tobin} +\authornotemark[1] +\email{as251@hw.ac.uk} +\affiliation{% + \institution{Heriot Watt} + \city{Edinburgh} + \state{Scotland} + \country{United Kingdom} +} + +% \author{Lars Th{\o}rv{\"a}ld} +% \affiliation{% +% \institution{The Th{\o}rv{\"a}ld Group} +% \city{Hekla} +% \country{Iceland}} +% \email{larst@affiliation.org} + +% \author{Valerie B\'eranger} +% \affiliation{% +% \institution{Inria Paris-Rocquencourt} +% \city{Rocquencourt} +% \country{France} +% } + +% \author{Aparna Patel} +% \affiliation{% +% \institution{Rajiv Gandhi University} +% \city{Doimukh} +% \state{Arunachal Pradesh} +% \country{India}} + +% \author{Huifen Chan} +% \affiliation{% +% \institution{Tsinghua University} +% \city{Haidian Qu} +% \state{Beijing Shi} +% \country{China}} + +% \author{Charles Palmer} +% \affiliation{% +% \institution{Palmer Research Laboratories} +% \city{San Antonio} +% \state{Texas} +% \country{USA}} +% \email{cpalmer@prl.com} + +% \author{John Smith} +% \affiliation{% +% \institution{The Th{\o}rv{\"a}ld Group} +% \city{Hekla} +% \country{Iceland}} +% \email{jsmith@affiliation.org} + +% \author{Julius P. Kumquat} +% \affiliation{% +% \institution{The Kumquat Consortium} +% \city{New York} +% \country{USA}} +% \email{jpkumquat@consortium.net} + +%% +%% By default, the full list of authors will be used in the page +%% headers. Often, this list is too long, and will overlap +%% other information printed in the page headers. This command allows +%% the author to define a more concise list +%% of authors' names for this purpose. +% \renewcommand{\shortauthors}{Trovato et al.} + +%% +%% 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 + 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, + further improving TLB efficiency and memory handling. +\end{abstract} + +%% +%% The code below is generated by the tool at http://dl.acm.org/ccs.cfm. +%% Please copy and paste the code instead of the example below. +% %% +% \begin{CCSXML} +% +% +% 00000000.0000000.0000000 +% Do Not Use This Code, Generate the Correct Terms for Your Paper +% 500 +% +% +% 00000000.00000000.00000000 +% Do Not Use This Code, Generate the Correct Terms for Your Paper +% 300 +% +% +% 00000000.00000000.00000000 +% Do Not Use This Code, Generate the Correct Terms for Your Paper +% 100 +% +% +% 00000000.00000000.00000000 +% Do Not Use This Code, Generate the Correct Terms for Your Paper +% 100 +% +% +% \end{CCSXML} + +% \ccsdesc[500]{Do Not Use This Code~Generate the Correct Terms for Your Paper} +% \ccsdesc[300]{Do Not Use This Code~Generate the Correct Terms for Your Paper} +% \ccsdesc{Do Not Use This Code~Generate the Correct Terms for Your Paper} +% \ccsdesc[100]{Do Not Use This Code~Generate the Correct Terms for Your Paper} + +%% +%% Keywords. The author(s) should pick words that accurately describe +%% the work being presented. Separate the keywords with commas. +% \keywords{Do, Not, Us, This, Code, Put, the, Correct, Terms, for, +% Your, Paper} +%% A "teaser" image appears between the author and affiliation +%% information and the body of the document, and typically spans the +%% page. +% \begin{teaserfigure} +% \includegraphics[width=\textwidth]{sampleteaser} +% \caption{Seattle Mariners at Spring Training, 2010.} +% \Description{Enjoying the baseball game from the third-base +% seats. Ichiro Suzuki preparing to bat.} +% \label{fig:teaser} +% \end{teaserfigure} + +% \received{20 February 2007} +% \received[revised]{12 March 2009} +% \received[accepted]{5 June 2009} + +%% +%% This command processes the author and affiliation and title +%% information and builds the first part of the formatted document. +\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 +% 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 +% 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 +% 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 +% accelerating memory management operations. + +In computing, achieving high performance is an ongoing challenge, especially as +applications handle increasingly complex workloads. Memory management is a key factor +in performance, where efficient use of resources is essential. Translation Lookaside +Buffers (TLBs) are crucial in this context, speeding up memory access by caching recent +memory address translations. A TLB, a specialised cache in the memory management unit (MMU), +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}. +To tackle this issue, researchers have explored new solutions, including the use of +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 +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 +only strengthens system security by tightly controlling memory access but also opens avenues for optimising memory management +operations. By integrating CHERI’s 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 +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{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{CHERI’s 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} + +Through comprehensive evaluation, including micro and macro benchmarks, we demonstrate the allocator’s 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. The following below are research questions +we are addressing: +\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{Fat-pointer Address Translations} +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. This enhanced architecture utilizes concepts such as FlexPointer, +Range Memory Mapping (RMM) to manage memory effectively. + +Range addresses play a pivotal role within this 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 over memory regions. + +% 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 +% 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 +% 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, +% mitigating issues related to memory fragmentation. +% \end{itemize} + +\begin{figure*}[h] + \includegraphics[width=0.6\textwidth]{diagram/HighOverviewArchitecture.drawio.png} + \caption{High overview architecture} + \label{fig:HighOverviewArchitecture} +% \end{minipage} +\end{figure*} + +Figure \ref{fig:HighOverviewArchitecture} illustrates +the methodology employed to leverage the CHERI +128-bit FAT-pointer scheme for facilitating +block-based memory management on physically +contiguous memory,which is depicted on the +right side of the figure. +This technique contrasts with the +conventional approach. + +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} + \caption{Range of memory} + \label{fig:RangeOfMemory} +\end{figure} +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. 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}. + +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 and efficient +management 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{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 +% achieve optimal memory access patterns, enhancing performance and efficiency. + +\subsection{Instrumenting Block-Based Allocators with Physically Contiguous Memory} +\begin{figure}[h] + \includegraphics[width=0.4\textwidth]{diagram/TLBAccess.drawio.png} + \caption{Fat-pointer Address Translations using huge pages} + \label{fig:HugePages} +\end{figure} +Traditional address translation methods rely on hierarchical +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, the current approach +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. + +By consolidating address translations into a single TLB entry, +this method cuts down on the overhead of managing many entries. +It also takes advantage of the bounds encoded within fat-pointers +to track and access memory more efficiently. This streamlined +approach allows for precise and effective memory management, +especially within large, contiguous memory regions like huge pages. +Overall, it simplifies memory operations while improving performance +and reduces TLB overhead by reducing TLB walks. + +Figure \ref{fig:HugePages} illustrates a use-case of huge pages where the green +line represents a sample access to read within a contigous +space of physical memory. The dotted lines represents the +bounds for that particular pointer access. Using bounds +stored on the pointer a block based pattern can be reprecated +on physically contigous memory. + +\subsection{Sample memory allocator design:} +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 +data structures and metadata required for efficient memory management. The malloc function is +responsible for allocating a contiguous block of memory of a specified size, while the free +function deallocates the memory, returning it to the pool for future use. + +A notable feature of this malloc implementation is its compatibility with kernel modules, +where it can be integrated as an alternative to the mmap system call. This integration +ensures that memory allocations are physically contiguous, a critical requirement for +certain low-level operations and hardware interactions. By providing physically contiguous +memory blocks, this allocator can serve as a foundational layer for standard block-based allocators, +such as Jemalloc, enabling them to operate efficiently in environments where physical memory +contiguity is essential. + +\begin{algorithm} + \caption{Sample malloc implementation} + \label{alg:malloc} + \begin{algorithmic}[1] + \Function{malloc}{sz} + \State $sz \gets \text{ALIGN\_UP}(sz, \text{MAX\_ALIGNMENT})$ \Comment{Align size to max alignment} + \State $\text{MallocCounter} \gets \text{MallocCounter} - sz$ \Comment{Update remaining memory} + \State $\text{ptrLink} \gets \&\text{ptr}[\text{MallocCounter}]$ \Comment{Calculate pointer address} + \State $\text{ptrLink} \gets \text{SET\_BOUNDS}(\text{ptrLink}, sz)$ \Comment{Set bounds for memory safety and to track the length of the pointer} + \State \Return $\text{ptrLink}$ \Comment{Return allocated memory pointer} + \EndFunction + \end{algorithmic} + \end{algorithm} + + When the malloc function \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—a 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 +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} + \label{alg:free} + \begin{algorithmic}[1] + \Function{free}{ptr} + \State $\text{len} \gets \text{GET\_LENGTH}(\text{ptr})$ \Comment{Get length of memory block from the defined bounds} + \State $\text{UNMAP}(\text{ptr}, \text{len})$ \Comment{Release memory block} + \EndFunction + \end{algorithmic} + \end{algorithm} + + The memory deallocation \ref{alg:free} mechanism in the proposed allocator is facilitated by the FAT-pointer structure + 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 + 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. + + + +\begin{algorithm} + \caption{Sample init alloc function to create a initial 1 GB huge page} + \label{alg:initAlloc} + \begin{algorithmic}[1] + \Function{Init\_alloc}{} + \State $\text{sz} \gets 1\ \text{GB}$ \Comment{Define pre-allocated memory size} + \State $\text{fd} \gets \text{CREATE\_LARGE\_PAGE\_MEMORY}(\text{sz})$ \Comment{Create shared memory} + \State $\text{ptr} \gets \text{MAP\_MEMORY}(\text{sz})$ \Comment{Map memory region} + \State $\text{MallocCounter} \gets \text{sz}$ \Comment{Initialize memory counter} + \EndFunction + \end{algorithmic} + \end{algorithm} + + Algorithm \ref{alg:initAlloc} describes the initialization of physically contiguous memory through the use of huge pages, +a mechanism supported by modern architectures to optimize memory management. The algorithm begins by +allocating a fixed block of 1 GB of 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 efficiency, which is critical for performance-sensitive +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 +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. + +To comprehensively analyze the proposed allocator, we categorized benchmarks into +two classes which are micro and macro benchmarks. Micro benchmarks comprise smaller +C programs designed to target specific allocator patterns, enabling us to evaluate +detailed aspects of the allocator's behavior. Macro benchmarks, on the other hand, +encompass larger, real-world C programs, allowing us to assess the allocator's +performance in more practical, real-world scenarios. + +The experiment setup section details the software stack used for evaluation. It includes +the specific configurations, compiler options, and system environment tailored +to benchmark the proposed allocator. This ensures consistency and repeatability +in our results, providing a solid foundation for meaningful comparisons. + +We further elaborated on the two classes of benchmarks executed. Micro benchmarks +focused on particular allocation and deallocation patterns, such as sequential and +random memory accesses, to stress-test the allocator under controlled conditions. +Macro benchmarks involved real-world applications, offering insights into how +the allocator performs with complex memory allocation demands, large datasets, +and varying execution contexts. + +The results section presents the outcomes of our benchmarks, highlighting key metrics +such as TLB miss rates, memory usage, and runtime performance. We observed that the +proposed allocator demonstrated significant improvements in reducing TLB misses, +leading to noticeable enhancements in runtime efficiency for both micro and macro +benchmarks. The behavior of specific allocation patterns and their impact on memory +performance is detailed, providing a nuanced understanding of the allocator's effectiveness. + +Based on the evaluated results, the usability of the proposed allocator shows promise +for applications requiring optimized memory management and reduced overhead from TLB misses. +However, limitations were also identified, such as scenarios where the allocator's performance +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. +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 +memory model. When compiling the C programs for benchmarking, the Benchmark ABI was +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 +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 +libraries, where bounds are changed to cover the called or returned-to library. +Such stalls can negatively affect performance, making the Benchmark ABI an essential +consideration for this evaluation. + +Each C program was executed using two different memory allocators. The first was +the modified C allocator, imported as a header file. This approach was necessary +because the Benchmark ABI shared object file exhibited unexpected behavior, +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 +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. + +\begin{table*}[b] + \caption{\label{tab:org246a883}ARM performance counters} + \centering + \begin{tabular}{|l|l|} + \hline + Performance counter & Description \\ + \hline + Wall clock & The actual time taken from the start of a \\ + & computer program to the end. \\ + & \\ + (p/l1d\_tlb\_rd) L1 data TLB reads & Level 1 data TLB access, read \\ + & \\ + (p/l2d\_tlb\_rd) L2 data TLB reads & Level 2 data TLB access, read \\ + & \\ + (p/l1d\_tlb\_refill) L1 data TLB refills & Level 1 data TLB refill. \\ + & The Level 1 data TLB refill \\ + & counter tracks each access to \\ + & the L1D\_TLB that results \\ + & in a refill of the Level 1 data \\ + & or unified TLB. This includes any \\ + & access that requires a memory lookup \\ + & due to a translation table walk \\ + & or accessing another level of TLB cache. \\ + & \\ + (p/cpu\_cycles) CPU cycles & The CPU CYCLES counter increases with \\ + & every clock cycle. However, it can be \\ + & affected by changes in clock frequency, \\ + & such as when WFI (Wait for Interrupt) \\ + & or WFE (Wait for Event) \\ + & instructions pause the clock. \\ + & \\ + (p/dtlb\_walk) Data TLB walks & Data TLB access with at least \\ + & one translation table walk. \\ + & \\ + (p/ll\_cache\_miss\_rd) Last level cache miss reads & Last level cache miss, read \\ + & (This refers to every miss in the \\ + & Last level cache that occurs \\ + & during a memory read operation.) \\ + \hline + \end{tabular} + \end{table*} + +\subsection{Benchmarks} +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 + malloc and free functions in single-threaded, multi-threaded, + and emulated multi-threading scenarios using various block sizes and + allocation patterns. It simulates real-world memory usage by partially + deallocating blocks in FIFO order and fully deallocating them in LIFO order. + Results are gathered across configurations to analyze performance variations. + \item MemAccess: This benchmark by Alex Bordei evaluates the performance impact of + memory access patterns by constructing and traversing a doubly + linked list with varying working set sizes. It supports sequential or + randomized structures, optional node operations, and multithreaded + traversal using pthreads. The program dynamically allocates memory and systematically + doubles the working set size to analyze memory hierarchy behavior. + \end{itemize} + + \item Macro runs +\label{sec:org89020f2} +\begin{itemize} +\item Kmeans: Kmeans implements a parallelized K-means clustering algorithm that +assigns data points to clusters based on proximity to centroids, +iteratively updating them until convergence. The computation is +distributed across threads using the pthread library, dynamically +assigning tasks to optimize performance. Parameters like data size +and clusters are configurable, and the program ensures efficient +memory management and synchronization. +\item Richards: Richards is a task scheduling benchmark that simulates a +multitasking environment with tasks of varying types and priorities, +communicating through queued packets. The schedule function manages +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} +\begin{figure*}[h] +\includegraphics[width=.9\linewidth]{diagram/bargraph.png} +\caption{\label{fig:orga7f3598}Percentage difference between the modified memory allocator against the default system memory allocator} +\end{figure*} + +The graph\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 +of its capability to handle memory more efficiently by leveraging huge pages. + +A particularly striking observation is the significant reduction in data TLB walks, +L2 data TLB reads, and TLB refills—consistently showing a 90\% decrease across all +benchmarks compared to Jemalloc. This improvement is due to the modified allocator's +use of a single huge page entry at the L1 TLB layer. By enabling most address translations +to be resolved directly at the L1 TLB, the need to walk through the deeper TLB hierarchy is +largely eliminated. This reduction in translation overhead is a key factor in the allocator's +superior performance for certain types of workloads. + +The micro benchmarks, which are crafted to emphasize memory read operations, highlight the +allocator's strengths. These tests simulate frequent and intensive memory access patterns, +where the reduction in TLB misses directly translates into measurable performance gains. +On average, the FAT pointer allocator achieves a 50\% reduction in wall clock runtimes for +these workloads, underscoring its ability to optimize 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 pointer allocator. +This outcome is expected, as macro benchmarks typically involve a broader range of operations +beyond memory allocation, diluting the impact of the allocator's optimizations. Additionally, +the benefits of huge pages may be less pronounced for these workloads, as they are often +bottlenecked by factors such as computation or I/O rather than memory translation overhead. + +\begin{figure}[htbp] + \centering + \includegraphics[width=1.1\linewidth]{./diagram/kmeans.png} + \caption{\label{fig:org8683315}Kmeans COZ benchmark executed against various cluster sizes} + \end{figure} + + 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 + more efficiently with huge pages, impact performance under different workload conditions. + + For most cluster sizes tested, the percentage difference in performance remained relatively +consistent. This indicates that the allocator's efficiency scales predictably with increasing +workload sizes, suggesting a stable and uniform benefit across different configurations. The +consistent performance gain is likely due to the allocator's ability to minimize TLB misses +and efficiently manage memory allocations for the centroid and data point structures used in +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 +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 +number of clusters might introduce computational overhead that overshadows the memory allocator's +optimizations. + +This observation highlights the importance of testing across a range of workload sizes and +configurations to uncover edge cases or specific scenarios where performance deviates from the +expected pattern. Understanding these anomalies can provide insights into the allocator's +behavior and guide future improvements to address such outliers. Despite the deviation at a +cluster size of 2000, the overall results reaffirm the allocator's capability to maintain +consistent performance benefits across most scenarios. + +\subsection{Usability} +\label{sec:orgd6ba6f0} +The FAT pointer memory allocator demonstrates significant potential for enhancing +memory management in systems that benefit from huge page optimizations. Its design +effectively reduces TLB misses, achieving up to 90\% fewer data TLB walks, L2 TLB reads, +and TLB refills compared to Jemalloc. These improvements lead to noticeable performance +gains, especially in micro benchmarks, where the allocator reduces wall clock runtimes +by an average of 50\%. + +The allocator integrates seamlessly into memory-intensive workloads, as evidenced by its +consistent performance across varying cluster sizes in the K-means benchmark, with only +minor anomalies observed under specific conditions. These outliers provide valuable +insights into the allocator's interaction with system-level caching and memory translation mechanisms. + +While the allocator excels in scenarios emphasizing 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. + +\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 +Tooba implementation. + +\subsection{Storing Offsets Directly on Pointers} +In the current ARM Morello setup, address translations rely on the TLB. +The future approach on RISC-V Tooba involves storing the offset directly within the pointer. This is possible due to CHERI's capability model, which supports fine-grained memory protection and can encode bounds within pointers. +Utilizing Bounds in CHERI for Block-Based Allocation: + +CHERI capabilities allow pointers to carry metadata about memory bounds, providing hardware-enforced memory safety. +By encoding the offset and bounds within the pointer, the system can directly access memory without needing intermediate translations via the TLB. +This enables the implementation of a block-based allocator that can efficiently manage memory allocations and deallocations within defined bounds. +Bypassing the TLB in RISC-V Tooba. +\subsection{Hardware Modifications:} +The Bluespec design of the RISC-V processor will be modified to allow certain memory operations to bypass the TLB. This means that when a pointer with encoded offset and bounds is used, the system can directly compute the physical address from the capability information. +This modification reduces the dependency on the TLB, decreasing latency and improving performance, especially for frequent memory operations. +Transition to a Single-Address-Space Operating System (SASOS)\cite{esswoodcheriosnodate}. +\subsection{Concept of SASOS:} +In traditional operating systems, there is a clear separation between user space and kernel space. This separation is enforced by memory protection mechanisms and address translation through the TLB. +In a Single-Address-Space Operating System, this distinction is removed. Both user applications and the kernel share the same contiguous address space. +\subsection{Advantages of SASOS with CHERI:} +% Rewrite this bit +\begin{itemize} + \item Simplified Memory Management : Without the need to switch between user and kernel spaces, memory management becomes simpler and more efficient. +The kernel allocator can be the same as the user space allocator, operating on a single, contiguous chunk of memory. + \item Unified Allocator: The unified memory allocator can efficiently manage memory for both kernel and user applications, leveraging CHERI's capability-based protection to prevent unauthorized access. +This reduces overhead and potential fragmentation issues associated with maintaining separate memory spaces. +\end{itemize} + +\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 optimize TLB utilization. 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 efficiency of memory allocators by managing memory resources while ensuring robust security measures. +\newline + +This paper highlights the constant pursuit of optimal performance in computing, emphasizing the importance of +efficient memory management. TLBs are crucial in expediting memory access by storing recently accessed memory translations. +However, as applications grow in size and complexity, TLB capacity often becomes a bottleneck. One innovative solution +is the use of huge pages, which allocate memory in larger chunks, thereby reducing the number of TLB entries required +and potentially enhancing overall system performance. Advancements in hardware-level security, such as CHERI's +capability-based addressing, offer additional performance enhancement opportunities by tightly controlling memory +access and accelerating memory management operations. Integrating huge pages into memory management strategies +alongside CHERI's capability-based addressing can optimize TLB utilization and leverage security features for +significant performance improvements. +\newline +% The future work section outlines the planned research timeline, focusing on the development and evaluation of FAT-pointer-based +% range addresses. Key milestones include the initial development phase in July 2024, followed by integration with the RISC-V architecture +% from August to September 2024. Detailed testing and evaluation are scheduled from October 2024 to February 2025, with an extension +% of the implementation to uni-kernels planned from March to May 2025. Finalization and optimization of the approach are expected +% from June to September 2025, culminating in a comprehensive evaluation and documentation of the results from January to September 2026. +% \newline + +This paper aims to demonstrate how leveraging physically contiguous memory and advanced security architectures like CHERI can +enhance memory management efficiency while ensuring robust security measures. These advancements ultimately contribute to +improved system performance, addressing the challenges posed by the increasing complexity and size of modern application workloads. + + + +% \section{Template Overview} +% As noted in the introduction, the ``\verb|acmart|'' document class can +% be used to prepare many different kinds of documentation --- a +% double-anonymous initial submission of a full-length technical paper, a +% two-page SIGGRAPH Emerging Technologies abstract, a ``camera-ready'' +% journal article, a SIGCHI Extended Abstract, and more --- all by +% selecting the appropriate {\itshape template style} and {\itshape +% template parameters}. + +% This document will explain the major features of the document +% class. For further information, the {\itshape \LaTeX\ User's Guide} is +% available from +% \url{https://www.acm.org/publications/proceedings-template}. + +% \subsection{Template Styles} + +% The primary parameter given to the ``\verb|acmart|'' document class is +% the {\itshape template style} which corresponds to the kind of publication +% or SIG publishing the work. This parameter is enclosed in square +% brackets and is a part of the {\verb|documentclass|} command: +% \begin{verbatim} +% \documentclass[STYLE]{acmart} +% \end{verbatim} + +% Journals use one of three template styles. All but three ACM journals +% use the {\verb|acmsmall|} template style: +% \begin{itemize} +% \item {\texttt{acmsmall}}: The default journal template style. +% \item {\texttt{acmlarge}}: Used by JOCCH and TAP. +% \item {\texttt{acmtog}}: Used by TOG. +% \end{itemize} + +% The majority of conference proceedings documentation will use the {\verb|acmconf|} template style. +% \begin{itemize} +% \item {\texttt{sigconf}}: The default proceedings template style. +% \item{\texttt{sigchi}}: Used for SIGCHI conference articles. +% \item{\texttt{sigplan}}: Used for SIGPLAN conference articles. +% \end{itemize} + +% \subsection{Template Parameters} + +% In addition to specifying the {\itshape template style} to be used in +% formatting your work, there are a number of {\itshape template parameters} +% which modify some part of the applied template style. A complete list +% of these parameters can be found in the {\itshape \LaTeX\ User's Guide.} + +% Frequently-used parameters, or combinations of parameters, include: +% \begin{itemize} +% \item {\texttt{anonymous,review}}: Suitable for a ``double-anonymous'' +% conference submission. Anonymizes the work and includes line +% numbers. Use with the \texttt{\acmSubmissionID} command to print the +% submission's unique ID on each page of the work. +% \item{\texttt{authorversion}}: Produces a version of the work suitable +% for posting by the author. +% \item{\texttt{screen}}: Produces colored hyperlinks. +% \end{itemize} + +% This document uses the following string as the first command in the +% source file: +% \begin{verbatim} +% \documentclass[sigconf,authordraft]{acmart} +% \end{verbatim} + +% \section{Modifications} + +% Modifying the template --- including but not limited to: adjusting +% margins, typeface sizes, line spacing, paragraph and list definitions, +% and the use of the \verb|\vspace| command to manually adjust the +% vertical spacing between elements of your work --- is not allowed. + +% {\bfseries Your document will be returned to you for revision if +% modifications are discovered.} + +% \section{Typefaces} + +% The ``\verb|acmart|'' document class requires the use of the +% ``Libertine'' typeface family. Your \TeX\ installation should include +% this set of packages. Please do not substitute other typefaces. The +% ``\verb|lmodern|'' and ``\verb|ltimes|'' packages should not be used, +% as they will override the built-in typeface families. + +% \section{Title Information} + +% The title of your work should use capital letters appropriately - +% \url{https://capitalizemytitle.com/} has useful rules for +% capitalization. Use the {\verb|title|} command to define the title of +% your work. If your work has a subtitle, define it with the +% {\verb|subtitle|} command. Do not insert line breaks in your title. + +% If your title is lengthy, you must define a short version to be used +% in the page headers, to prevent overlapping text. The \verb|title| +% command has a ``short title'' parameter: +% \begin{verbatim} +% \title[short title]{full title} +% \end{verbatim} + +% \section{Authors and Affiliations} + +% Each author must be defined separately for accurate metadata +% identification. As an exception, multiple authors may share one +% affiliation. Authors' names should not be abbreviated; use full first +% names wherever possible. Include authors' e-mail addresses whenever +% possible. + +% Grouping authors' names or e-mail addresses, or providing an ``e-mail +% alias,'' as shown below, is not acceptable: +% \begin{verbatim} +% \author{Brooke Aster, David Mehldau} +% \email{dave,judy,steve@university.edu} +% \email{firstname.lastname@phillips.org} +% \end{verbatim} + +% The \verb|authornote| and \verb|authornotemark| commands allow a note +% to apply to multiple authors --- for example, if the first two authors +% of an article contributed equally to the work. + +% If your author list is lengthy, you must define a shortened version of +% the list of authors to be used in the page headers, to prevent +% overlapping text. The following command should be placed just after +% the last \verb|\author{}| definition: +% \begin{verbatim} +% \renewcommand{\shortauthors}{McCartney, et al.} +% \end{verbatim} +% Omitting this command will force the use of a concatenated list of all +% of the authors' names, which may result in overlapping text in the +% page headers. + +% The article template's documentation, available at +% \url{https://www.acm.org/publications/proceedings-template}, has a +% complete explanation of these commands and tips for their effective +% use. + +% Note that authors' addresses are mandatory for journal articles. + +% \section{Rights Information} + +% Authors of any work published by ACM will need to complete a rights +% form. Depending on the kind of work, and the rights management choice +% made by the author, this may be copyright transfer, permission, +% license, or an OA (open access) agreement. + +% Regardless of the rights management choice, the author will receive a +% copy of the completed rights form once it has been submitted. This +% form contains \LaTeX\ commands that must be copied into the source +% document. When the document source is compiled, these commands and +% their parameters add formatted text to several areas of the final +% document: +% \begin{itemize} +% \item the ``ACM Reference Format'' text on the first page. +% \item the ``rights management'' text on the first page. +% \item the conference information in the page header(s). +% \end{itemize} + +% Rights information is unique to the work; if you are preparing several +% works for an event, make sure to use the correct set of commands with +% each of the works. + +% The ACM Reference Format text is required for all articles over one +% page in length, and is optional for one-page articles (abstracts). + +% \section{CCS Concepts and User-Defined Keywords} + +% Two elements of the ``acmart'' document class provide powerful +% taxonomic tools for you to help readers find your work in an online +% search. + +% The ACM Computing Classification System --- +% \url{https://www.acm.org/publications/class-2012} --- is a set of +% classifiers and concepts that describe the computing +% discipline. Authors can select entries from this classification +% system, via \url{https://dl.acm.org/ccs/ccs.cfm}, and generate the +% commands to be included in the \LaTeX\ source. + +% User-defined keywords are a comma-separated list of words and phrases +% of the authors' choosing, providing a more flexible way of describing +% the research being presented. + +% CCS concepts and user-defined keywords are required for for all +% articles over two pages in length, and are optional for one- and +% two-page articles (or abstracts). + +% \section{Sectioning Commands} + +% Your work should use standard \LaTeX\ sectioning commands: +% \verb|section|, \verb|subsection|, \verb|subsubsection|, and +% \verb|paragraph|. They should be numbered; do not remove the numbering +% from the commands. + +% Simulating a sectioning command by setting the first word or words of +% a paragraph in boldface or italicized text is {\bfseries not allowed.} + +% \section{Tables} + +% The ``\verb|acmart|'' document class includes the ``\verb|booktabs|'' +% package --- \url{https://ctan.org/pkg/booktabs} --- for preparing +% high-quality tables. + +% Table captions are placed {\itshape above} the table. + +% Because tables cannot be split across pages, the best placement for +% them is typically the top of the page nearest their initial cite. To +% ensure this proper ``floating'' placement of tables, use the +% environment \textbf{table} to enclose the table's contents and the +% table caption. The contents of the table itself must go in the +% \textbf{tabular} environment, to be aligned properly in rows and +% columns, with the desired horizontal and vertical rules. Again, +% detailed instructions on \textbf{tabular} material are found in the +% \textit{\LaTeX\ User's Guide}. + +% Immediately following this sentence is the point at which +% Table~\ref{tab:freq} is included in the input file; compare the +% placement of the table here with the table in the printed output of +% this document. + +% \begin{table} +% \caption{Frequency of Special Characters} +% \label{tab:freq} +% \begin{tabular}{ccl} +% \toprule +% Non-English or Math&Frequency&Comments\\ +% \midrule +% \O & 1 in 1,000& For Swedish names\\ +% $\pi$ & 1 in 5& Common in math\\ +% \$ & 4 in 5 & Used in business\\ +% $\Psi^2_1$ & 1 in 40,000& Unexplained usage\\ +% \bottomrule +% \end{tabular} +% \end{table} + +% To set a wider table, which takes up the whole width of the page's +% live area, use the environment \textbf{table*} to enclose the table's +% contents and the table caption. As with a single-column table, this +% wide table will ``float'' to a location deemed more +% desirable. Immediately following this sentence is the point at which +% Table~\ref{tab:commands} is included in the input file; again, it is +% instructive to compare the placement of the table here with the table +% in the printed output of this document. + +% \begin{table*} +% \caption{Some Typical Commands} +% \label{tab:commands} +% \begin{tabular}{ccl} +% \toprule +% Command &A Number & Comments\\ +% \midrule +% \texttt{{\char'134}author} & 100& Author \\ +% \texttt{{\char'134}table}& 300 & For tables\\ +% \texttt{{\char'134}table*}& 400& For wider tables\\ +% \bottomrule +% \end{tabular} +% \end{table*} + +% Always use midrule to separate table header rows from data rows, and +% use it only for this purpose. This enables assistive technologies to +% recognise table headers and support their users in navigating tables +% more easily. + +% \section{Math Equations} +% You may want to display math equations in three distinct styles: +% inline, numbered or non-numbered display. Each of the three are +% discussed in the next sections. + +% \subsection{Inline (In-text) Equations} +% A formula that appears in the running text is called an inline or +% in-text formula. It is produced by the \textbf{math} environment, +% which can be invoked with the usual +% \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 +% examples of in-text equations in context. Notice how this equation: +% \begin{math} +% \lim_{n\rightarrow \infty}x=0 +% \end{math}, +% set here in in-line math style, looks slightly different when +% set in display style. (See next section). + +% \subsection{Display Equations} +% A numbered display equation---one set off by vertical space from the +% text and centered horizontally---is produced by the \textbf{equation} +% environment. An unnumbered display equation is produced by the +% \textbf{displaymath} environment. + +% Again, in either environment, you can use any of the symbols and +% structures available in \LaTeX\@; this section will just give a couple +% of examples of display equations in context. First, consider the +% equation, shown as an inline equation above: +% \begin{equation} +% \lim_{n\rightarrow \infty}x=0 +% \end{equation} +% Notice how it is formatted somewhat differently in +% the \textbf{displaymath} +% environment. Now, we'll enter an unnumbered equation: +% \begin{displaymath} +% \sum_{i=0}^{\infty} x + 1 +% \end{displaymath} +% and follow it with another numbered equation: +% \begin{equation} +% \sum_{i=0}^{\infty}x_i=\int_{0}^{\pi+2} f +% \end{equation} +% just to demonstrate \LaTeX's able handling of numbering. + +% \section{Figures} + +% The ``\verb|figure|'' environment should be used for figures. One or +% more images can be placed within a figure. If your figure contains +% third-party material, you must clearly identify it as such, as shown +% in the example below. +% % \begin{figure}[h] +% % \centering +% % \includegraphics[width=\linewidth]{sample-franklin} +% % \caption{1907 Franklin Model D roadster. Photograph by Harris \& +% % Ewing, Inc. [Public domain], via Wikimedia +% % Commons. (\url{https://goo.gl/VLCRBB}).} +% % \Description{A woman and a girl in white dresses sit in an open car.} +% % \end{figure} + +% Your figures should contain a caption which describes the figure to +% the reader. + +% Figure captions are placed {\itshape below} the figure. + +% Every figure should also have a figure description unless it is purely +% decorative. These descriptions convey what’s in the image to someone +% who cannot see it. They are also used by search engine crawlers for +% indexing images, and when images cannot be loaded. + +% A figure description must be unformatted plain text less than 2000 +% characters long (including spaces). {\bfseries Figure descriptions +% should not repeat the figure caption – their purpose is to capture +% important information that is not already provided in the caption or +% the main text of the paper.} For figures that convey important and +% complex new information, a short text description may not be +% adequate. More complex alternative descriptions can be placed in an +% appendix and referenced in a short figure description. For example, +% provide a data table capturing the information in a bar chart, or a +% structured list representing a graph. For additional information +% regarding how best to write figure descriptions and why doing this is +% so important, please see +% \url{https://www.acm.org/publications/taps/describing-figures/}. + +% \subsection{The ``Teaser Figure''} + +% A ``teaser figure'' is an image, or set of images in one figure, that +% are placed after all author and affiliation information, and before +% the body of the article, spanning the page. If you wish to have such a +% figure in your article, place the command immediately before the +% \verb|\maketitle| command: +% % \begin{verbatim} +% % \begin{teaserfigure} +% % \includegraphics[width=\textwidth]{sampleteaser} +% % \caption{figure caption} +% % \Description{figure description} +% % \end{teaserfigure} +% % \end{verbatim} + +% \section{Citations and Bibliographies} + +% The use of \BibTeX\ for the preparation and formatting of one's +% references is strongly recommended. Authors' names should be complete +% --- use full first names (``Donald E. Knuth'') not initials +% (``D. E. Knuth'') --- and the salient identifying features of a +% reference should be included: title, year, volume, number, pages, +% article DOI, etc. + +% The bibliography is included in your source document with these two +% commands, placed just before the \verb|\end{document}| command: +% \begin{verbatim} +% \bibliographystyle{ACM-Reference-Format} +% \bibliography{bibfile} +% \end{verbatim} +% where ``\verb|bibfile|'' is the name, without the ``\verb|.bib|'' +% suffix, of the \BibTeX\ file. + +% Citations and references are numbered by default. A small number of +% ACM publications have citations and references formatted in the +% ``author year'' style; for these exceptions, please include this +% command in the {\bfseries preamble} (before the command +% ``\verb|\begin{document}|'') of your \LaTeX\ source: +% \begin{verbatim} +% \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 +% 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 +% 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 +% 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 +% 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 +% 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}. + +% \section{Acknowledgments} + +% Identification of funding sources and other support, and thanks to +% individuals and groups that assisted in the research and the +% preparation of the work should be included in an acknowledgment +% section, which is placed just before the reference section in your +% document. + +% This section has a special environment: +% \begin{verbatim} +% \begin{acks} +% ... +% \end{acks} +% \end{verbatim} +% so that the information contained therein can be more easily collected +% during the article metadata extraction phase, and to ensure +% consistency in the spelling of the section heading. + +% Authors should not prepare this section as a numbered or unnumbered {\verb|\section|}; please use the ``{\verb|acks|}'' environment. + +% \section{Appendices} + +% If your work needs an appendix, add it before the +% ``\verb|\end{document}|'' command at the conclusion of your source +% document. + +% Start the appendix with the ``\verb|appendix|'' command: +% \begin{verbatim} +% \appendix +% \end{verbatim} +% and note that in the appendix, sections are lettered, not +% numbered. This document has two appendices, demonstrating the section +% and subsection identification method. + +% \section{Multi-language papers} + +% Papers may be written in languages other than English or include +% titles, subtitles, keywords and abstracts in different languages (as a +% rule, a paper in a language other than English should include an +% English title and an English abstract). Use \verb|language=...| for +% every language used in the paper. The last language indicated is the +% main language of the paper. For example, a French paper with +% additional titles and abstracts in English and German may start with +% the following command +% \begin{verbatim} +% \documentclass[sigconf, language=english, language=german, +% language=french]{acmart} +% \end{verbatim} + +% The title, subtitle, keywords and abstract will be typeset in the main +% language of the paper. The commands \verb|\translatedXXX|, \verb|XXX| +% begin title, subtitle and keywords, can be used to set these elements +% in the other languages. The environment \verb|translatedabstract| is +% used to set the translation of the abstract. These commands and +% environment have a mandatory first argument: the language of the +% second argument. See \verb|sample-sigconf-i13n.tex| file for examples +% of their usage. + +% \section{SIGCHI Extended Abstracts} + +% The ``\verb|sigchi-a|'' template style (available only in \LaTeX\ and +% not in Word) produces a landscape-orientation formatted article, with +% a wide left margin. Three environments are available for use with the +% ``\verb|sigchi-a|'' template style, and produce formatted output in +% the margin: +% \begin{description} +% \item[\texttt{sidebar}:] Place formatted text in the margin. +% \item[\texttt{marginfigure}:] Place a figure in the margin. +% \item[\texttt{margintable}:] Place a table in the margin. +% \end{description} + +% %% +% %% The acknowledgments section is defined using the "acks" environment +% %% (and NOT an unnumbered section). This ensures the proper +% %% identification of the section in the article metadata, and the +% %% consistent spelling of the heading. +% \begin{acks} +% To Robert, for the bagels and explaining CMYK and color spaces. +% \end{acks} + +% %% +% %% The next two lines define the bibliography style to be used, and +% %% the bibliography file. +% \bibliographystyle{ACM-Reference-Format} +% \bibliography{sample-base} + + +% %% +% %% If your work has an appendix, this is the place to put it. +% \appendix + +% \section{Research Methods} + +% \subsection{Part One} + +% Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi +% malesuada, quam in pulvinar varius, metus nunc fermentum urna, id +% sollicitudin purus odio sit amet enim. Aliquam ullamcorper eu ipsum +% vel mollis. Curabitur quis dictum nisl. Phasellus vel semper risus, et +% lacinia dolor. Integer ultricies commodo sem nec semper. + +% \subsection{Part Two} + +% Etiam commodo feugiat nisl pulvinar pellentesque. Etiam auctor sodales +% ligula, non varius nibh pulvinar semper. Suspendisse nec lectus non +% ipsum convallis congue hendrerit vitae sapien. Donec at laoreet +% eros. Vivamus non purus placerat, scelerisque diam eu, cursus +% ante. Etiam aliquam tortor auctor efficitur mattis. + +% \section{Online Resources} + +% Nam id fermentum dui. Suspendisse sagittis tortor a nulla mollis, in +% pulvinar ex pretium. Sed interdum orci quis metus euismod, et sagittis +% enim maximus. Vestibulum gravida massa ut felis suscipit +% congue. Quisque mattis elit a risus ultrices commodo venenatis eget +% dui. Etiam sagittis eleifend elementum. + +% Nam interdum magna at lectus dignissim, ac dignissim lorem +% rhoncus. Maecenas eu arcu ac neque placerat aliquam. Nunc pulvinar +% massa et mattis lacinia. + +\bibliographystyle{unsrt} +\bibliography{paperReferences} + +\end{document} +\endinput +%% +%% End of file `sample-sigconf-authordraft.tex'. + diff --git a/docs/EuroSys/Paper/paperReferences.bib b/docs/EuroSys/Paper/paperReferences.bib new file mode 100644 index 0000000..b1f18eb --- /dev/null +++ b/docs/EuroSys/Paper/paperReferences.bib @@ -0,0 +1,521 @@ +@article{Shadow_superpages, +title = {Aggressive superpage support with the shadow memory and the partial-subblock TLB}, +journal = {Microprocessors and Microsystems}, +volume = {25}, +number = {7}, +pages = {329-342}, +year = {2001}, +issn = {0141-9331}, +doi = {https://doi.org/10.1016/S0141-9331(01)00125-9}, +url = {https://www.sciencedirect.com/science/article/pii/S0141933101001259}, +author = {Cheol Ho Park and Daeyeon Park}, +keywords = {Superpage, Shadow memory, Subblock TLB, Translation lookaside buffer}, +abstract = {While superpages are an efficient solution to increase TLB reach, strong requirements for using superpages hinder the actual utilization. Two previous solutions, the partial-subblock TLB and the shadow memory were proposed to release the requirements. The partial-subblock TLB releases only a small portion of the requirements. The shadow memory releases most of the requirements but introduces other serious problems. We propose a hybrid scheme which integrates both the shadow memory and the partial-subblock TLB, thereby enjoying the benefits inherited from both sides. The hybrid scheme has as high a superpage utilization as the shadow memory, and avoids most of the problems in the shadow memory by virtue of the partial-subblock TLB. The experiment shows that the hybrid scheme outperforms the previous schemes though its hardware cost and overhead are considered.} +} + +@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}, +} + +@article{DirectSegment, +author = {Basu, Arkaprava and Gandhi, Jayneel and Chang, Jichuan and Hill, Mark D. and Swift, Michael M.}, +title = {Efficient virtual memory for big memory servers}, +year = {2013}, +issue_date = {June 2013}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +volume = {41}, +number = {3}, +issn = {0163-5964}, +url = {https://doi.org/10.1145/2508148.2485943}, +doi = {10.1145/2508148.2485943}, +abstract = {Our analysis shows that many "big-memory" server workloads, such as databases, in-memory caches, and graph analytics, pay a high cost for page-based virtual memory. They consume as much as 10\% of execution cycles on TLB misses, even using large pages. On the other hand, we find that these workloads use read-write permission on most pages, are provisioned not to swap, and rarely benefit from the full flexibility of page-based virtual memory.To remove the TLB miss overhead for big-memory workloads, we propose mapping part of a process's linear virtual address space with a direct segment, while page mapping the rest of the virtual address space. Direct segments use minimal hardware---base, limit and offset registers per core---to map contiguous virtual memory regions directly to contiguous physical memory. They eliminate the possibility of TLB misses for key data structures such as database buffer pools and in-memory key-value stores. Memory mapped by a direct segment may be converted back to paging when needed.We prototype direct-segment software support for x86-64 in Linux and emulate direct-segment hardware. For our workloads, direct segments eliminate almost all TLB misses and reduce the execution time wasted on TLB misses to less than 0.5\%.}, +journal = {SIGARCH Comput. Archit. News}, +month = jun, +pages = {237–248}, +numpages = {12}, +keywords = {tanslation lookaside buffer, virtual memory} +} + + +@article{navarro_practical_nodate, + 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/9RBYAPGM/Navarro - Practical, transparent operating system support fo.pdf:application/pdf}, +} + +@inproceedings{panwar_hawkeye_2019, + location = {Providence {RI} {USA}}, + title = {{HawkEye}: Efficient Fine-grained {OS} Support for Huge Pages}, + isbn = {978-1-4503-6240-5}, + url = {https://dl.acm.org/doi/10.1145/3297858.3304064}, + doi = {10.1145/3297858.3304064}, + shorttitle = {{HawkEye}}, + eventtitle = {{ASPLOS} '19: Architectural Support for Programming Languages and Operating Systems}, + pages = {347--360}, + booktitle = {Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems}, + publisher = {{ACM}}, + author = {Panwar, Ashish and Bansal, Sorav and Gopinath, K.}, + urldate = {2024-05-27}, + date = {2019-04-04}, + langid = {english}, + file = {Full Text PDF:/Users/akilan/Zotero/storage/VQLCKYCA/Panwar et al. - 2019 - HawkEye Efficient Fine-grained OS Support for Hug.pdf:application/pdf}, +} + +@inproceedings{karakostas_redundant_2015, + location = {Portland Oregon}, + title = {Redundant memory mappings for fast access to large memories}, + isbn = {978-1-4503-3402-0}, + url = {https://dl.acm.org/doi/10.1145/2749469.2749471}, + doi = {10.1145/2749469.2749471}, + abstract = {Page-based virtual memory improves programmer productivity, security, and memory utilization, but incurs performance overheads due to costly page table walks after {TLB} misses. This overhead can reach 50\% for modern workloads that access increasingly vast memory with stagnating {TLB} sizes. To reduce the overhead of virtual memory, this paper proposes Redundant Memory Mappings ({RMM}), which leverage ranges of pages and provides an efficient, alternative representation of many virtual-to-physical mappings. We define a range be a subset of process’s pages that are virtually and physically contiguous. {RMM} translates each range with a single range table entry, enabling a modest number of entries to translate most of the process’s address space. {RMM} operates in parallel with standard paging and uses a software range table and hardware range {TLB} with arbitrarily large reach. We modify the operating system to automatically detect ranges and to increase their likelihood with eager page allocation. {RMM} is thus transparent to applications. We prototype {RMM} software in Linux and emulate the hardware. {RMM} performs substantially better than paging alone and huge pages, and improves a wider variety of workloads than direct segments (one range per program), reducing the overhead of virtual memory to less than 1\% on average.}, + eventtitle = {{ISCA} '15: The 42nd Annual International Symposium on Computer Architecture}, + pages = {66--78}, + booktitle = {Proceedings of the 42nd Annual International Symposium on Computer Architecture}, + publisher = {{ACM}}, + author = {Karakostas, Vasileios and Gandhi, Jayneel and Ayar, Furkan and Cristal, Adrián and Hill, Mark D. and {McKinley}, Kathryn S. and Nemirovsky, Mario and Swift, Michael M. and Ünsal, Osman}, + urldate = {2024-05-27}, + date = {2015-06-13}, + langid = {english}, + file = {Karakostas et al. - 2015 - Redundant memory mappings for fast access to large.pdf:/Users/akilan/Zotero/storage/8JECES24/Karakostas et al. - 2015 - Redundant memory mappings for fast access to large.pdf:application/pdf}, +} + +@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}, +} + +@article{woodruff_cheri_2019, + title = {{CHERI} Concentrate: Practical Compressed Capabilities}, + volume = {68}, + rights = {https://ieeexplore.ieee.org/Xplorehelp/downloads/license-information/{IEEE}.html}, + issn = {0018-9340, 1557-9956, 2326-3814}, + url = {https://ieeexplore.ieee.org/document/8703061/}, + doi = {10.1109/TC.2019.2914037}, + shorttitle = {{CHERI} Concentrate}, + abstract = {We present {CHERI} Concentrate, a new fat-pointer compression scheme applied to {CHERI}, the most developed capability-pointer system at present. Capability fat pointers are a primary candidate to enforce fine-grained and non-bypassable security properties in future computer systems, although increased pointer size can severely affect performance. Thus, several proposals for capability compression have been suggested elsewhere that do not support legacy instruction sets, ignore features critical to the existing software base, and also introduce design inefficiencies to {RISC}-style processor pipelines. {CHERI} Concentrate improves on the state-of-the-art region-encoding efficiency, solves important pipeline problems, and eases semantic restrictions of compressed encoding, allowing it to protect a full legacy software stack. We present the first quantitative analysis of compiled capability code, which we use to guide the design of the encoding format. We analyze and extend logic from the open-source {CHERI} prototype processor design on {FPGA} to demonstrate encoding efficiency, minimize delay of pointer arithmetic, and eliminate additional load-to-use delay. To verify correctness of our proposed high-performance logic, we present a {HOL}4 machine-checked proof of the decode and pointer-modify operations. Finally, we measure a 50\% to 75\% reduction in L2 misses for many compiled C-language benchmarks running under a commodity operating system using compressed 128-bit and 64-bit formats, demonstrating both compatibility with and increased performance over the uncompressed, 256-bit format.}, + pages = {1455--1469}, + number = {10}, + journaltitle = {{IEEE} Transactions on Computers}, + shortjournal = {{IEEE} Trans. Comput.}, + author = {Woodruff, Jonathan and Joannou, Alexandre and Xia, Hongyan and Fox, Anthony and Norton, Robert M. and Chisnall, David and Davis, Brooks and Gudka, Khilan and Filardo, Nathaniel W. and Markettos, A. Theodore and Roe, Michael and Neumann, Peter G. and Watson, Robert N. M. and Moore, Simon W.}, + urldate = {2024-05-27}, + date = {2019-10-01}, + langid = {english}, + file = {Woodruff et al. - 2019 - CHERI Concentrate Practical Compressed Capabiliti.pdf:/Users/akilan/Zotero/storage/3SZUIWQ5/Woodruff et al. - 2019 - CHERI Concentrate Practical Compressed Capabiliti.pdf:application/pdf}, +} + +@online{noauthor_capability-based_nodate, + title = {Capability-Based Computer Systems}, + url = {https://homes.cs.washington.edu/~levy/capabook/}, + urldate = {2024-06-07}, + file = {Capability-Based Computer Systems:/Users/akilan/Zotero/storage/IAAG6ZF3/capabook.html:text/html}, +} + +@article{woodruff_cheri_2014, + title = {The {CHERI} capability model: revisiting {RISC} in an age of risk}, + volume = {42}, + issn = {0163-5964}, + url = {https://doi.org/10.1145/2678373.2665740}, + doi = {10.1145/2678373.2665740}, + shorttitle = {The {CHERI} capability model}, + abstract = {Motivated by contemporary security challenges, we reevaluate and refine capability-based addressing for the {RISC} era. We present {CHERI}, a hybrid capability model that extends the 64-bit {MIPS} {ISA} with byte-granularity memory protection. We demonstrate that {CHERI} enables language memory model enforcement and fault isolation in hardware rather than software, and that the {CHERI} mechanisms are easily adopted by existing programs for efficient in-program memory safety. In contrast to past capability models, {CHERI} complements, rather than replaces, the ubiquitous page-based protection mechanism, providing a migration path towards deconflating data-structure protection and {OS} memory management. Furthermore, {CHERI} adheres to a strict {RISC} philosophy: it maintains a load-store architecture and requires only singlecycle instructions, and supplies protection primitives to the compiler, language runtime, and operating system. We demonstrate a mature {FPGA} implementation that runs the {FreeBSD} operating system with a full range of software and an open-source application suite compiled with an extended {LLVM} to use {CHERI} memory protection. A limit study compares published memory safety mechanisms in terms of instruction count and memory overheads. The study illustrates that {CHERI} is performance-competitive even while providing assurance and greater flexibility with simpler hardware}, + pages = {457--468}, + number = {3}, + journaltitle = {{ACM} {SIGARCH} Computer Architecture News}, + shortjournal = {{SIGARCH} Comput. Archit. News}, + author = {Woodruff, Jonathan and Watson, Robert N.M. and Chisnall, David and Moore, Simon W. and Anderson, Jonathan and Davis, Brooks and Laurie, Ben and Neumann, Peter G. and Norton, Robert and Roe, Michael}, + urldate = {2024-06-07}, + date = {2014-06-14}, +} + +@article{miller_towards_nodate, + title = {Towards a Unified Approach to Access Control and Concurrency Control}, + author = {Miller, Mark Samuel}, + langid = {english}, + file = {Miller - Towards a Unified Approach to Access Control and Co.pdf:/Users/akilan/Zotero/storage/7METVAKG/Miller - Towards a Unified Approach to Access Control and Co.pdf:application/pdf}, +} + +@inproceedings{curtsinger_coz_2015, + title = {Coz: Finding Code that Counts with Causal Profiling}, + url = {http://arxiv.org/abs/1608.03676}, + doi = {10.1145/2815400.2815409}, + shorttitle = {Coz}, + abstract = {Improving performance is a central concern for software developers. To locate optimization opportunities, developers rely on software profilers. However, these profilers only report where programs spent their time: optimizing that code may have no impact on performance. Past profilers thus both waste developer time and make it difficult for them to uncover significant optimization opportunities.}, + pages = {184--197}, + booktitle = {Proceedings of the 25th Symposium on Operating Systems Principles}, + author = {Curtsinger, Charlie and Berger, Emery D.}, + urldate = {2024-06-07}, + date = {2015-10-04}, + langid = {english}, + eprinttype = {arxiv}, + eprint = {1608.03676 [cs]}, + keywords = {C.4, Computer Science - Performance, D.4.8}, + 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}, + } + +@inproceedings{zhu_research_2018, + location = {Taipei, Taiwan}, + title = {Research and Implementation of High Performance Traffic Processing Based on Intel {DPDK}}, + isbn = {978-1-5386-9403-9}, + url = {https://ieeexplore.ieee.org/document/8701793/}, + doi = {10.1109/PAAP.2018.00018}, + eventtitle = {2018 9th International Symposium on Parallel Architectures, Algorithms and Programming ({PAAP})}, + pages = {62--68}, + booktitle = {2018 9th International Symposium on Parallel Architectures, Algorithms and Programming ({PAAP})}, + publisher = {{IEEE}}, + author = {Zhu, Wenjun and Li, Peng and Luo, Baozhou and Xu, He and Zhang, Yujie}, + urldate = {2024-06-07}, + date = {2018-12}, +} + +@article{bi_dpdk-based_2016, + title = {{DPDK}-based Improvement of Packet Forwarding}, + volume = {7}, + rights = {© Owned by the authors, published by {EDP} Sciences, 2016}, + issn = {2271-2097}, + url = {https://www.itm-conferences.org/articles/itmconf/abs/2016/02/itmconf_ita2016_01009/itmconf_ita2016_01009.html}, + doi = {10.1051/itmconf/20160701009}, + abstract = {Reel-time processing of packets occupies a significant position in the field of computer network security. With theexplosive growth of the backbone link rate,which is consistent with Gilder's law, many bottlenecks of server performance leave the real-time data stream unprocessed.Thus, we proposedto take use of {DPDK}(Data Plan Development Kit) framework to achieve an intelligent {NIC} packet forwarding system. During this research, we deeply analysis the forwarding process of packet in {DPDK} and improve its {DMA} mode.According to the results of experiment, the system greatly enhanced the performance of packet forwarding,and the throughput of forwarding 64-byet or random-length packets by 20Gbit {NIC} reaches13.3Gbps and 18.7Gbps(dual ports forwarding).}, + pages = {01009}, + journaltitle = {{ITM} Web of Conferences}, + shortjournal = {{ITM} Web Conf.}, + author = {Bi, Hao and Wang, Zhao-Hun}, + urldate = {2024-06-07}, + date = {2016}, + langid = {english}, + note = {Publisher: {EDP} Sciences}, + file = {Full Text PDF:/Users/akilan/Zotero/storage/LEVMJ983/Bi and Wang - 2016 - DPDK-based Improvement of Packet Forwarding.pdf:application/pdf}, +} + +@article{esswood_cherios_nodate, + title = {{CheriOS}: designing an untrusted single-address-space capability operating system utilising capability hardware and a minimal hypervisor}, + author = {Esswood, Lawrence G}, + langid = {english}, + file = {Esswood - CheriOS designing an untrusted single-address-spa.pdf:/Users/akilan/Zotero/storage/YGIBFTD5/Esswood - CheriOS designing an untrusted single-address-spa.pdf:application/pdf}, +} + +@book{wilkes_cambridge_1979, + location = {New York}, + title = {The Cambridge {CAP} computer and its operating system}, + isbn = {978-0-444-00357-7 978-0-444-00358-4}, + series = {The computer science library operating and programming systems series}, + pagetotal = {165}, + number = {6}, + publisher = {North Holland}, + author = {Wilkes, Maurice V. and Needham, Roger M.}, + date = {1979}, + langid = {english}, + file = {Wilkes and Needham - 1979 - The Cambridge CAP computer and its operating syste.pdf:/Users/akilan/Zotero/storage/VIQTWZS3/Wilkes and Needham - 1979 - The Cambridge CAP computer and its operating syste.pdf:application/pdf}, +} + +@article{fillo_mmachine_nodate, + title = {The M–Machine Multicomputer}, + author = {Fillo, Marco and Keckler, Stephen W and Dally, William J and Carter, Nicholas P and Chang, Andrew and Gurevich, Yevgeny and Lee, Whay S}, + langid = {english}, + file = {Fillo et al. - The M–Machine Multicomputer.pdf:/Users/akilan/Zotero/storage/LD95UQTM/Fillo et al. - The M–Machine Multicomputer.pdf:application/pdf}, +} + +@inproceedings{kwon_low-fat_2013, + location = {New York, {NY}, {USA}}, + title = {Low-fat pointers: compact encoding and efficient gate-level implementation of fat pointers for spatial safety and capability-based security}, + isbn = {978-1-4503-2477-9}, + url = {https://dl.acm.org/doi/10.1145/2508859.2516713}, + doi = {10.1145/2508859.2516713}, + series = {{CCS} '13}, + shorttitle = {Low-fat pointers}, + abstract = {Referencing outside the bounds of an array or buffer is a common source of bugs and security vulnerabilities in today's software. We can enforce spatial safety and eliminate these violations by inseparably associating bounds with every pointer (fat pointer) and checking these bounds on every memory access. By further adding hardware-managed tags to the pointer, we make them unforgeable. This, in turn, allows the pointers to be used as capabilities to facilitate fine-grained access control and fast security domain crossing. Dedicated checking hardware runs in parallel with the processor's normal datapath so that the checks do not slow down processor operation (0\% runtime overhead). To achieve the safety of fat pointers without increasing program state, we compactly encode approximate base and bound pointers along with exact address pointers for a 46b address space into one 64-bit word with a worst-case memory overhead of 3\%. We develop gate-level implementations of the logic for updating and validating these compact fat pointers and show that the hardware requirements are low and the critical paths for common operations are smaller than processor {ALU} operations. Specifically, we show that the fat-pointer check and update operations can run in a 4 ns clock cycle on a Virtex 6 (40nm) implementation while only using 1100 6-{LUTs} or about the area of a double-precision, floating-point adder.}, + pages = {721--732}, + booktitle = {Proceedings of the 2013 {ACM} {SIGSAC} conference on Computer \& communications security}, + publisher = {Association for Computing Machinery}, + author = {Kwon, Albert and Dhawan, Udit and Smith, Jonathan M. and Knight, Thomas F. and {DeHon}, Andre}, + urldate = {2024-06-18}, + date = {2013-11-04}, + keywords = {capabilities, fat pointer, memory safety, processor, security, spatial confinement}, + file = {Full Text PDF:/Users/akilan/Zotero/storage/CVVZYZS4/Kwon et al. - 2013 - Low-fat pointers compact encoding and efficient g.pdf:application/pdf}, +} + +@article{wulf_hydra_1974, + title = {{HYDRA}: the kernel of a multiprocessor operating system}, + volume = {17}, + issn = {0001-0782, 1557-7317}, + url = {https://dl.acm.org/doi/10.1145/355616.364017}, + doi = {10.1145/355616.364017}, + shorttitle = {{HYDRA}}, + abstract = {This paper describes the design philosophy of {HYDRA}—the kernel of an operating system for C.mmp, the Carnegie-Mellon Multi-Mini-Processor. This philosophy is realized through the introduction of a generalized notion of “resource,” both physical and virtual, called an “object.” Mechanisms are presented for dealing with objects, including the creation of new types, specification of new operations applicable to a given type, sharing, and protection of any reference to a given object against improper application of any of the operations defined with respect to that type of object. The mechanisms provide a coherent basis for extension of the system in two directions: the introduction of new facilities, and the creation of highly secure systems.}, + pages = {337--345}, + number = {6}, + journaltitle = {Communications of the {ACM}}, + shortjournal = {Commun. {ACM}}, + author = {Wulf, W. and Cohen, E. and Corwin, W. and Jones, A. and Levin, R. and Pierson, C. and Pollack, F.}, + urldate = {2024-06-18}, + date = {1974-06}, + langid = {english}, + file = {Full Text:/Users/akilan/Zotero/storage/EIRBNTVF/Wulf et al. - 1974 - HYDRA the kernel of a multiprocessor operating sy.pdf:application/pdf}, +} + +@article{hardy_keykos_1985, + title = {{KeyKOS} architecture}, + volume = {19}, + issn = {0163-5980}, + url = {https://dl.acm.org/doi/10.1145/858336.858337}, + doi = {10.1145/858336.858337}, + pages = {8--25}, + number = {4}, + journaltitle = {{ACM} {SIGOPS} Operating Systems Review}, + shortjournal = {{SIGOPS} Oper. Syst. Rev.}, + author = {Hardy, Norman}, + urldate = {2024-06-18}, + date = {1985-10-01}, + file = {Full Text PDF:/Users/akilan/Zotero/storage/QSYKM6QN/Hardy - 1985 - KeyKOS architecture.pdf:application/pdf}, +} + +@article{rashid_mach_nodate, + title = {Mach: A System Software Kernel}, + abstract = {The Mach operating system can be used as a system software kernel which can support a variety of operating system environments. Key elements of the Mach design which allow it to efficiently support system software include integrated virtual memory management and interprocess communication, multiple threads of control within one address space, support for transparent system trap callout and an object programming facility integrated with the Mach {IPC} mechanisms. Mach is currently available both from {CMU} and commercially on a wide range of uniprocessor and multiprocessor hardware.}, + author = {Rashid, Richard and Julin, Daniel and Orr, Douglas and Sanzi, Richard and Baron, Robert and Forin, Alessandro and Golub, David and Jones, Michael}, + langid = {english}, + file = {Rashid et al. - Mach A System Software Kernel.pdf:/Users/akilan/Zotero/storage/UHLILYH9/Rashid et al. - Mach A System Software Kernel.pdf:application/pdf}, +} + +@inproceedings{baumann_multikernel_2009, + location = {Big Sky Montana {USA}}, + title = {The multikernel: a new {OS} architecture for scalable multicore systems}, + isbn = {978-1-60558-752-3}, + url = {https://dl.acm.org/doi/10.1145/1629575.1629579}, + doi = {10.1145/1629575.1629579}, + shorttitle = {The multikernel}, + abstract = {Commodity computer systems contain more and more processor cores and exhibit increasingly diverse architectural tradeoffs, including memory hierarchies, interconnects, instruction sets and variants, and {IO} configurations. Previous high-performance computing systems have scaled in specific cases, but the dynamic nature of modern client and server workloads, coupled with the impossibility of statically optimizing an {OS} for all workloads and hardware variants pose serious challenges for operating system structures.}, + eventtitle = {{SOSP}09: {ACM} {SIGOPS} 22nd Symposium on Operating Systems Principles}, + pages = {29--44}, + booktitle = {Proceedings of the {ACM} {SIGOPS} 22nd symposium on Operating systems principles}, + publisher = {{ACM}}, + author = {Baumann, Andrew and Barham, Paul and Dagand, Pierre-Evariste and Harris, Tim and Isaacs, Rebecca and Peter, Simon and Roscoe, Timothy and Schüpbach, Adrian and Singhania, Akhilesh}, + urldate = {2024-06-18}, + date = {2009-10-11}, + langid = {english}, + file = {Baumann et al. - 2009 - The multikernel a new OS architecture for scalabl.pdf:/Users/akilan/Zotero/storage/4BVCRZN6/Baumann et al. - 2009 - The multikernel a new OS architecture for scalabl.pdf:application/pdf}, +} + +@article{watson_capsicum_nodate, + title = {Capsicum: practical capabilities for {UNIX}}, + abstract = {Capsicum is a lightweight operating system capability and sandbox framework planned for inclusion in {FreeBSD} 9. Capsicum extends, rather than replaces, {UNIX} {APIs}, providing new kernel primitives (sandboxed capability mode and capabilities) and a userspace sandbox {API}. These tools support compartmentalisation of monolithic {UNIX} applications into logical applications, an increasingly common goal supported poorly by discretionary and mandatory access control. We demonstrate our approach by adapting core {FreeBSD} utilities and Google’s Chromium web browser to use Capsicum primitives, and compare the complexity and robustness of Capsicum with other sandboxing techniques.}, + author = {Watson, Robert N M and Anderson, Jonathan and Kennaway, Kris and Laurie, Ben}, + langid = {english}, + file = {Watson et al. - Capsicum practical capabilities for UNIX.pdf:/Users/akilan/Zotero/storage/IAFXHJ8H/Watson et al. - Capsicum practical capabilities for UNIX.pdf:application/pdf}, +} + +@online{noauthor_department_nodate, + title = {Department of Computer Science and Technology: {CheriBSD}}, + url = {https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/cheribsd.html}, + urldate = {2024-06-18}, + file = {Department of Computer Science and Technology\: CheriBSD:/Users/akilan/Zotero/storage/3XQJWCXD/cheribsd.html:text/html}, +} + +@online{noauthor_msrc-security-researchpapers2020security_nodate, + title = {{MSRC}-Security-Research/papers/2020/Security analysis of {CHERI} {ISA}.pdf at master · microsoft/{MSRC}-Security-Research}, + url = {https://github.com/microsoft/MSRC-Security-Research/blob/master/papers/2020/Security%20analysis%20of%20CHERI%20ISA.pdf}, + abstract = {Security Research from the Microsoft Security Response Center ({MSRC}) - microsoft/{MSRC}-Security-Research}, + titleaddon = {{GitHub}}, + urldate = {2024-06-18}, + langid = {english}, + file = {Snapshot:/Users/akilan/Zotero/storage/ENF2KYRT/Security analysis of CHERI ISA.html:text/html}, +} + +@inproceedings{zaliva_formal_2024, + location = {La Jolla {CA} {USA}}, + title = {Formal Mechanised Semantics of {CHERI} C: Capabilities, Undefined Behaviour, and Provenance}, + isbn = {9798400703720}, + url = {https://dl.acm.org/doi/10.1145/3617232.3624859}, + doi = {10.1145/3617232.3624859}, + shorttitle = {Formal Mechanised Semantics of {CHERI} C}, + abstract = {Memory safety issues are a persistent source of security vulnerabilities, with conventional architectures and the C codebase chronically prone to exploitable errors. The {CHERI} research project has shown how one can provide radically improved security for that existing codebase with minimal modification, using unforgeable hardware capabilities in place of machine-word pointers in {CHERI} dialects of C, implemented as adaptions of Clang/{LLVM} and {GCC}. {CHERI} was first prototyped as extensions of {MIPS} and {RISC}-V; it is currently being evaluated by Arm and others with the Arm Morello experimental architecture, processor, and platform, to explore its potential for mass-market adoption, and by Microsoft in their {CHERIoT} design for embedded cores.}, + eventtitle = {{ASPLOS} '24: 29th {ACM} International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1}, + pages = {181--196}, + booktitle = {Proceedings of the 29th {ACM} International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1}, + publisher = {{ACM}}, + author = {Zaliva, Vadim and Memarian, Kayvan and Almeida, Ricardo and Clarke, Jessica and Davis, Brooks and Richardson, Alexander and Chisnall, David and Campbell, Brian and Stark, Ian and Watson, Robert N. M. and Sewell, Peter}, + urldate = {2024-06-18}, + date = {2024-04-27}, + langid = {english}, + file = {Zaliva et al. - 2024 - Formal Mechanised Semantics of CHERI C Capabiliti.pdf:/Users/akilan/Zotero/storage/8Y2CRHBS/Zaliva et al. - 2024 - Formal Mechanised Semantics of CHERI C Capabiliti.pdf:application/pdf}, +} + +@article{watson_cheri_nodate, + title = {{CHERI} C/C++ Programming Guide}, + abstract = {This document is a brief introduction to the {CHERI} C/C++ programming languages. We explain the principles underlying these language variants, and their grounding in {CHERI}’s multiple architectural instantiations: {CHERI}-{MIPS}, {CHERI}-{RISC}-V, and Arm’s Morello. We describe the most commonly encountered differences between these dialects and C/C++ on conventional architectures, and where existing software may require minor changes. We document new compiler warnings and errors that may be experienced compiling code with the {CHERI} Clang/{LLVM} compiler, and suggest how they may be addressed through typically minor source-code changes. We explain how modest language extensions allow selected software, such as memory allocators, to further refine permissions and bounds on pointers. This guidance is based on our experience adapting the {FreeBSD} operating-system userspace, and applications such as {PostgreSQL} and {WebKit}, to run in a {CHERI} C/C++ capability-based programming environment. We conclude by recommending further reading.}, + author = {Watson, Robert N M and Richardson, Alexander and Davis, Brooks and Baldwin, John and Chisnall, David and Clarke, Jessica and Filardo, Nathaniel and Moore, Simon W and Napierala, Edward and Sewell, Peter and Neumann, Peter G}, + langid = {english}, + file = {Watson et al. - CHERI CC++ Programming Guide.pdf:/Users/akilan/Zotero/storage/WHGQXE8P/Watson et al. - CHERI CC++ Programming Guide.pdf:application/pdf}, +} + +@article{esswood_cherios_nodate-1, + title = {{CheriOS}: designing an untrusted single-address-space capability operating system utilising capability hardware and a minimal hypervisor}, + author = {Esswood, Lawrence G}, + langid = {english}, + file = {Esswood - CheriOS designing an untrusted single-address-spa.pdf:/Users/akilan/Zotero/storage/3IVKGYZ5/Esswood - CheriOS designing an untrusted single-address-spa.pdf:application/pdf}, +} + +@online{noauthor_architecture_nodate, + title = {The Architecture  of the Burroughs B-5000}, + url = {https://www.smecc.org/The%20Architecture%20%20of%20the%20Burroughs%20B-5000.htm}, + urldate = {2024-06-18}, + file = {The Architecture  of the Burroughs B-5000:/Users/akilan/Zotero/storage/ELNL8VBQ/The Architecture of the Burroughs B-5000.html:text/html}, +} + +@article{dennis_programming_1966, + title = {Programming semantics for multiprogrammed computations}, + volume = {9}, + issn = {0001-0782, 1557-7317}, + url = {https://dl.acm.org/doi/10.1145/365230.365252}, + doi = {10.1145/365230.365252}, + abstract = {The semantics are defined for a number of meta-instructions which perform operations essential to the writing of programs in multiprogrammed computer systems. These meta-instructions relate to parallel processing, protecting of separate computations, program debugging, and the sharing among users of memory segments and other computing objects, the names of which are hierarchically structured. The language sophistication contemplated is midway between an assembly language and an advanced algebraic language.}, + pages = {143--155}, + number = {3}, + journaltitle = {Communications of the {ACM}}, + shortjournal = {Commun. {ACM}}, + author = {Dennis, Jack B. and Van Horn, Earl C.}, + urldate = {2024-06-18}, + date = {1966-03}, + langid = {english}, + file = {Full Text:/Users/akilan/Zotero/storage/6MLX2U8V/Dennis and Van Horn - 1966 - Programming semantics for multiprogrammed computat.pdf:application/pdf}, +} + +@article{watson_capability_nodate, + title = {Capability Hardware Enhanced {RISC} Instructions: {CHERI} Instruction-Set Architecture (Version 8)}, + abstract = {This technical report describes {CHERI} {ISAv}8, the eighth version of the {CHERI} architecture being developed by {SRI} International and the University of Cambridge. This design captures ten years of research, development, experimentation, refinement, formal analysis, and validation through hardware and software implementation.}, + author = {Watson, Robert N M and Neumann, Peter G and Woodruff, Jonathan and Roe, Michael and Almatary, Hesham and Anderson, Jonathan and Baldwin, John and Barnes, Graeme and Chisnall, David and Clarke, Jessica and Davis, Brooks and Eisen, Lee and Filardo, Nathaniel Wesley and Grisenthwaite, Richard and Joannou, Alexandre and Laurie, Ben and Markettos, A Theodore and Moore, Simon W and Murdoch, Steven J and Nienhuis, Kyndylan and Norton, Robert and Richardson, Alexander and Rugg, Peter and Sewell, Peter and Son, Stacey and Xia, Hongyan}, + langid = {english}, + file = {Watson et al. - Capability Hardware Enhanced RISC Instructions CH.pdf:/Users/akilan/Zotero/storage/R9T374YS/Watson et al. - Capability Hardware Enhanced RISC Instructions CH.pdf:application/pdf}, +} + +@online{noauthor_-it-yourself_nodate, + title = {Do-It-Yourself Virtual Memory Translation {\textbar} {ACM} {SIGARCH} Computer Architecture News}, + url = {https://dl.acm.org/doi/10.1145/3140659.3080209}, + urldate = {2024-06-18}, +} + +@online{noauthor_osdi_nodate, + title = {{OSDI} Symposia {\textbar} {USENIX}}, + url = {https://www.usenix.org/conferences/byname/179}, + urldate = {2024-06-19}, + file = {OSDI Symposia | USENIX:/Users/akilan/Zotero/storage/VI7YCLJV/179.html:text/html}, +} + +@article{mittal_survey_2017, + title = {A survey of techniques for architecting {TLBs}}, + volume = {29}, + rights = {Copyright © 2016 John Wiley \& Sons, Ltd.}, + issn = {1532-0634}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/cpe.4061}, + doi = {10.1002/cpe.4061}, + abstract = {Translation lookaside buffer ({TLB}) caches virtual to physical address translation information and is used in systems ranging from embedded devices to high-end servers. Because {TLB} is accessed very frequently and a {TLB} miss is extremely costly, prudent management of {TLB} is important for improving performance and energy efficiency of processors. In this paper, we present a survey of techniques for architecting and managing {TLBs}. We characterize the techniques across several dimensions to highlight their similarities and distinctions. We believe that this paper will be useful for chip designers, computer architects, and system engineers.}, + pages = {e4061}, + number = {10}, + journaltitle = {Concurrency and Computation: Practice and Experience}, + author = {Mittal, Sparsh}, + urldate = {2024-06-24}, + date = {2017}, + langid = {english}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1002/cpe.4061}, + keywords = {classification, power management, prefetching, Review, superpage, {TLB}, virtual cache, workload characterization}, + file = {Snapshot:/Users/akilan/Zotero/storage/JJ9H6B2H/cpe.html:text/html}, +} + +@inproceedings{lietar_snmalloc_2019, + location = {New York, {NY}, {USA}}, + title = {snmalloc: a message passing allocator}, + isbn = {978-1-4503-6722-6}, + url = {https://doi.org/10.1145/3315573.3329980}, + doi = {10.1145/3315573.3329980}, + series = {{ISMM} 2019}, + shorttitle = {snmalloc}, + abstract = {snmalloc is an implementation of malloc aimed at workloads in which objects are typically deallocated by a different thread than the one that had allocated them. We use the term producer/consumer for such workloads. snmalloc uses a novel message passing scheme which returns deallocated objects to the originating allocator in batches without taking any locks. It also uses a novel bump pointer-free list data structure with which just 64-bits of meta-data are sufficient for each 64 {KiB} slab. On such producer/consumer benchmarks our approach performs better than existing allocators. Snmalloc is available at {\textless}a href="https://github.com/Microsoft/snmalloc"{\textgreater}https://github.com/Microsoft/snmalloc{\textless}/a{\textgreater}.}, + pages = {122--135}, + booktitle = {Proceedings of the 2019 {ACM} {SIGPLAN} International Symposium on Memory Management}, + publisher = {Association for Computing Machinery}, + author = {Liétar, Paul and Butler, Theodore and Clebsch, Sylvan and Drossopoulou, Sophia and Franco, Juliana and Parkinson, Matthew J. and Shamis, Alex and Wintersteiger, Christoph M. and Chisnall, David}, + urldate = {2024-06-23}, + date = {2019-06-23}, + keywords = {Memory allocation, message passing}, +} + +@online{cheribsd, + 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}, +} + +@TechReport{BenchmarkABI, + author = {Watson, Robert N. M. and Clarke, Jessica and Sewell, Peter + and Woodruff, Jonathan and Moore, Simon W. and Barnes, + Graeme and Grisenthwaite, Richard and Stacer, Kathryn and + Baranga, Silviu and Richardson, Alexander}, + title = {{Early performance results from the prototype Morello + microarchitecture}}, + institution = {University of Cambridge, Computer Laboratory}, + address = {15 JJ Thomson Avenue, Cambridge CB3 0FD, United Kingdom, + phone +44 1223 763500}, + month = {September}, + year = {2023}, + 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}, +} + +@online{Benchmark, + title = {{CHERI}-Allocator/benchmarks/benchmarks/{StressTestMalloc}/glibc-bench.c at main · Akilan1999/{CHERI}-Allocator}, + url = {https://github.com/Akilan1999/CHERI-Allocator/blob/main/benchmarks/benchmarks/StressTestMalloc/glibc-bench.c}, + urldate = {2025-01-15}, + file = {CHERI-Allocator/benchmarks/benchmarks/StressTestMalloc/glibc-bench.c at main · Akilan1999/CHERI-Allocator:/Users/akilan/Zotero/storage/2X8ZJLND/glibc-bench.html:text/html}, +} + +@online{Morello, + title = {Department of Computer Science and Technology – {CHERI}: The Arm Morello Board}, + url = {https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/cheri-morello.html}, + urldate = {2025-01-16}, + file = {Department of Computer Science and Technology – CHERI\: The Arm Morello Board:/Users/akilan/Zotero/storage/GCMNX8LY/cheri-morello.html:text/html}, +} + +@online{PerformanceCounter, + title = {Arm Architecture Reference Manual for A-profile architecture}, + url = {https://developer.arm.com/documentation/ddi0487/latest}, + urldate = {2025-01-15}, + file = {Arm Architecture Reference Manual for A-profile architecture:/Users/akilan/Zotero/storage/BVZSP7HA/latest.html:text/html}, +} + + diff --git a/docs/EuroSys/Paper/papernotes.pdf b/docs/EuroSys/Paper/papernotes.pdf new file mode 100644 index 0000000..4422e7e Binary files /dev/null and b/docs/EuroSys/Paper/papernotes.pdf differ diff --git a/docs/EuroSys/Paper/references.bib b/docs/EuroSys/Paper/references.bib new file mode 100644 index 0000000..b03d8ac --- /dev/null +++ b/docs/EuroSys/Paper/references.bib @@ -0,0 +1,469 @@ +@article{Shadow_superpages, +title = {Aggressive superpage support with the shadow memory and the partial-subblock TLB}, +journal = {Microprocessors and Microsystems}, +volume = {25}, +number = {7}, +pages = {329-342}, +year = {2001}, +issn = {0141-9331}, +doi = {https://doi.org/10.1016/S0141-9331(01)00125-9}, +url = {https://www.sciencedirect.com/science/article/pii/S0141933101001259}, +author = {Cheol Ho Park and Daeyeon Park}, +keywords = {Superpage, Shadow memory, Subblock TLB, Translation lookaside buffer}, +abstract = {While superpages are an efficient solution to increase TLB reach, strong requirements for using superpages hinder the actual utilization. Two previous solutions, the partial-subblock TLB and the shadow memory were proposed to release the requirements. The partial-subblock TLB releases only a small portion of the requirements. The shadow memory releases most of the requirements but introduces other serious problems. We propose a hybrid scheme which integrates both the shadow memory and the partial-subblock TLB, thereby enjoying the benefits inherited from both sides. The hybrid scheme has as high a superpage utilization as the shadow memory, and avoids most of the problems in the shadow memory by virtue of the partial-subblock TLB. The experiment shows that the hybrid scheme outperforms the previous schemes though its hardware cost and overhead are considered.} +} + +@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}, +} + +@article{DirectSegment, +author = {Basu, Arkaprava and Gandhi, Jayneel and Chang, Jichuan and Hill, Mark D. and Swift, Michael M.}, +title = {Efficient virtual memory for big memory servers}, +year = {2013}, +issue_date = {June 2013}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +volume = {41}, +number = {3}, +issn = {0163-5964}, +url = {https://doi.org/10.1145/2508148.2485943}, +doi = {10.1145/2508148.2485943}, +abstract = {Our analysis shows that many "big-memory" server workloads, such as databases, in-memory caches, and graph analytics, pay a high cost for page-based virtual memory. They consume as much as 10\% of execution cycles on TLB misses, even using large pages. On the other hand, we find that these workloads use read-write permission on most pages, are provisioned not to swap, and rarely benefit from the full flexibility of page-based virtual memory.To remove the TLB miss overhead for big-memory workloads, we propose mapping part of a process's linear virtual address space with a direct segment, while page mapping the rest of the virtual address space. Direct segments use minimal hardware---base, limit and offset registers per core---to map contiguous virtual memory regions directly to contiguous physical memory. They eliminate the possibility of TLB misses for key data structures such as database buffer pools and in-memory key-value stores. Memory mapped by a direct segment may be converted back to paging when needed.We prototype direct-segment software support for x86-64 in Linux and emulate direct-segment hardware. For our workloads, direct segments eliminate almost all TLB misses and reduce the execution time wasted on TLB misses to less than 0.5\%.}, +journal = {SIGARCH Comput. Archit. News}, +month = jun, +pages = {237–248}, +numpages = {12}, +keywords = {tanslation lookaside buffer, virtual memory} +} + + +@article{navarro_practical_nodate, + 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/9RBYAPGM/Navarro - Practical, transparent operating system support fo.pdf:application/pdf}, +} + +@inproceedings{panwar_hawkeye_2019, + location = {Providence {RI} {USA}}, + title = {{HawkEye}: Efficient Fine-grained {OS} Support for Huge Pages}, + isbn = {978-1-4503-6240-5}, + url = {https://dl.acm.org/doi/10.1145/3297858.3304064}, + doi = {10.1145/3297858.3304064}, + shorttitle = {{HawkEye}}, + eventtitle = {{ASPLOS} '19: Architectural Support for Programming Languages and Operating Systems}, + pages = {347--360}, + booktitle = {Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems}, + publisher = {{ACM}}, + author = {Panwar, Ashish and Bansal, Sorav and Gopinath, K.}, + urldate = {2024-05-27}, + date = {2019-04-04}, + langid = {english}, + file = {Full Text PDF:/Users/akilan/Zotero/storage/VQLCKYCA/Panwar et al. - 2019 - HawkEye Efficient Fine-grained OS Support for Hug.pdf:application/pdf}, +} + +@inproceedings{karakostas_redundant_2015, + location = {Portland Oregon}, + title = {Redundant memory mappings for fast access to large memories}, + isbn = {978-1-4503-3402-0}, + url = {https://dl.acm.org/doi/10.1145/2749469.2749471}, + doi = {10.1145/2749469.2749471}, + abstract = {Page-based virtual memory improves programmer productivity, security, and memory utilization, but incurs performance overheads due to costly page table walks after {TLB} misses. This overhead can reach 50\% for modern workloads that access increasingly vast memory with stagnating {TLB} sizes. To reduce the overhead of virtual memory, this paper proposes Redundant Memory Mappings ({RMM}), which leverage ranges of pages and provides an efficient, alternative representation of many virtual-to-physical mappings. We define a range be a subset of process’s pages that are virtually and physically contiguous. {RMM} translates each range with a single range table entry, enabling a modest number of entries to translate most of the process’s address space. {RMM} operates in parallel with standard paging and uses a software range table and hardware range {TLB} with arbitrarily large reach. We modify the operating system to automatically detect ranges and to increase their likelihood with eager page allocation. {RMM} is thus transparent to applications. We prototype {RMM} software in Linux and emulate the hardware. {RMM} performs substantially better than paging alone and huge pages, and improves a wider variety of workloads than direct segments (one range per program), reducing the overhead of virtual memory to less than 1\% on average.}, + eventtitle = {{ISCA} '15: The 42nd Annual International Symposium on Computer Architecture}, + pages = {66--78}, + booktitle = {Proceedings of the 42nd Annual International Symposium on Computer Architecture}, + publisher = {{ACM}}, + author = {Karakostas, Vasileios and Gandhi, Jayneel and Ayar, Furkan and Cristal, Adrián and Hill, Mark D. and {McKinley}, Kathryn S. and Nemirovsky, Mario and Swift, Michael M. and Ünsal, Osman}, + urldate = {2024-05-27}, + date = {2015-06-13}, + langid = {english}, + file = {Karakostas et al. - 2015 - Redundant memory mappings for fast access to large.pdf:/Users/akilan/Zotero/storage/8JECES24/Karakostas et al. - 2015 - Redundant memory mappings for fast access to large.pdf:application/pdf}, +} + +@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}, +} + +@article{woodruff_cheri_2019, + title = {{CHERI} Concentrate: Practical Compressed Capabilities}, + volume = {68}, + rights = {https://ieeexplore.ieee.org/Xplorehelp/downloads/license-information/{IEEE}.html}, + issn = {0018-9340, 1557-9956, 2326-3814}, + url = {https://ieeexplore.ieee.org/document/8703061/}, + doi = {10.1109/TC.2019.2914037}, + shorttitle = {{CHERI} Concentrate}, + abstract = {We present {CHERI} Concentrate, a new fat-pointer compression scheme applied to {CHERI}, the most developed capability-pointer system at present. Capability fat pointers are a primary candidate to enforce fine-grained and non-bypassable security properties in future computer systems, although increased pointer size can severely affect performance. Thus, several proposals for capability compression have been suggested elsewhere that do not support legacy instruction sets, ignore features critical to the existing software base, and also introduce design inefficiencies to {RISC}-style processor pipelines. {CHERI} Concentrate improves on the state-of-the-art region-encoding efficiency, solves important pipeline problems, and eases semantic restrictions of compressed encoding, allowing it to protect a full legacy software stack. We present the first quantitative analysis of compiled capability code, which we use to guide the design of the encoding format. We analyze and extend logic from the open-source {CHERI} prototype processor design on {FPGA} to demonstrate encoding efficiency, minimize delay of pointer arithmetic, and eliminate additional load-to-use delay. To verify correctness of our proposed high-performance logic, we present a {HOL}4 machine-checked proof of the decode and pointer-modify operations. Finally, we measure a 50\% to 75\% reduction in L2 misses for many compiled C-language benchmarks running under a commodity operating system using compressed 128-bit and 64-bit formats, demonstrating both compatibility with and increased performance over the uncompressed, 256-bit format.}, + pages = {1455--1469}, + number = {10}, + journaltitle = {{IEEE} Transactions on Computers}, + shortjournal = {{IEEE} Trans. Comput.}, + author = {Woodruff, Jonathan and Joannou, Alexandre and Xia, Hongyan and Fox, Anthony and Norton, Robert M. and Chisnall, David and Davis, Brooks and Gudka, Khilan and Filardo, Nathaniel W. and Markettos, A. Theodore and Roe, Michael and Neumann, Peter G. and Watson, Robert N. M. and Moore, Simon W.}, + urldate = {2024-05-27}, + date = {2019-10-01}, + langid = {english}, + file = {Woodruff et al. - 2019 - CHERI Concentrate Practical Compressed Capabiliti.pdf:/Users/akilan/Zotero/storage/3SZUIWQ5/Woodruff et al. - 2019 - CHERI Concentrate Practical Compressed Capabiliti.pdf:application/pdf}, +} + +@online{noauthor_capability-based_nodate, + title = {Capability-Based Computer Systems}, + url = {https://homes.cs.washington.edu/~levy/capabook/}, + urldate = {2024-06-07}, + file = {Capability-Based Computer Systems:/Users/akilan/Zotero/storage/IAAG6ZF3/capabook.html:text/html}, +} + +@article{woodruff_cheri_2014, + title = {The {CHERI} capability model: revisiting {RISC} in an age of risk}, + volume = {42}, + issn = {0163-5964}, + url = {https://doi.org/10.1145/2678373.2665740}, + doi = {10.1145/2678373.2665740}, + shorttitle = {The {CHERI} capability model}, + abstract = {Motivated by contemporary security challenges, we reevaluate and refine capability-based addressing for the {RISC} era. We present {CHERI}, a hybrid capability model that extends the 64-bit {MIPS} {ISA} with byte-granularity memory protection. We demonstrate that {CHERI} enables language memory model enforcement and fault isolation in hardware rather than software, and that the {CHERI} mechanisms are easily adopted by existing programs for efficient in-program memory safety. In contrast to past capability models, {CHERI} complements, rather than replaces, the ubiquitous page-based protection mechanism, providing a migration path towards deconflating data-structure protection and {OS} memory management. Furthermore, {CHERI} adheres to a strict {RISC} philosophy: it maintains a load-store architecture and requires only singlecycle instructions, and supplies protection primitives to the compiler, language runtime, and operating system. We demonstrate a mature {FPGA} implementation that runs the {FreeBSD} operating system with a full range of software and an open-source application suite compiled with an extended {LLVM} to use {CHERI} memory protection. A limit study compares published memory safety mechanisms in terms of instruction count and memory overheads. The study illustrates that {CHERI} is performance-competitive even while providing assurance and greater flexibility with simpler hardware}, + pages = {457--468}, + number = {3}, + journaltitle = {{ACM} {SIGARCH} Computer Architecture News}, + shortjournal = {{SIGARCH} Comput. Archit. News}, + author = {Woodruff, Jonathan and Watson, Robert N.M. and Chisnall, David and Moore, Simon W. and Anderson, Jonathan and Davis, Brooks and Laurie, Ben and Neumann, Peter G. and Norton, Robert and Roe, Michael}, + urldate = {2024-06-07}, + date = {2014-06-14}, +} + +@article{miller_towards_nodate, + title = {Towards a Unified Approach to Access Control and Concurrency Control}, + author = {Miller, Mark Samuel}, + langid = {english}, + file = {Miller - Towards a Unified Approach to Access Control and Co.pdf:/Users/akilan/Zotero/storage/7METVAKG/Miller - Towards a Unified Approach to Access Control and Co.pdf:application/pdf}, +} + +@inproceedings{curtsinger_coz_2015, + title = {Coz: Finding Code that Counts with Causal Profiling}, + url = {http://arxiv.org/abs/1608.03676}, + doi = {10.1145/2815400.2815409}, + shorttitle = {Coz}, + abstract = {Improving performance is a central concern for software developers. To locate optimization opportunities, developers rely on software profilers. However, these profilers only report where programs spent their time: optimizing that code may have no impact on performance. Past profilers thus both waste developer time and make it difficult for them to uncover significant optimization opportunities.}, + pages = {184--197}, + booktitle = {Proceedings of the 25th Symposium on Operating Systems Principles}, + author = {Curtsinger, Charlie and Berger, Emery D.}, + urldate = {2024-06-07}, + date = {2015-10-04}, + langid = {english}, + eprinttype = {arxiv}, + eprint = {1608.03676 [cs]}, + keywords = {C.4, Computer Science - Performance, D.4.8}, + 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}, + } + +@inproceedings{zhu_research_2018, + location = {Taipei, Taiwan}, + title = {Research and Implementation of High Performance Traffic Processing Based on Intel {DPDK}}, + isbn = {978-1-5386-9403-9}, + url = {https://ieeexplore.ieee.org/document/8701793/}, + doi = {10.1109/PAAP.2018.00018}, + eventtitle = {2018 9th International Symposium on Parallel Architectures, Algorithms and Programming ({PAAP})}, + pages = {62--68}, + booktitle = {2018 9th International Symposium on Parallel Architectures, Algorithms and Programming ({PAAP})}, + publisher = {{IEEE}}, + author = {Zhu, Wenjun and Li, Peng and Luo, Baozhou and Xu, He and Zhang, Yujie}, + urldate = {2024-06-07}, + date = {2018-12}, +} + +@article{bi_dpdk-based_2016, + title = {{DPDK}-based Improvement of Packet Forwarding}, + volume = {7}, + rights = {© Owned by the authors, published by {EDP} Sciences, 2016}, + issn = {2271-2097}, + url = {https://www.itm-conferences.org/articles/itmconf/abs/2016/02/itmconf_ita2016_01009/itmconf_ita2016_01009.html}, + doi = {10.1051/itmconf/20160701009}, + abstract = {Reel-time processing of packets occupies a significant position in the field of computer network security. With theexplosive growth of the backbone link rate,which is consistent with Gilder's law, many bottlenecks of server performance leave the real-time data stream unprocessed.Thus, we proposedto take use of {DPDK}(Data Plan Development Kit) framework to achieve an intelligent {NIC} packet forwarding system. During this research, we deeply analysis the forwarding process of packet in {DPDK} and improve its {DMA} mode.According to the results of experiment, the system greatly enhanced the performance of packet forwarding,and the throughput of forwarding 64-byet or random-length packets by 20Gbit {NIC} reaches13.3Gbps and 18.7Gbps(dual ports forwarding).}, + pages = {01009}, + journaltitle = {{ITM} Web of Conferences}, + shortjournal = {{ITM} Web Conf.}, + author = {Bi, Hao and Wang, Zhao-Hun}, + urldate = {2024-06-07}, + date = {2016}, + langid = {english}, + note = {Publisher: {EDP} Sciences}, + file = {Full Text PDF:/Users/akilan/Zotero/storage/LEVMJ983/Bi and Wang - 2016 - DPDK-based Improvement of Packet Forwarding.pdf:application/pdf}, +} + +@article{esswood_cherios_nodate, + title = {{CheriOS}: designing an untrusted single-address-space capability operating system utilising capability hardware and a minimal hypervisor}, + author = {Esswood, Lawrence G}, + langid = {english}, + file = {Esswood - CheriOS designing an untrusted single-address-spa.pdf:/Users/akilan/Zotero/storage/YGIBFTD5/Esswood - CheriOS designing an untrusted single-address-spa.pdf:application/pdf}, +} + +@book{wilkes_cambridge_1979, + location = {New York}, + title = {The Cambridge {CAP} computer and its operating system}, + isbn = {978-0-444-00357-7 978-0-444-00358-4}, + series = {The computer science library operating and programming systems series}, + pagetotal = {165}, + number = {6}, + publisher = {North Holland}, + author = {Wilkes, Maurice V. and Needham, Roger M.}, + date = {1979}, + langid = {english}, + file = {Wilkes and Needham - 1979 - The Cambridge CAP computer and its operating syste.pdf:/Users/akilan/Zotero/storage/VIQTWZS3/Wilkes and Needham - 1979 - The Cambridge CAP computer and its operating syste.pdf:application/pdf}, +} + +@article{fillo_mmachine_nodate, + title = {The M–Machine Multicomputer}, + author = {Fillo, Marco and Keckler, Stephen W and Dally, William J and Carter, Nicholas P and Chang, Andrew and Gurevich, Yevgeny and Lee, Whay S}, + langid = {english}, + file = {Fillo et al. - The M–Machine Multicomputer.pdf:/Users/akilan/Zotero/storage/LD95UQTM/Fillo et al. - The M–Machine Multicomputer.pdf:application/pdf}, +} + +@inproceedings{kwon_low-fat_2013, + location = {New York, {NY}, {USA}}, + title = {Low-fat pointers: compact encoding and efficient gate-level implementation of fat pointers for spatial safety and capability-based security}, + isbn = {978-1-4503-2477-9}, + url = {https://dl.acm.org/doi/10.1145/2508859.2516713}, + doi = {10.1145/2508859.2516713}, + series = {{CCS} '13}, + shorttitle = {Low-fat pointers}, + abstract = {Referencing outside the bounds of an array or buffer is a common source of bugs and security vulnerabilities in today's software. We can enforce spatial safety and eliminate these violations by inseparably associating bounds with every pointer (fat pointer) and checking these bounds on every memory access. By further adding hardware-managed tags to the pointer, we make them unforgeable. This, in turn, allows the pointers to be used as capabilities to facilitate fine-grained access control and fast security domain crossing. Dedicated checking hardware runs in parallel with the processor's normal datapath so that the checks do not slow down processor operation (0\% runtime overhead). To achieve the safety of fat pointers without increasing program state, we compactly encode approximate base and bound pointers along with exact address pointers for a 46b address space into one 64-bit word with a worst-case memory overhead of 3\%. We develop gate-level implementations of the logic for updating and validating these compact fat pointers and show that the hardware requirements are low and the critical paths for common operations are smaller than processor {ALU} operations. Specifically, we show that the fat-pointer check and update operations can run in a 4 ns clock cycle on a Virtex 6 (40nm) implementation while only using 1100 6-{LUTs} or about the area of a double-precision, floating-point adder.}, + pages = {721--732}, + booktitle = {Proceedings of the 2013 {ACM} {SIGSAC} conference on Computer \& communications security}, + publisher = {Association for Computing Machinery}, + author = {Kwon, Albert and Dhawan, Udit and Smith, Jonathan M. and Knight, Thomas F. and {DeHon}, Andre}, + urldate = {2024-06-18}, + date = {2013-11-04}, + keywords = {capabilities, fat pointer, memory safety, processor, security, spatial confinement}, + file = {Full Text PDF:/Users/akilan/Zotero/storage/CVVZYZS4/Kwon et al. - 2013 - Low-fat pointers compact encoding and efficient g.pdf:application/pdf}, +} + +@article{wulf_hydra_1974, + title = {{HYDRA}: the kernel of a multiprocessor operating system}, + volume = {17}, + issn = {0001-0782, 1557-7317}, + url = {https://dl.acm.org/doi/10.1145/355616.364017}, + doi = {10.1145/355616.364017}, + shorttitle = {{HYDRA}}, + abstract = {This paper describes the design philosophy of {HYDRA}—the kernel of an operating system for C.mmp, the Carnegie-Mellon Multi-Mini-Processor. This philosophy is realized through the introduction of a generalized notion of “resource,” both physical and virtual, called an “object.” Mechanisms are presented for dealing with objects, including the creation of new types, specification of new operations applicable to a given type, sharing, and protection of any reference to a given object against improper application of any of the operations defined with respect to that type of object. The mechanisms provide a coherent basis for extension of the system in two directions: the introduction of new facilities, and the creation of highly secure systems.}, + pages = {337--345}, + number = {6}, + journaltitle = {Communications of the {ACM}}, + shortjournal = {Commun. {ACM}}, + author = {Wulf, W. and Cohen, E. and Corwin, W. and Jones, A. and Levin, R. and Pierson, C. and Pollack, F.}, + urldate = {2024-06-18}, + date = {1974-06}, + langid = {english}, + file = {Full Text:/Users/akilan/Zotero/storage/EIRBNTVF/Wulf et al. - 1974 - HYDRA the kernel of a multiprocessor operating sy.pdf:application/pdf}, +} + +@article{hardy_keykos_1985, + title = {{KeyKOS} architecture}, + volume = {19}, + issn = {0163-5980}, + url = {https://dl.acm.org/doi/10.1145/858336.858337}, + doi = {10.1145/858336.858337}, + pages = {8--25}, + number = {4}, + journaltitle = {{ACM} {SIGOPS} Operating Systems Review}, + shortjournal = {{SIGOPS} Oper. Syst. Rev.}, + author = {Hardy, Norman}, + urldate = {2024-06-18}, + date = {1985-10-01}, + file = {Full Text PDF:/Users/akilan/Zotero/storage/QSYKM6QN/Hardy - 1985 - KeyKOS architecture.pdf:application/pdf}, +} + +@article{rashid_mach_nodate, + title = {Mach: A System Software Kernel}, + abstract = {The Mach operating system can be used as a system software kernel which can support a variety of operating system environments. Key elements of the Mach design which allow it to efficiently support system software include integrated virtual memory management and interprocess communication, multiple threads of control within one address space, support for transparent system trap callout and an object programming facility integrated with the Mach {IPC} mechanisms. Mach is currently available both from {CMU} and commercially on a wide range of uniprocessor and multiprocessor hardware.}, + author = {Rashid, Richard and Julin, Daniel and Orr, Douglas and Sanzi, Richard and Baron, Robert and Forin, Alessandro and Golub, David and Jones, Michael}, + langid = {english}, + file = {Rashid et al. - Mach A System Software Kernel.pdf:/Users/akilan/Zotero/storage/UHLILYH9/Rashid et al. - Mach A System Software Kernel.pdf:application/pdf}, +} + +@inproceedings{baumann_multikernel_2009, + location = {Big Sky Montana {USA}}, + title = {The multikernel: a new {OS} architecture for scalable multicore systems}, + isbn = {978-1-60558-752-3}, + url = {https://dl.acm.org/doi/10.1145/1629575.1629579}, + doi = {10.1145/1629575.1629579}, + shorttitle = {The multikernel}, + abstract = {Commodity computer systems contain more and more processor cores and exhibit increasingly diverse architectural tradeoffs, including memory hierarchies, interconnects, instruction sets and variants, and {IO} configurations. Previous high-performance computing systems have scaled in specific cases, but the dynamic nature of modern client and server workloads, coupled with the impossibility of statically optimizing an {OS} for all workloads and hardware variants pose serious challenges for operating system structures.}, + eventtitle = {{SOSP}09: {ACM} {SIGOPS} 22nd Symposium on Operating Systems Principles}, + pages = {29--44}, + booktitle = {Proceedings of the {ACM} {SIGOPS} 22nd symposium on Operating systems principles}, + publisher = {{ACM}}, + author = {Baumann, Andrew and Barham, Paul and Dagand, Pierre-Evariste and Harris, Tim and Isaacs, Rebecca and Peter, Simon and Roscoe, Timothy and Schüpbach, Adrian and Singhania, Akhilesh}, + urldate = {2024-06-18}, + date = {2009-10-11}, + langid = {english}, + file = {Baumann et al. - 2009 - The multikernel a new OS architecture for scalabl.pdf:/Users/akilan/Zotero/storage/4BVCRZN6/Baumann et al. - 2009 - The multikernel a new OS architecture for scalabl.pdf:application/pdf}, +} + +@article{watson_capsicum_nodate, + title = {Capsicum: practical capabilities for {UNIX}}, + abstract = {Capsicum is a lightweight operating system capability and sandbox framework planned for inclusion in {FreeBSD} 9. Capsicum extends, rather than replaces, {UNIX} {APIs}, providing new kernel primitives (sandboxed capability mode and capabilities) and a userspace sandbox {API}. These tools support compartmentalisation of monolithic {UNIX} applications into logical applications, an increasingly common goal supported poorly by discretionary and mandatory access control. We demonstrate our approach by adapting core {FreeBSD} utilities and Google’s Chromium web browser to use Capsicum primitives, and compare the complexity and robustness of Capsicum with other sandboxing techniques.}, + author = {Watson, Robert N M and Anderson, Jonathan and Kennaway, Kris and Laurie, Ben}, + langid = {english}, + file = {Watson et al. - Capsicum practical capabilities for UNIX.pdf:/Users/akilan/Zotero/storage/IAFXHJ8H/Watson et al. - Capsicum practical capabilities for UNIX.pdf:application/pdf}, +} + +@online{noauthor_department_nodate, + title = {Department of Computer Science and Technology: {CheriBSD}}, + url = {https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/cheribsd.html}, + urldate = {2024-06-18}, + file = {Department of Computer Science and Technology\: CheriBSD:/Users/akilan/Zotero/storage/3XQJWCXD/cheribsd.html:text/html}, +} + +@online{noauthor_msrc-security-researchpapers2020security_nodate, + title = {{MSRC}-Security-Research/papers/2020/Security analysis of {CHERI} {ISA}.pdf at master · microsoft/{MSRC}-Security-Research}, + url = {https://github.com/microsoft/MSRC-Security-Research/blob/master/papers/2020/Security%20analysis%20of%20CHERI%20ISA.pdf}, + abstract = {Security Research from the Microsoft Security Response Center ({MSRC}) - microsoft/{MSRC}-Security-Research}, + titleaddon = {{GitHub}}, + urldate = {2024-06-18}, + langid = {english}, + file = {Snapshot:/Users/akilan/Zotero/storage/ENF2KYRT/Security analysis of CHERI ISA.html:text/html}, +} + +@inproceedings{zaliva_formal_2024, + location = {La Jolla {CA} {USA}}, + title = {Formal Mechanised Semantics of {CHERI} C: Capabilities, Undefined Behaviour, and Provenance}, + isbn = {9798400703720}, + url = {https://dl.acm.org/doi/10.1145/3617232.3624859}, + doi = {10.1145/3617232.3624859}, + shorttitle = {Formal Mechanised Semantics of {CHERI} C}, + abstract = {Memory safety issues are a persistent source of security vulnerabilities, with conventional architectures and the C codebase chronically prone to exploitable errors. The {CHERI} research project has shown how one can provide radically improved security for that existing codebase with minimal modification, using unforgeable hardware capabilities in place of machine-word pointers in {CHERI} dialects of C, implemented as adaptions of Clang/{LLVM} and {GCC}. {CHERI} was first prototyped as extensions of {MIPS} and {RISC}-V; it is currently being evaluated by Arm and others with the Arm Morello experimental architecture, processor, and platform, to explore its potential for mass-market adoption, and by Microsoft in their {CHERIoT} design for embedded cores.}, + eventtitle = {{ASPLOS} '24: 29th {ACM} International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1}, + pages = {181--196}, + booktitle = {Proceedings of the 29th {ACM} International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1}, + publisher = {{ACM}}, + author = {Zaliva, Vadim and Memarian, Kayvan and Almeida, Ricardo and Clarke, Jessica and Davis, Brooks and Richardson, Alexander and Chisnall, David and Campbell, Brian and Stark, Ian and Watson, Robert N. M. and Sewell, Peter}, + urldate = {2024-06-18}, + date = {2024-04-27}, + langid = {english}, + file = {Zaliva et al. - 2024 - Formal Mechanised Semantics of CHERI C Capabiliti.pdf:/Users/akilan/Zotero/storage/8Y2CRHBS/Zaliva et al. - 2024 - Formal Mechanised Semantics of CHERI C Capabiliti.pdf:application/pdf}, +} + +@article{watson_cheri_nodate, + title = {{CHERI} C/C++ Programming Guide}, + abstract = {This document is a brief introduction to the {CHERI} C/C++ programming languages. We explain the principles underlying these language variants, and their grounding in {CHERI}’s multiple architectural instantiations: {CHERI}-{MIPS}, {CHERI}-{RISC}-V, and Arm’s Morello. We describe the most commonly encountered differences between these dialects and C/C++ on conventional architectures, and where existing software may require minor changes. We document new compiler warnings and errors that may be experienced compiling code with the {CHERI} Clang/{LLVM} compiler, and suggest how they may be addressed through typically minor source-code changes. We explain how modest language extensions allow selected software, such as memory allocators, to further refine permissions and bounds on pointers. This guidance is based on our experience adapting the {FreeBSD} operating-system userspace, and applications such as {PostgreSQL} and {WebKit}, to run in a {CHERI} C/C++ capability-based programming environment. We conclude by recommending further reading.}, + author = {Watson, Robert N M and Richardson, Alexander and Davis, Brooks and Baldwin, John and Chisnall, David and Clarke, Jessica and Filardo, Nathaniel and Moore, Simon W and Napierala, Edward and Sewell, Peter and Neumann, Peter G}, + langid = {english}, + file = {Watson et al. - CHERI CC++ Programming Guide.pdf:/Users/akilan/Zotero/storage/WHGQXE8P/Watson et al. - CHERI CC++ Programming Guide.pdf:application/pdf}, +} + +@article{esswood_cherios_nodate-1, + title = {{CheriOS}: designing an untrusted single-address-space capability operating system utilising capability hardware and a minimal hypervisor}, + author = {Esswood, Lawrence G}, + langid = {english}, + file = {Esswood - CheriOS designing an untrusted single-address-spa.pdf:/Users/akilan/Zotero/storage/3IVKGYZ5/Esswood - CheriOS designing an untrusted single-address-spa.pdf:application/pdf}, +} + +@online{noauthor_architecture_nodate, + title = {The Architecture  of the Burroughs B-5000}, + url = {https://www.smecc.org/The%20Architecture%20%20of%20the%20Burroughs%20B-5000.htm}, + urldate = {2024-06-18}, + file = {The Architecture  of the Burroughs B-5000:/Users/akilan/Zotero/storage/ELNL8VBQ/The Architecture of the Burroughs B-5000.html:text/html}, +} + +@article{dennis_programming_1966, + title = {Programming semantics for multiprogrammed computations}, + volume = {9}, + issn = {0001-0782, 1557-7317}, + url = {https://dl.acm.org/doi/10.1145/365230.365252}, + doi = {10.1145/365230.365252}, + abstract = {The semantics are defined for a number of meta-instructions which perform operations essential to the writing of programs in multiprogrammed computer systems. These meta-instructions relate to parallel processing, protecting of separate computations, program debugging, and the sharing among users of memory segments and other computing objects, the names of which are hierarchically structured. The language sophistication contemplated is midway between an assembly language and an advanced algebraic language.}, + pages = {143--155}, + number = {3}, + journaltitle = {Communications of the {ACM}}, + shortjournal = {Commun. {ACM}}, + author = {Dennis, Jack B. and Van Horn, Earl C.}, + urldate = {2024-06-18}, + date = {1966-03}, + langid = {english}, + file = {Full Text:/Users/akilan/Zotero/storage/6MLX2U8V/Dennis and Van Horn - 1966 - Programming semantics for multiprogrammed computat.pdf:application/pdf}, +} + +@article{watson_capability_nodate, + title = {Capability Hardware Enhanced {RISC} Instructions: {CHERI} Instruction-Set Architecture (Version 8)}, + abstract = {This technical report describes {CHERI} {ISAv}8, the eighth version of the {CHERI} architecture being developed by {SRI} International and the University of Cambridge. This design captures ten years of research, development, experimentation, refinement, formal analysis, and validation through hardware and software implementation.}, + author = {Watson, Robert N M and Neumann, Peter G and Woodruff, Jonathan and Roe, Michael and Almatary, Hesham and Anderson, Jonathan and Baldwin, John and Barnes, Graeme and Chisnall, David and Clarke, Jessica and Davis, Brooks and Eisen, Lee and Filardo, Nathaniel Wesley and Grisenthwaite, Richard and Joannou, Alexandre and Laurie, Ben and Markettos, A Theodore and Moore, Simon W and Murdoch, Steven J and Nienhuis, Kyndylan and Norton, Robert and Richardson, Alexander and Rugg, Peter and Sewell, Peter and Son, Stacey and Xia, Hongyan}, + langid = {english}, + file = {Watson et al. - Capability Hardware Enhanced RISC Instructions CH.pdf:/Users/akilan/Zotero/storage/R9T374YS/Watson et al. - Capability Hardware Enhanced RISC Instructions CH.pdf:application/pdf}, +} + +@online{noauthor_-it-yourself_nodate, + title = {Do-It-Yourself Virtual Memory Translation {\textbar} {ACM} {SIGARCH} Computer Architecture News}, + url = {https://dl.acm.org/doi/10.1145/3140659.3080209}, + urldate = {2024-06-18}, +} + +@online{noauthor_osdi_nodate, + title = {{OSDI} Symposia {\textbar} {USENIX}}, + url = {https://www.usenix.org/conferences/byname/179}, + urldate = {2024-06-19}, + file = {OSDI Symposia | USENIX:/Users/akilan/Zotero/storage/VI7YCLJV/179.html:text/html}, +} + +@article{mittal_survey_2017, + title = {A survey of techniques for architecting {TLBs}}, + volume = {29}, + rights = {Copyright © 2016 John Wiley \& Sons, Ltd.}, + issn = {1532-0634}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/cpe.4061}, + doi = {10.1002/cpe.4061}, + abstract = {Translation lookaside buffer ({TLB}) caches virtual to physical address translation information and is used in systems ranging from embedded devices to high-end servers. Because {TLB} is accessed very frequently and a {TLB} miss is extremely costly, prudent management of {TLB} is important for improving performance and energy efficiency of processors. In this paper, we present a survey of techniques for architecting and managing {TLBs}. We characterize the techniques across several dimensions to highlight their similarities and distinctions. We believe that this paper will be useful for chip designers, computer architects, and system engineers.}, + pages = {e4061}, + number = {10}, + journaltitle = {Concurrency and Computation: Practice and Experience}, + author = {Mittal, Sparsh}, + urldate = {2024-06-24}, + date = {2017}, + langid = {english}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1002/cpe.4061}, + keywords = {classification, power management, prefetching, Review, superpage, {TLB}, virtual cache, workload characterization}, + file = {Snapshot:/Users/akilan/Zotero/storage/JJ9H6B2H/cpe.html:text/html}, +} + +@inproceedings{lietar_snmalloc_2019, + location = {New York, {NY}, {USA}}, + title = {snmalloc: a message passing allocator}, + isbn = {978-1-4503-6722-6}, + url = {https://doi.org/10.1145/3315573.3329980}, + doi = {10.1145/3315573.3329980}, + series = {{ISMM} 2019}, + shorttitle = {snmalloc}, + abstract = {snmalloc is an implementation of malloc aimed at workloads in which objects are typically deallocated by a different thread than the one that had allocated them. We use the term producer/consumer for such workloads. snmalloc uses a novel message passing scheme which returns deallocated objects to the originating allocator in batches without taking any locks. It also uses a novel bump pointer-free list data structure with which just 64-bits of meta-data are sufficient for each 64 {KiB} slab. On such producer/consumer benchmarks our approach performs better than existing allocators. Snmalloc is available at {\textless}a href="https://github.com/Microsoft/snmalloc"{\textgreater}https://github.com/Microsoft/snmalloc{\textless}/a{\textgreater}.}, + pages = {122--135}, + booktitle = {Proceedings of the 2019 {ACM} {SIGPLAN} International Symposium on Memory Management}, + publisher = {Association for Computing Machinery}, + author = {Liétar, Paul and Butler, Theodore and Clebsch, Sylvan and Drossopoulou, Sophia and Franco, Juliana and Parkinson, Matthew J. and Shamis, Alex and Wintersteiger, Christoph M. and Chisnall, David}, + urldate = {2024-06-23}, + date = {2019-06-23}, + keywords = {Memory allocation, message passing}, +} diff --git a/docs/EuroSys/Paper/sampleteaser.pdf b/docs/EuroSys/Paper/sampleteaser.pdf new file mode 100644 index 0000000..374f676 Binary files /dev/null and b/docs/EuroSys/Paper/sampleteaser.pdf differ diff --git a/docs/EuroSys/Paper/test.fdb_latexmk b/docs/EuroSys/Paper/test.fdb_latexmk new file mode 100644 index 0000000..49d756a --- /dev/null +++ b/docs/EuroSys/Paper/test.fdb_latexmk @@ -0,0 +1,36 @@ +# Fdb version 3 +["pdflatex"] 1726549192 "test.tex" "test.pdf" "test" 1726549192 + "/usr/local/texlive/2022/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm" 1246382020 1004 54797486969f23fa377b128694d548df "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmbx10.tfm" 1136768653 1328 c834bbb027764024c09d3d2bf908b5f0 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmcsc10.tfm" 1136768653 1300 63a6111ee6274895728663cf4b4e7e81 "" + "/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr8.tfm" 1136768653 1292 21c1c5bfeaebccffdb478fd231a0997d "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb" 1248133631 34811 78b52f49e893bcba91bd7581cdc144c0 "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmcsc10.pfb" 1248133631 32001 6aeea3afe875097b1eb0da29acd61e28 "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb" 1248133631 36299 5f9df58c2139e7edcf37c8fca4bd384d "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb" 1248133631 35752 024fb6c41858982481f6968b5fc26508 "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb" 1248133631 32726 0a1aea6fcd6468ee2cf64d891f5c43c8 "" + "/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb" 1248133631 32569 5e5ddc8df908dea60932f3c484a54c0d "" + "/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/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/base/article.cls" 1636758526 20144 8a7de377ae7a11ee924a7499611f5a9d "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty" 1622581934 5157 f308c7c04889e16c588e78aa42599fae "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/base/size10.clo" 1636758526 8448 96f18c76bf608a36ee6fbf021ac1dd32 "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty" 1137110151 6749 16d2656a1984957e674b149555f1ea1d "" + "/usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1644269979 29921 d0acc05a38bd4aa3af2017f0b7c137ce "" + "/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 "" + "test.aux" 1726549192 166 13d10522dc49842efd9c6decbc5daf86 "pdflatex" + "test.tex" 1726549189 1843 18247c68579a0dd2d10b6b65cf5cb5fc "" + (generated) + "test.aux" + "test.log" + "test.pdf" diff --git a/docs/EuroSys/Paper/test.fls b/docs/EuroSys/Paper/test.fls new file mode 100644 index 0000000..4c6dbf4 --- /dev/null +++ b/docs/EuroSys/Paper/test.fls @@ -0,0 +1,167 @@ +PWD /Users/akilan/Documents/Cheri/CHERI-FLEXPOINTER/papers/EuroSys/Paper +INPUT /usr/local/texlive/2022/texmf.cnf +INPUT /usr/local/texlive/2022/texmf-dist/web2c/texmf.cnf +INPUT /usr/local/texlive/2022/texmf-var/web2c/pdftex/pdflatex.fmt +INPUT test.tex +OUTPUT test.log +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT ./test.aux +INPUT test.aux +INPUT test.aux +OUTPUT test.aux +INPUT /usr/local/texlive/2022/texmf-dist/fonts/map/fontname/texfonts.map +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmbx10.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr8.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm +INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmcsc10.tfm +OUTPUT test.pdf +INPUT /usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map +INPUT test.aux +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmcsc10.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb +INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb diff --git a/docs/EuroSys/Paper/test.pdf b/docs/EuroSys/Paper/test.pdf new file mode 100644 index 0000000..e258f6e Binary files /dev/null and b/docs/EuroSys/Paper/test.pdf differ diff --git a/docs/EuroSys/Paper/test.tex b/docs/EuroSys/Paper/test.tex new file mode 100644 index 0000000..cc1474b --- /dev/null +++ b/docs/EuroSys/Paper/test.tex @@ -0,0 +1,54 @@ +\documentclass{article} +\usepackage{amsmath} +\usepackage{algorithm} +\usepackage{algpseudocode} + +\begin{document} + +\begin{algorithm} +\caption{Memory Management with CHERI} +\begin{algorithmic}[1] + +\State \textbf{Define} FILENAME $\gets "/dev/contigmem"$ +\State \textbf{Define} $ptr$ \Comment{Pointer to allocated memory} +\State \textbf{Define} $MallocCounter$ \Comment{Remaining memory size} +\State \textbf{Define} $sizeUsed$ \Comment{Size of used memory} + +\Function{INITAlloc}{} + \State $sz \gets 100000000$ \Comment{Set allocation size} + \State $fd \gets \text{open}(FILENAME, O\_RDWR, 0600)$ + \If{$fd < 0$} + \State \textbf{Handle Error:} \text{exit}(EXIT\_FAILURE) + \EndIf + + \State $offset \gets 0$ \Comment{Offset for seeking} + + \If{$\text{ftruncate}(fd, sz) < 0$} + \State \textbf{Handle Error:} \text{close}(fd), \text{exit}(EXIT\_FAILURE) + \EndIf + + \State $ptr \gets \text{mmap}(NULL, sz, PROT\_READ | PROT\_WRITE, MAP\_SHARED, fd, 0)$ + \If{$ptr = \text{MAP\_FAILED}$} + \State \textbf{Handle Error:} \text{exit}(EXIT\_FAILURE) + \EndIf + + \State $MallocCounter \gets sz$ +\EndFunction + +\Function{malloc}{sz} + \State $sz \gets \text{align\_up}(sz, \text{\_Alignof}(max\_align\_t))$ \Comment{Align the size} + \State $MallocCounter \gets MallocCounter - sz$ + \State $ptrLink \gets ptr[MallocCounter]$ \Comment{Allocate memory at the current position} + \State $ptrLink \gets \text{cheri\_setbounds}(ptrLink, sz)$ \Comment{Set bounds for CHERI} + \State \Return $ptrLink$ \Comment{Return the allocated pointer} +\EndFunction + +\Function{FREECHERI}{ptr} + \State $len \gets \text{cheri\_getlen}(ptr)$ \Comment{Get the length from pointer bounds} + \State \text{munmap}(ptr, len) \Comment{Unmap the memory} +\EndFunction + +\end{algorithmic} +\end{algorithm} + +\end{document}