saving evaluation commit
This commit is contained in:
@@ -28,24 +28,25 @@
|
||||
\citation{woodruff_cheri_2019}
|
||||
\citation{woodruff_cheri_2019}
|
||||
\citation{woodruff_cheri_2019}
|
||||
\citation{TLBBehavoir}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces High overview architecture}}{3}{figure.caption.3}\protected@file@percent }
|
||||
\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
|
||||
\newlabel{fig:HighOverviewArchitecture}{{1}{3}{High overview architecture}{figure.caption.3}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Encoding Ranges as Bounds to the Pointer}{3}{subsection.3.1}\protected@file@percent }
|
||||
\newlabel{sec:RangeMemory}{{3.1}{3}{Encoding Ranges as Bounds to the Pointer}{subsection.3.1}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Range of memory}}{3}{figure.caption.4}\protected@file@percent }
|
||||
\newlabel{fig:RangeOfMemory}{{2}{3}{Range of memory}{figure.caption.4}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}128 bit compressed bounds}{3}{subsection.3.2}\protected@file@percent }
|
||||
\newlabel{sec:128bitCompressedBounds}{{3.2}{3}{128 bit compressed bounds}{subsection.3.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Instrumenting Block-Based Allocators with Physically Contiguous Memory}{3}{subsection.3.3}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {4}Memory allocator design}{3}{section.4}\protected@file@percent }
|
||||
\newlabel{sec:MemoryAllocator}{{4}{3}{Memory allocator design}{section.4}{}}
|
||||
\@writefile{loa}{\contentsline {algorithm}{\numberline {1}{\ignorespaces Malloc implementation}}{3}{algorithm.1}\protected@file@percent }
|
||||
\newlabel{alg:malloc}{{1}{3}{Malloc implementation}{algorithm.1}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces High overview architecture}}{4}{figure.caption.3}\protected@file@percent }
|
||||
\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
|
||||
\newlabel{fig:HighOverviewArchitecture}{{1}{4}{High overview architecture}{figure.caption.3}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Range of memory}}{4}{figure.caption.4}\protected@file@percent }
|
||||
\newlabel{fig:RangeOfMemory}{{2}{4}{Range of memory}{figure.caption.4}{}}
|
||||
\@writefile{loa}{\contentsline {algorithm}{\numberline {2}{\ignorespaces Free implementation}}{4}{algorithm.2}\protected@file@percent }
|
||||
\newlabel{alg:free}{{2}{4}{Free implementation}{algorithm.2}{}}
|
||||
\citation{TLBBehavoir}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Instrumenting Block-Based Allocators with Physically Contiguous Memory}{4}{subsection.3.3}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Fat-pointer Address Translations using huge pages}}{4}{figure.caption.5}\protected@file@percent }
|
||||
\newlabel{fig:HugePages}{{3}{4}{Fat-pointer Address Translations using huge pages}{figure.caption.5}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {4}Memory allocator design}{4}{section.4}\protected@file@percent }
|
||||
\newlabel{sec:MemoryAllocator}{{4}{4}{Memory allocator design}{section.4}{}}
|
||||
\@writefile{loa}{\contentsline {algorithm}{\numberline {1}{\ignorespaces Malloc implementation}}{4}{algorithm.1}\protected@file@percent }
|
||||
\newlabel{alg:malloc}{{1}{4}{Malloc implementation}{algorithm.1}{}}
|
||||
\@writefile{loa}{\contentsline {algorithm}{\numberline {2}{\ignorespaces Free implementation}}{4}{algorithm.2}\protected@file@percent }
|
||||
\newlabel{alg:free}{{2}{4}{Free implementation}{algorithm.2}{}}
|
||||
\citation{jemalloc}
|
||||
\citation{cheribsd}
|
||||
\citation{Morello}
|
||||
@@ -66,11 +67,17 @@
|
||||
\newlabel{tab:org246a883}{{1}{6}{ARM performance counters}{table.caption.6}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Percentage difference between the modified memory allocator against the default system memory allocator}}{7}{figure.caption.7}\protected@file@percent }
|
||||
\newlabel{fig:bargraph}{{4}{7}{Percentage difference between the modified memory allocator against the default system memory allocator}{figure.caption.7}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Kmeans COZ benchmark executed against various cluster sizes}}{7}{figure.caption.8}\protected@file@percent }
|
||||
\newlabel{fig:org8683315}{{5}{7}{Kmeans COZ benchmark executed against various cluster sizes}{figure.caption.8}{}}
|
||||
\bibstyle{unsrt}
|
||||
\bibdata{paperReferences}
|
||||
\bibcite{mittal_survey_2017}{{1}{}{{}}{{}}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Kmeans COZ benchmark executed against various cluster sizes}}{8}{figure.caption.8}\protected@file@percent }
|
||||
\newlabel{fig:org8683315}{{5}{8}{Kmeans COZ benchmark executed against various cluster sizes}{figure.caption.8}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Usability}{8}{subsection.5.4}\protected@file@percent }
|
||||
\newlabel{sec:orgd6ba6f0}{{5.4}{8}{Usability}{subsection.5.4}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6}Future work}{8}{section.6}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Storing Offsets Directly on Pointers}{8}{subsection.6.1}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Hardware Modifications:}{8}{subsection.6.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {7}Conclusion}{8}{section.7}\protected@file@percent }
|
||||
\bibcite{panwar_hawkeye_2019}{{2}{}{{}}{{}}}
|
||||
\bibcite{woodruff_cheri_2014}{{3}{}{{}}{{}}}
|
||||
\bibcite{woodruff_cheri_2019}{{4}{}{{}}{{}}}
|
||||
@@ -79,13 +86,6 @@
|
||||
\bibcite{DirectSegment}{{7}{}{{}}{{}}}
|
||||
\bibcite{karakostas_redundant_2015}{{8}{}{{}}{{}}}
|
||||
\bibcite{chen_flexpointer_2023}{{9}{}{{}}{{}}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Usability}{8}{subsection.5.4}\protected@file@percent }
|
||||
\newlabel{sec:orgd6ba6f0}{{5.4}{8}{Usability}{subsection.5.4}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6}Future work}{8}{section.6}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Storing Offsets Directly on Pointers}{8}{subsection.6.1}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Hardware Modifications:}{8}{subsection.6.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {7}Conclusion}{8}{section.7}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{References}{8}{section*.10}\protected@file@percent }
|
||||
\bibcite{TLBBehavoir}{{10}{}{{}}{{}}}
|
||||
\bibcite{jemalloc}{{11}{}{{}}{{}}}
|
||||
\bibcite{cheribsd}{{12}{}{{}}{{}}}
|
||||
@@ -101,5 +101,6 @@
|
||||
\newlabel{tocindent4}{0pt}
|
||||
\newlabel{tocindent5}{0pt}
|
||||
\providecommand\NAT@force@numbers{}\NAT@force@numbers
|
||||
\@writefile{toc}{\contentsline {section}{References}{9}{section*.10}\protected@file@percent }
|
||||
\newlabel{TotPages}{{9}{9}{}{page.9}{}}
|
||||
\gdef \@abspage@last{9}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Fdb version 4
|
||||
["bibtex paper"] 1744196210.46309 "paper.aux" "paper.bbl" "paper" 1744196212.14709 0
|
||||
["bibtex paper"] 1744298831.47844 "paper.aux" "paper.bbl" "paper" 1744298833.1535 0
|
||||
"./paperReferences.bib" 1744196148.81398 45813 26a8e1c09695a94d7f7d7e673ad229c8 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/bibtex/bst/base/unsrt.bst" 1292289607 18030 1376b4b231b50c66211e47e42eda2875 ""
|
||||
"paper.aux" 1744196211.84376 7634 5db61087f53323c6f78f4959f4ad0f19 "pdflatex"
|
||||
"paper.aux" 1744298832.83574 7731 7f1c9e5198cf4838053a999b8e322f2d "pdflatex"
|
||||
(generated)
|
||||
"paper.bbl"
|
||||
"paper.blg"
|
||||
(rewritten before read)
|
||||
["pdflatex"] 1744196210.63491 "paper.tex" "paper.pdf" "paper" 1744196212.14723 0
|
||||
["pdflatex"] 1744298831.57217 "paper.tex" "paper.pdf" "paper" 1744298833.15366 0
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_25tcsq.enc" 1490131464 2921 8ca0eb0831f9bc5da080d3697cfe67bf ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc" 1490131464 2933 9ad527ce78d7c5fa0a642dead095f172 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_7grukw.enc" 1490131464 2934 a4a9158faed2e9e89c771b4e3b7fc12f ""
|
||||
@@ -215,10 +215,10 @@
|
||||
"diagram/TLBAccess.drawio.png" 1744196148.80543 77522 75367f218335fe386db852966a892e9b ""
|
||||
"diagram/bargraph.png" 1744196148.80607 74263 65509d21744edc6c9ca02b8c67d664fb ""
|
||||
"diagram/kmeans.png" 1744196148.80901 94217 5d14308c169ff296bf499805b9823aa6 ""
|
||||
"paper.aux" 1744196211.84376 7634 5db61087f53323c6f78f4959f4ad0f19 "pdflatex"
|
||||
"paper.bbl" 1744196210.63194 3588 3b324cb71c9931b08d5c6f1eb2446cbc "bibtex paper"
|
||||
"paper.out" 1744196211.84462 3691 57df4bceeaeac4f8a0aa4a6219c57ca6 "pdflatex"
|
||||
"paper.tex" 1744196148.81378 77216 23cffe66a0238576210f1abaaef6f779 ""
|
||||
"paper.aux" 1744298832.83574 7731 7f1c9e5198cf4838053a999b8e322f2d "pdflatex"
|
||||
"paper.bbl" 1744298831.56846 3588 3b324cb71c9931b08d5c6f1eb2446cbc "bibtex paper"
|
||||
"paper.out" 1744298832.83664 3691 57df4bceeaeac4f8a0aa4a6219c57ca6 "pdflatex"
|
||||
"paper.tex" 1744298825.3142 80291 98adb5dd1273e6e6bda4019aa43da406 ""
|
||||
(generated)
|
||||
"paper.aux"
|
||||
"paper.log"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 9 APR 2025 11:56
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 10 APR 2025 16:27
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
@@ -1213,12 +1213,6 @@ LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be
|
||||
LaTeX Font Info: Font shape `U/ntxexa/m/n' will be
|
||||
(Font) scaled to size 9.0pt on input line 351.
|
||||
|
||||
Overfull \hbox (5.26212pt too wide) in paragraph at lines 351--353
|
||||
[]\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 \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
|
||||
@@ -1293,85 +1287,73 @@ Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
File: diagram/HighOverviewArchitecture.drawio.png Graphic file (type png)
|
||||
<use diagram/HighOverviewArchitecture.drawio.png>
|
||||
Package pdftex.def Info: diagram/HighOverviewArchitecture.drawio.png used on i
|
||||
nput line 483.
|
||||
nput line 489.
|
||||
(pdftex.def) Requested size: 303.78008pt x 236.93262pt.
|
||||
|
||||
Class acmart Warning: A possible image without description on input line 487.
|
||||
Class acmart Warning: A possible image without description on input line 493.
|
||||
|
||||
|
||||
LaTeX Warning: `h' float specifier changed to `ht'.
|
||||
|
||||
|
||||
|
||||
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be
|
||||
(Font) scaled to size 9.0pt on input line 502.
|
||||
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be
|
||||
(Font) scaled to size 7.0pt on input line 502.
|
||||
[2.2]
|
||||
<diagram/AllocationOverview24.png, id=146, 723.70375pt x 501.875pt>
|
||||
File: diagram/AllocationOverview24.png Graphic file (type png)
|
||||
<use diagram/AllocationOverview24.png>
|
||||
Package pdftex.def Info: diagram/AllocationOverview24.png used on input line 5
|
||||
19.
|
||||
(pdftex.def) Requested size: 202.51491pt x 140.43979pt.
|
||||
|
||||
|
||||
Class acmart Warning: A possible image without description on input line 522.
|
||||
|
||||
|
||||
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
|
||||
|
||||
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be
|
||||
(Font) scaled to size 9.0pt on input line 487.
|
||||
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be
|
||||
(Font) scaled to size 7.0pt on input line 487.
|
||||
[2.2]
|
||||
|
||||
LaTeX Warning: `h' float specifier changed to `ht'.
|
||||
|
||||
<diagram/AllocationOverview24.png, id=144, 723.70375pt x 501.875pt>
|
||||
File: diagram/AllocationOverview24.png Graphic file (type png)
|
||||
<use diagram/AllocationOverview24.png>
|
||||
Package pdftex.def Info: diagram/AllocationOverview24.png used on input line 5
|
||||
04.
|
||||
(pdftex.def) Requested size: 202.51491pt x 140.43979pt.
|
||||
|
||||
Class acmart Warning: A possible image without description on input line 507.
|
||||
|
||||
|
||||
LaTeX Warning: `h' float specifier changed to `ht'.
|
||||
|
||||
|
||||
Overfull \hbox (1.89948pt too wide) in paragraph at lines 511--514
|
||||
\T1/LinuxLibertineT-TLF/m/n/9 (-20) In this im-ple-men-ta-tion, mem-ory ranges
|
||||
are es-tab-lished us-ing bounds
|
||||
[]
|
||||
|
||||
<diagram/TLBAccess.drawio.png, id=149, 773.89125pt x 945.5325pt>
|
||||
[3.3 <./diagram/HighOverviewArchitecture.drawio.png> <./diagram/AllocationOverv
|
||||
iew24.png>]
|
||||
<diagram/TLBAccess.drawio.png, id=159, 773.89125pt x 945.5325pt>
|
||||
File: diagram/TLBAccess.drawio.png Graphic file (type png)
|
||||
<use diagram/TLBAccess.drawio.png>
|
||||
Package pdftex.def Info: diagram/TLBAccess.drawio.png used on input line 566.
|
||||
Package pdftex.def Info: diagram/TLBAccess.drawio.png used on input line 590.
|
||||
(pdftex.def) Requested size: 202.51491pt x 247.43411pt.
|
||||
|
||||
Class acmart Warning: A possible image without description on input line 569.
|
||||
|
||||
|
||||
LaTeX Warning: `h' float specifier changed to `ht'.
|
||||
|
||||
|
||||
Underfull \vbox (badness 7221) has occurred while \output is active []
|
||||
Class acmart Warning: A possible image without description on input line 593.
|
||||
|
||||
|
||||
|
||||
Package hyperref Info: bookmark level for unknown algorithm defaults to 0 on in
|
||||
put line 614.
|
||||
put line 645.
|
||||
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/sc' will be
|
||||
(Font) scaled to size 9.0pt on input line 617.
|
||||
(Font) scaled to size 9.0pt on input line 648.
|
||||
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
|
||||
(Font) scaled to size 6.6pt on input line 618.
|
||||
(Font) scaled to size 6.6pt on input line 649.
|
||||
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
|
||||
(Font) scaled to size 5.5pt on input line 618.
|
||||
(Font) scaled to size 5.5pt on input line 649.
|
||||
|
||||
|
||||
[3.3{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_ncsllp.e
|
||||
[4.4{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_ncsllp.e
|
||||
nc}{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_oexx6f.en
|
||||
c}]
|
||||
|
||||
|
||||
Overfull \hbox (1.93413pt too wide) in paragraph at lines 658--662
|
||||
c} <./diagram/TLBAccess.drawio.png>]
|
||||
Overfull \hbox (1.93413pt too wide) in paragraph at lines 689--693
|
||||
\T1/LinuxLibertineT-TLF/m/n/9 (-20) the free func-tion elim-i-nates the need fo
|
||||
r ad-di-tional meta-data lookups
|
||||
[]
|
||||
|
||||
|
||||
|
||||
[4.4 <./diagram/HighOverviewArchitecture.drawio.png> <./diagram/AllocationOverv
|
||||
iew24.png> <./diagram/TLBAccess.drawio.png>]
|
||||
|
||||
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/it' will be
|
||||
(Font) scaled to size 9.0pt on input line 800.
|
||||
(Font) scaled to size 9.0pt on input line 831.
|
||||
|
||||
|
||||
[5.5]
|
||||
@@ -1379,48 +1361,53 @@ Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
|
||||
|
||||
<diagram/bargraph.png, id=196, 1156.32pt x 722.7pt>
|
||||
<diagram/bargraph.png, id=201, 1156.32pt x 722.7pt>
|
||||
File: diagram/bargraph.png Graphic file (type png)
|
||||
<use diagram/bargraph.png>
|
||||
Package pdftex.def Info: diagram/bargraph.png used on input line 836.
|
||||
Package pdftex.def Info: diagram/bargraph.png used on input line 867.
|
||||
(pdftex.def) Requested size: 455.6624pt x 284.78517pt.
|
||||
|
||||
Class acmart Warning: A possible image without description on input line 838.
|
||||
Class acmart Warning: A possible image without description on input line 869.
|
||||
|
||||
|
||||
LaTeX Warning: `h' float specifier changed to `ht'.
|
||||
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
|
||||
|
||||
[6.6]
|
||||
<./diagram/kmeans.png, id=205, 1011.78pt x 578.16pt>
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
|
||||
|
||||
<./diagram/kmeans.png, id=211, 1011.78pt x 578.16pt>
|
||||
File: ./diagram/kmeans.png Graphic file (type png)
|
||||
<use ./diagram/kmeans.png>
|
||||
Package pdftex.def Info: ./diagram/kmeans.png used on input line 875.
|
||||
Package pdftex.def Info: ./diagram/kmeans.png used on input line 917.
|
||||
(pdftex.def) Requested size: 265.2637pt x 151.57959pt.
|
||||
|
||||
Overfull \hbox (24.11621pt too wide) in paragraph at lines 875--876
|
||||
Overfull \hbox (24.11621pt too wide) in paragraph at lines 917--918
|
||||
[][]
|
||||
[]
|
||||
|
||||
|
||||
Class acmart Warning: A possible image without description on input line 877.
|
||||
Class acmart Warning: A possible image without description on input line 919.
|
||||
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[7.7 <./diagram/bargraph.png> <./diagram/kmeans.png>]
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
|
||||
[7.7 <./diagram/bargraph.png>]
|
||||
|
||||
(./paper.bbl
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
[8.8]
|
||||
|
||||
|
||||
[8.8 <./diagram/kmeans.png>]
|
||||
Underfull \hbox (badness 2443) in paragraph at lines 90--92
|
||||
[]\T1/LinuxLibertineT-TLF/m/n/7 (+20) CHERI-allocator/benchmarks/benchmarks/Str
|
||||
essTestMalloc/glibc-bench.c at
|
||||
@@ -1440,6 +1427,10 @@ Class acmart Warning: CCS concepts are mandatory for papers over two pages.
|
||||
|
||||
|
||||
|
||||
|
||||
Overfull \vbox (1.28899pt too high) has occurred while \output is active []
|
||||
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-pdfdoc.def
|
||||
File: se-pdfdoc.def 2019/11/29 v1.12 stringenc: PDFDocEncoding
|
||||
)
|
||||
@@ -1455,13 +1446,13 @@ Package rerunfilecheck Info: File `paper.out' has not changed.
|
||||
(rerunfilecheck) Checksum: 57DF4BCEEAEAC4F8A0AA4A6219C57CA6;3691.
|
||||
)
|
||||
Here is how much of TeX's memory you used:
|
||||
23990 strings out of 473190
|
||||
393203 string characters out of 5715801
|
||||
964253 words of memory out of 5000000
|
||||
46170 multiletter control sequences out of 15000+600000
|
||||
768506 words of font info for 442 fonts, out of 8000000 for 9000
|
||||
23994 strings out of 473190
|
||||
393295 string characters out of 5715801
|
||||
968957 words of memory out of 5000000
|
||||
46171 multiletter control sequences out of 15000+600000
|
||||
768771 words of font info for 444 fonts, out of 8000000 for 9000
|
||||
1302 hyphenation exceptions out of 8191
|
||||
90i,16n,131p,1002b,804s stack positions out of 10000i,1000n,20000p,200000b,200000s
|
||||
90i,16n,131p,1002b,772s stack positions out of 10000i,1000n,20000p,200000b,200000s
|
||||
</usr/local/texlive/2025/texmf-dist/fonts/type1/public/newtx/LibertineMathMI.
|
||||
pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinBiolinu
|
||||
mT.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinBiol
|
||||
@@ -1472,10 +1463,10 @@ tine/LinLibertineTB.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/
|
||||
libertine/LinLibertineTI.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/pu
|
||||
blic/newtx/NewTXMI.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/n
|
||||
ewtx/txsys.pfb>
|
||||
Output written on paper.pdf (9 pages, 701842 bytes).
|
||||
Output written on paper.pdf (9 pages, 703057 bytes).
|
||||
PDF statistics:
|
||||
292 PDF objects out of 1000 (max. 8388607)
|
||||
243 compressed objects within 3 object streams
|
||||
298 PDF objects out of 1000 (max. 8388607)
|
||||
249 compressed objects within 3 object streams
|
||||
61 named destinations out of 1000 (max. 500000)
|
||||
114906 words of extra memory for PDF output out of 128383 (max. 10000000)
|
||||
|
||||
|
||||
Binary file not shown.
@@ -498,22 +498,23 @@ free virtual addresses and a TLB walk (L1, L2, L3) to achieve non-contiguous all
|
||||
This typically results in more TLB entries and increased TLB misses increasing the reasoning to have more TLB walks.
|
||||
In contrast, the Fat-pointer Address Translations method employs a custom allocator leveraging
|
||||
physically contiguous memory by using CHERI to encode
|
||||
bounds within the pointers and as show in the figure \ref{fig:HighOverviewArchitecture} there is almost no reliance on walking the TLB.
|
||||
bounds within the pointers and as show in the figure \ref{fig:HighOverviewArchitecture} there is almost no reliance on walking the TLB hierarchy.
|
||||
|
||||
Figure \ref{fig:HighOverviewArchitecture} illustrates
|
||||
the methodology employed to use the CHERI
|
||||
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.
|
||||
% Figure \ref{fig:HighOverviewArchitecture} illustrates
|
||||
% the methodology employed to use the CHERI
|
||||
% 128-bit FAT-pointer scheme for facilitating
|
||||
% block-based memory management on physically
|
||||
% contiguous memory,which is depicted on the
|
||||
% 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.
|
||||
% We explore how using huge pages
|
||||
% with CHERI bounds can reduce the
|
||||
% number of TLB entries required.
|
||||
|
||||
\subsection{Encoding Ranges as Bounds to the Pointer}
|
||||
\label{sec:RangeMemory}
|
||||
\begin{figure}[h]
|
||||
\includegraphics[width=0.4\textwidth]{diagram/AllocationOverview24.png}
|
||||
\caption{Range of memory}
|
||||
@@ -522,9 +523,12 @@ number of TLB entries required.
|
||||
% Integrating range bounds directly into FAT-pointers enables the CHERI 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
|
||||
CHERI 128-bit bounds compression scheme~\cite{woodruff_cheri_2019}.
|
||||
A memory range in FAT has 2 points to track memory in physical contiguous space which
|
||||
is the top and bottom. These 2 points are 2 virtual addresses and the range consists of
|
||||
addresses which lie within this and constitutes as addresses allocated by invoking malloc.
|
||||
In FAT memory ranges are established using
|
||||
bounds encoded within the pointer, adhering to CHERI CC~\cite{woodruff_cheri_2019}
|
||||
as referred in section ~\ref{sec:128bitCompressedBounds}.
|
||||
|
||||
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
|
||||
@@ -551,20 +555,26 @@ By using the CHERI bounds, this method maintains the contiguity of the allocated
|
||||
% within the FAT-Pointer which can be repurposed as ranges in memory allocators with custom allocation
|
||||
% sizes rather than fixed sized TLB entries.
|
||||
|
||||
We use CHERI CC~\cite{woodruff_cheri_2019} (Compressed Capabilities) to track regions of memory in physically contiguous space.
|
||||
We use CHERI CC~\cite{woodruff_cheri_2019} to track regions of memory in physically contiguous space.
|
||||
CHERI CC consists of compressed bounds that represent a 128-bit pointer within a 64-bit virtual address
|
||||
system. Our approach utilizes a single-cycle encoding and decoding mechanism for efficiency. While CHERI
|
||||
CC was originally designed for memory protection, it can also be repurposed for tracking memory regions,
|
||||
eliminating the need for multiple TLB entries for each allocation.
|
||||
system. Our approach uses the work of CHERI CC by using a single cycle t0 decode bounds from the
|
||||
capability register and the bounds which are decoded are repurposed for tracking memory regions.
|
||||
% Our approach utilizes a single-cycle encoding and decoding mechanism for efficiency. While CHERI
|
||||
% CC was originally designed for memory protection, it can also be repurposed for tracking memory regions,
|
||||
% eliminating the need for multiple TLB entries for each allocation.
|
||||
|
||||
One key analysis of CHERI CC highlights that allocators like Jemalloc typically allocate objects under
|
||||
512 bytes. When an object’s bounds cannot be precisely represented, padding is required to ensure
|
||||
memory safety. However, it has been observed that Jemalloc rarely needs more than 6 bits~\cite{woodruff_cheri_2019} to store the
|
||||
exponent values within compressed bounds.
|
||||
Allocators like Jemalloc typically allocate objects under
|
||||
512 bytes~\cite{woodruff_cheri_2019}. When an object’s bounds cannot be precisely represented, padding is required to ensure
|
||||
memory safety. However, it has been observed that Jemalloc rarely needs more than 6 bits to store the
|
||||
exponent values within compressed bounds. This means that the default behavior of allocators such as Jemalloc, would allow precise
|
||||
representation of bounds within CHERI CC.
|
||||
|
||||
This means that the default behavior of allocators such as Jemalloc, would allow precise
|
||||
representation of bounds within CHERI CC. With our implementation rather than using
|
||||
fixed size TLB entries we use the CHERI CC bounds to be repurposed to encode dynamic sized addresses ranges.
|
||||
With FAT rather than using fixed size TLB entries page sizes (such as 4KB, 2MB and 1GB pages).
|
||||
We use CHERI CC bounds to be dynamic in size to be defined based on the size provided when calling
|
||||
malloc. Offering a more flexible alternative than fixed-size TLB entries.
|
||||
|
||||
% We use the CHERI CC
|
||||
% bounds to be repurposed to encode dynamic sized addresses ranges.
|
||||
% These pointers can then be repurposed as memory ranges
|
||||
% in custom memory allocators, offering a more flexible alternative to fixed-size TLB entries.
|
||||
|
||||
@@ -581,6 +591,13 @@ fixed size TLB entries we use the CHERI CC bounds to be repurposed to encode dyn
|
||||
\caption{Fat-pointer Address Translations using huge pages}
|
||||
\label{fig:HugePages}
|
||||
\end{figure}
|
||||
To build up based on Section ~\ref{sec:RangeMemory} and ~\ref{sec:128bitCompressedBounds}
|
||||
we are able to pre-allocate memory using Huge pages and are able to mark smaller allocations
|
||||
using ranges by storing them as bounds within the pointer. Each of the memory ranges can be
|
||||
called a block. Since we have numerous blocks inside a huge page we allow block based
|
||||
memory patters within physically contiguous memory. As demonstrated with the allocator
|
||||
implementation in section ~\ref{sec:MemoryAllocator}.
|
||||
|
||||
Traditional address translation methods rely on hierarchical
|
||||
structures to map virtual addresses to physical addresses.
|
||||
This often requires multiple entries to handle different
|
||||
@@ -857,11 +874,22 @@ for use with huge pages, demonstrates a clear advantage in scenarios where memor
|
||||
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.
|
||||
|
||||
<points metric based>
|
||||
- Each benchmark reflection for the metric
|
||||
- summary based on each benchmark reflected
|
||||
\begin{itemize}
|
||||
\item L1 DTLB reads: There was noticeable reduction of L1 DTLB reads for kmeans of about on average
|
||||
4\% lesser and for Glibc there was significant reduction of 50\% than Jemalloc.
|
||||
|
||||
\item L2 DTLB reads: For all the benchmarks on figure \ref{fig:bargraph} there was on average 98\%
|
||||
reduction on L2 DTLB reads. Which demonstrates that all TLB translations are read at the L1 TLB
|
||||
cache.
|
||||
|
||||
- summarize all the bullet points.
|
||||
\item L1 DTLB walks: Due to most of the TLB entries getting hit at the L1TLB there is no need
|
||||
to walk the TLB cache hierarchy. This is shown by on average 99\% reduction in DTLB walks.
|
||||
|
||||
\item L1 DTLB refills: Since there are lesser DTLB walks and most reads are done at the L1 DTLB
|
||||
layer there is no need for numerous TLB refills to take place. Our benchmarks show on average
|
||||
a 99\% reduction on DTLB refills.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user