Landlock supports multiple nested sandboxes,
so when an operation with filesystem path is attempted,
it has to check it against up to 16 nested policies.

The way it currently does that is by constructing a matrix of the requested access rights per layer and checking off these matrix entries during the path walk.  This is efficient, but it also increases code complexity and I have long had a nagging doubt about whether it is worth the tradeoff.

After all, the mental model for using Landlock is that each layer gets checked independently from the next.  A more "natural" way to implement this would be to:

1. loop over the layers first, and
2. then do the path walk inside (multiple times).

To be clear, my confidence that this would be acceptable performance-wise was always low, but then again, performance can sometimes be counterintuitive, and so it seemed like it might be worthwhile exploring.

The refactoring would be a bigger change, but luckily we have a very comprehensive suite of kernel selftests in Landlock -- so at least for the sake of doing that experiment, it was feasible to vibe code the refactoring.  (The code is absolutely not meant to be submitted like that, but it is good enough to get performance numbers of the general idea.)

**The experiment failed** -- it worsened performance noticeably.
But it's still interesting to keep a record of it.

I also found it amazing that I can play with the performance aspects of such a large refactoring without implementing it myself. :)  LLMs are underused for such experiments.

## Hypothesis 

The (highly speculative) hypothesis of this experiment is:

> By refactoring the code to loop over the layers first, and doing the path walk inside (multiple times),
> 1. the code becomes simpler to reason about,
> 2. and keeps reasonable performance.

## Implementation

I gave the refactoring task to an LLM agent.  **This code is not production ready and entirely unreviewed**, but it does pass the very comprehensive Landlock test suite, which remained unmodified, so I have good confidence that the relevant aspects are retained.

## Measurements

### Effects on Landlock code complexity

The measurement was done using:

```
wc -l security/landlock/*.[ch]
```

The lines of code in Landlock went down from 7245 (2006 in `fs.c`) to 6815 (1726 in `fs.c`) lines.

```pikchr
scale=0.0006cm
boxht = 0.4*boxht
thickness = 1px

right

// Args: "name" wid "label" color
define bar {
  box fill $4 wid $2 $3 rjust
  text at 0.03 right of last box.e $1 ljust
  move to 0.5*boxht below last box.sw
}

bar("after refactoring", 6815*scale, "6815", salmon)
bar("before refactoring", 7245*scale, "7245", skyblue)
move down 2*boxht; right
bar("after refactoring", 1726*scale, "1726", salmon)
bar("before refactoring", 2006*scale, "2006", skyblue)

text at boxht above first box.w \
  "Lines of Code in security/landlock/*.[ch]" bold ljust
text at boxht above 3rd box.w \
  "Lines of Code in security/landlock/fs.c" bold ljust
```

The usual caveats apply:
* Lines of code are a poor measurement of actual complexity.
* It might have deleted some KUnit tests along the way.
  Whether that is legitimate due to simplification is a subjective question.

But it's at least an indication that it does indeed simplify the code.

The full refactoring and benchmarking code are kept on a Git branch at https://github.com/gnoack/linux/tree/landlock-invert.

### Effects on Performance

This is measured using an improved version of `fs_bench`.

`fs_bench` benchmarks how long it takes to check Landlock policies during `open()`, and it does so in an intentionally very-bad-case scenario, namely one where the opened file is in a deeply nested filesystem location from the root, and where the operation is in the end not permitted, so that Landlock has to walk the path all the way up to the root.

This is chosen to amplify the effect and to make it more measurable.
In more practical scenarios,
the number of nested Landlock domains is likely to be low (e.g., 1),
and the number of nested directories is also low (e.g. <10).

The resulting performance graphs show that independent of the number of nested directories, adding more nested Landlock sandboxes does not scale well after the refactoring attempt.

<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 1em; max-width: 1000px;">
  <div>
<svg 
 width="480" height="320"
 viewBox="0 0 480 320"
 xmlns="http://www.w3.org/2000/svg"
 xmlns:xlink="http://www.w3.org/1999/xlink"
>
<title>Gnuplot</title>
<desc>Produced by GNUPLOT 6.0 patchlevel 4 </desc>
<g id="gnuplot_canvas">
<rect x="0" y="0" width="480" height="320" fill="none"/>
<defs>
	<circle id='gpDot' r='0.5' stroke-width='0.5' stroke='currentColor'/>
	<path id='gpPt0' stroke-width='0.222' stroke='currentColor' d='M-1,0 h2 M0,-1 v2'/>
	<path id='gpPt1' stroke-width='0.222' stroke='currentColor' d='M-1,-1 L1,1 M1,-1 L-1,1'/>
	<path id='gpPt2' stroke-width='0.222' stroke='currentColor' d='M-1,0 L1,0 M0,-1 L0,1 M-1,-1 L1,1 M-1,1 L1,-1'/>
	<rect id='gpPt3' stroke-width='0.222' stroke='currentColor' x='-1' y='-1' width='2' height='2'/>
	<rect id='gpPt4' stroke-width='0.222' stroke='currentColor' fill='currentColor' x='-1' y='-1' width='2' height='2'/>
	<circle id='gpPt5' stroke-width='0.222' stroke='currentColor' cx='0' cy='0' r='1'/>
	<use xlink:href='#gpPt5' id='gpPt6' fill='currentColor' stroke='none'/>
	<path id='gpPt7' stroke-width='0.222' stroke='currentColor' d='M0,-1.33 L-1.33,0.67 L1.33,0.67 z'/>
	<use xlink:href='#gpPt7' id='gpPt8' fill='currentColor' stroke='none'/>
	<use xlink:href='#gpPt7' id='gpPt9' stroke='currentColor' transform='rotate(180)'/>
	<use xlink:href='#gpPt9' id='gpPt10' fill='currentColor' stroke='none'/>
	<use xlink:href='#gpPt3' id='gpPt11' stroke='currentColor' transform='rotate(45)'/>
	<use xlink:href='#gpPt11' id='gpPt12' fill='currentColor' stroke='none'/>
	<path id='gpPt13' stroke-width='0.222' stroke='currentColor' d='M0,1.330 L1.265,0.411 L0.782,-1.067 L-0.782,-1.076 L-1.265,0.411 z'/>
	<use xlink:href='#gpPt13' id='gpPt14' fill='currentColor' stroke='none'/>
	<filter id='textbox' filterUnits='objectBoundingBox' x='0' y='0' height='1' width='1'>
	  <feFlood flood-color='white' flood-opacity='1' result='bgnd'/>
	  <feComposite in='SourceGraphic' in2='bgnd' operator='atop'/>
	</filter>
	<filter id='greybox' filterUnits='objectBoundingBox' x='0' y='0' height='1' width='1'>
	  <feFlood flood-color='lightgrey' flood-opacity='1' result='grey'/>
	  <feComposite in='SourceGraphic' in2='grey' operator='atop'/>
	</filter>
</defs>
<g fill="none" color="white" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M64.14,262.40 L454.82,262.40  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M64.14,262.40 L73.14,262.40  '/>	<g transform="translate(55.75,266.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 0</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M64.14,232.63 L454.82,232.63  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M64.14,232.63 L73.14,232.63  '/>	<g transform="translate(55.75,236.53)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 10</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M64.14,202.86 L454.82,202.86  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M64.14,202.86 L73.14,202.86  '/>	<g transform="translate(55.75,206.76)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 20</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M64.14,173.09 L454.82,173.09  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M64.14,173.09 L73.14,173.09  '/>	<g transform="translate(55.75,176.99)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 30</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M64.14,143.32 L454.82,143.32  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M64.14,143.32 L73.14,143.32  '/>	<g transform="translate(55.75,147.22)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 40</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M64.14,113.55 L454.82,113.55  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M64.14,113.55 L73.14,113.55  '/>	<g transform="translate(55.75,117.45)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 50</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M64.14,83.78 L72.53,83.78 M182.21,83.78 L454.82,83.78  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M64.14,83.78 L73.14,83.78  '/>	<g transform="translate(55.75,87.68)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 60</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M64.14,54.01 L454.82,54.01  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M64.14,54.01 L73.14,54.01  '/>	<g transform="translate(55.75,57.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 70</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M64.14,262.40 L64.14,253.40  '/>	<g transform="translate(64.14,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 1</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M161.81,262.40 L161.81,253.40  '/>	<g transform="translate(161.81,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 2</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M259.48,262.40 L259.48,253.40  '/>	<g transform="translate(259.48,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 4</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M357.15,262.40 L357.15,253.40  '/>	<g transform="translate(357.15,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 8</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M64.14,54.01 L64.14,262.40 L454.82,262.40 M454.82,54.01 M64.14,54.01  '/></g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
	<g id="gnuplot_plot_1" ><title>before</title>
<g fill="none" color="white" stroke="black" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(122.87,75.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" >before</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb( 59, 130, 246)'  d='M131.26,72.01 L173.82,72.01 M64.14,244.54 L161.81,244.54 L259.48,241.56 L357.15,241.56 L454.82,238.58  '/>	<use xlink:href='#gpPt6' transform='translate(64.14,244.54) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(161.81,244.54) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(259.48,241.56) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(357.15,241.56) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(454.82,238.58) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(152.54,72.01) scale(3.60)' color='rgb( 59, 130, 246)'/>
</g>
	</g>
	<g id="gnuplot_plot_2" ><title>after</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(122.87,93.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" >after</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(239,  68,  68)'  d='M131.26,90.01 L173.82,90.01 M64.14,244.54 L161.81,235.61 L259.48,217.74 L357.15,173.09 L454.82,80.80  '/>	<use xlink:href='#gpPt6' transform='translate(64.14,244.54) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(161.81,235.61) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(259.48,217.74) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(357.15,173.09) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(454.82,80.80) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(152.54,90.01) scale(3.60)' color='rgb(239,  68,  68)'/>
</g>
	</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M64.14,54.01 L64.14,262.40 L454.82,262.40 M454.82,54.01 M64.14,54.01  '/>	<g transform="translate(19.18,158.21) rotate(270.00)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" >System clocks</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(259.48,311.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" >Landlock layers</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(259.48,30.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text>fs_bench, depth = 10</text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
</g>
</svg>
  </div>
  <div>
<svg 
 width="480" height="320"
 viewBox="0 0 480 320"
 xmlns="http://www.w3.org/2000/svg"
 xmlns:xlink="http://www.w3.org/1999/xlink"
>
<title>Gnuplot</title>
<desc>Produced by GNUPLOT 6.0 patchlevel 4 </desc>
<g id="gnuplot_canvas">
<rect x="0" y="0" width="480" height="320" fill="none"/>
<defs>
	<circle id='gpDot' r='0.5' stroke-width='0.5' stroke='currentColor'/>
	<path id='gpPt0' stroke-width='0.222' stroke='currentColor' d='M-1,0 h2 M0,-1 v2'/>
	<path id='gpPt1' stroke-width='0.222' stroke='currentColor' d='M-1,-1 L1,1 M1,-1 L-1,1'/>
	<path id='gpPt2' stroke-width='0.222' stroke='currentColor' d='M-1,0 L1,0 M0,-1 L0,1 M-1,-1 L1,1 M-1,1 L1,-1'/>
	<rect id='gpPt3' stroke-width='0.222' stroke='currentColor' x='-1' y='-1' width='2' height='2'/>
	<rect id='gpPt4' stroke-width='0.222' stroke='currentColor' fill='currentColor' x='-1' y='-1' width='2' height='2'/>
	<circle id='gpPt5' stroke-width='0.222' stroke='currentColor' cx='0' cy='0' r='1'/>
	<use xlink:href='#gpPt5' id='gpPt6' fill='currentColor' stroke='none'/>
	<path id='gpPt7' stroke-width='0.222' stroke='currentColor' d='M0,-1.33 L-1.33,0.67 L1.33,0.67 z'/>
	<use xlink:href='#gpPt7' id='gpPt8' fill='currentColor' stroke='none'/>
	<use xlink:href='#gpPt7' id='gpPt9' stroke='currentColor' transform='rotate(180)'/>
	<use xlink:href='#gpPt9' id='gpPt10' fill='currentColor' stroke='none'/>
	<use xlink:href='#gpPt3' id='gpPt11' stroke='currentColor' transform='rotate(45)'/>
	<use xlink:href='#gpPt11' id='gpPt12' fill='currentColor' stroke='none'/>
	<path id='gpPt13' stroke-width='0.222' stroke='currentColor' d='M0,1.330 L1.265,0.411 L0.782,-1.067 L-0.782,-1.076 L-1.265,0.411 z'/>
	<use xlink:href='#gpPt13' id='gpPt14' fill='currentColor' stroke='none'/>
	<filter id='textbox' filterUnits='objectBoundingBox' x='0' y='0' height='1' width='1'>
	  <feFlood flood-color='white' flood-opacity='1' result='bgnd'/>
	  <feComposite in='SourceGraphic' in2='bgnd' operator='atop'/>
	</filter>
	<filter id='greybox' filterUnits='objectBoundingBox' x='0' y='0' height='1' width='1'>
	  <feFlood flood-color='lightgrey' flood-opacity='1' result='grey'/>
	  <feComposite in='SourceGraphic' in2='grey' operator='atop'/>
	</filter>
</defs>
<g fill="none" color="white" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M72.53,262.40 L454.82,262.40  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M72.53,262.40 L81.53,262.40  '/>	<g transform="translate(64.14,266.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 0</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M72.53,232.63 L454.82,232.63  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M72.53,232.63 L81.53,232.63  '/>	<g transform="translate(64.14,236.53)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 100</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M72.53,202.86 L454.82,202.86  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M72.53,202.86 L81.53,202.86  '/>	<g transform="translate(64.14,206.76)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 200</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M72.53,173.09 L454.82,173.09  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M72.53,173.09 L81.53,173.09  '/>	<g transform="translate(64.14,176.99)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 300</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M72.53,143.32 L454.82,143.32  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M72.53,143.32 L81.53,143.32  '/>	<g transform="translate(64.14,147.22)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 400</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M72.53,113.55 L454.82,113.55  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M72.53,113.55 L81.53,113.55  '/>	<g transform="translate(64.14,117.45)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 500</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M72.53,83.78 L80.92,83.78 M190.60,83.78 L454.82,83.78  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M72.53,83.78 L81.53,83.78  '/>	<g transform="translate(64.14,87.68)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 600</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M72.53,54.01 L454.82,54.01  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M72.53,54.01 L81.53,54.01  '/>	<g transform="translate(64.14,57.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 700</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M72.53,262.40 L72.53,253.40  '/>	<g transform="translate(72.53,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 1</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M168.10,262.40 L168.10,253.40  '/>	<g transform="translate(168.10,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 2</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M263.68,262.40 L263.68,253.40  '/>	<g transform="translate(263.68,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 4</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M359.25,262.40 L359.25,253.40  '/>	<g transform="translate(359.25,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 8</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M72.53,54.01 L72.53,262.40 L454.82,262.40 M454.82,54.01 M72.53,54.01  '/></g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
	<g id="gnuplot_plot_1" ><title>before</title>
<g fill="none" color="white" stroke="black" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(131.26,75.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" >before</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb( 59, 130, 246)'  d='M139.65,72.01 L182.21,72.01 M72.53,252.87 L168.10,252.28 L263.68,251.39 L359.25,250.49 L454.82,248.41  '/>	<use xlink:href='#gpPt6' transform='translate(72.53,252.87) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(168.10,252.28) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(263.68,251.39) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(359.25,250.49) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(454.82,248.41) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(160.93,72.01) scale(3.60)' color='rgb( 59, 130, 246)'/>
</g>
	</g>
	<g id="gnuplot_plot_2" ><title>after</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(131.26,93.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" >after</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(239,  68,  68)'  d='M139.65,90.01 L182.21,90.01 M72.53,253.77 L168.10,244.84 L263.68,225.78 L359.25,173.39 L454.82,60.56  '/>	<use xlink:href='#gpPt6' transform='translate(72.53,253.77) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(168.10,244.84) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(263.68,225.78) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(359.25,173.39) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(454.82,60.56) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(160.93,90.01) scale(3.60)' color='rgb(239,  68,  68)'/>
</g>
	</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M72.53,54.01 L72.53,262.40 L454.82,262.40 M454.82,54.01 M72.53,54.01  '/>	<g transform="translate(19.18,158.21) rotate(270.00)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" >System clocks</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(263.67,311.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" >Landlock layers</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(263.67,30.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text>fs_bench, depth = 100</text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
</g>
</svg>
  </div>
  <div>
<svg 
 width="480" height="320"
 viewBox="0 0 480 320"
 xmlns="http://www.w3.org/2000/svg"
 xmlns:xlink="http://www.w3.org/1999/xlink"
>
<title>Gnuplot</title>
<desc>Produced by GNUPLOT 6.0 patchlevel 4 </desc>
<g id="gnuplot_canvas">
<rect x="0" y="0" width="480" height="320" fill="none"/>
<defs>
	<circle id='gpDot' r='0.5' stroke-width='0.5' stroke='currentColor'/>
	<path id='gpPt0' stroke-width='0.222' stroke='currentColor' d='M-1,0 h2 M0,-1 v2'/>
	<path id='gpPt1' stroke-width='0.222' stroke='currentColor' d='M-1,-1 L1,1 M1,-1 L-1,1'/>
	<path id='gpPt2' stroke-width='0.222' stroke='currentColor' d='M-1,0 L1,0 M0,-1 L0,1 M-1,-1 L1,1 M-1,1 L1,-1'/>
	<rect id='gpPt3' stroke-width='0.222' stroke='currentColor' x='-1' y='-1' width='2' height='2'/>
	<rect id='gpPt4' stroke-width='0.222' stroke='currentColor' fill='currentColor' x='-1' y='-1' width='2' height='2'/>
	<circle id='gpPt5' stroke-width='0.222' stroke='currentColor' cx='0' cy='0' r='1'/>
	<use xlink:href='#gpPt5' id='gpPt6' fill='currentColor' stroke='none'/>
	<path id='gpPt7' stroke-width='0.222' stroke='currentColor' d='M0,-1.33 L-1.33,0.67 L1.33,0.67 z'/>
	<use xlink:href='#gpPt7' id='gpPt8' fill='currentColor' stroke='none'/>
	<use xlink:href='#gpPt7' id='gpPt9' stroke='currentColor' transform='rotate(180)'/>
	<use xlink:href='#gpPt9' id='gpPt10' fill='currentColor' stroke='none'/>
	<use xlink:href='#gpPt3' id='gpPt11' stroke='currentColor' transform='rotate(45)'/>
	<use xlink:href='#gpPt11' id='gpPt12' fill='currentColor' stroke='none'/>
	<path id='gpPt13' stroke-width='0.222' stroke='currentColor' d='M0,1.330 L1.265,0.411 L0.782,-1.067 L-0.782,-1.076 L-1.265,0.411 z'/>
	<use xlink:href='#gpPt13' id='gpPt14' fill='currentColor' stroke='none'/>
	<filter id='textbox' filterUnits='objectBoundingBox' x='0' y='0' height='1' width='1'>
	  <feFlood flood-color='white' flood-opacity='1' result='bgnd'/>
	  <feComposite in='SourceGraphic' in2='bgnd' operator='atop'/>
	</filter>
	<filter id='greybox' filterUnits='objectBoundingBox' x='0' y='0' height='1' width='1'>
	  <feFlood flood-color='lightgrey' flood-opacity='1' result='grey'/>
	  <feComposite in='SourceGraphic' in2='grey' operator='atop'/>
	</filter>
</defs>
<g fill="none" color="white" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M80.92,262.40 L454.82,262.40  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M80.92,262.40 L89.92,262.40  '/>	<g transform="translate(72.53,266.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 0</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M80.92,239.25 L454.82,239.25  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M80.92,239.25 L89.92,239.25  '/>	<g transform="translate(72.53,243.15)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 1000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M80.92,216.09 L454.82,216.09  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M80.92,216.09 L89.92,216.09  '/>	<g transform="translate(72.53,219.99)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 2000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M80.92,192.94 L454.82,192.94  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M80.92,192.94 L89.92,192.94  '/>	<g transform="translate(72.53,196.84)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 3000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M80.92,169.78 L454.82,169.78  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M80.92,169.78 L89.92,169.78  '/>	<g transform="translate(72.53,173.68)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 4000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M80.92,146.63 L454.82,146.63  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M80.92,146.63 L89.92,146.63  '/>	<g transform="translate(72.53,150.53)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 5000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M80.92,123.47 L454.82,123.47  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M80.92,123.47 L89.92,123.47  '/>	<g transform="translate(72.53,127.37)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 6000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M80.92,100.32 L454.82,100.32  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M80.92,100.32 L89.92,100.32  '/>	<g transform="translate(72.53,104.22)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 7000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M80.92,77.16 L89.31,77.16 M198.99,77.16 L454.82,77.16  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M80.92,77.16 L89.92,77.16  '/>	<g transform="translate(72.53,81.06)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 8000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M80.92,54.01 L454.82,54.01  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M80.92,54.01 L89.92,54.01  '/>	<g transform="translate(72.53,57.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 9000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M80.92,262.40 L80.92,253.40  '/>	<g transform="translate(80.92,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 1</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M174.40,262.40 L174.40,253.40  '/>	<g transform="translate(174.40,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 2</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M267.87,262.40 L267.87,253.40  '/>	<g transform="translate(267.87,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 4</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M361.35,262.40 L361.35,253.40  '/>	<g transform="translate(361.35,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 8</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M80.92,54.01 L80.92,262.40 L454.82,262.40 M454.82,54.01 M80.92,54.01  '/></g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
	<g id="gnuplot_plot_1" ><title>before</title>
<g fill="none" color="white" stroke="black" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(139.65,75.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" >before</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb( 59, 130, 246)'  d='M148.04,72.01 L190.60,72.01 M80.92,251.54 L174.40,251.91 L267.87,250.68 L361.35,250.13 L454.82,248.62  '/>	<use xlink:href='#gpPt6' transform='translate(80.92,251.54) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(174.40,251.91) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(267.87,250.68) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(361.35,250.13) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(454.82,248.62) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(169.32,72.01) scale(3.60)' color='rgb( 59, 130, 246)'/>
</g>
	</g>
	<g id="gnuplot_plot_2" ><title>after</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(139.65,93.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" >after</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(239,  68,  68)'  d='M148.04,90.01 L190.60,90.01 M80.92,253.51 L174.40,245.47 L267.87,219.17 L361.35,173.81 L454.82,61.33  '/>	<use xlink:href='#gpPt6' transform='translate(80.92,253.51) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(174.40,245.47) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(267.87,219.17) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(361.35,173.81) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(454.82,61.33) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(169.32,90.01) scale(3.60)' color='rgb(239,  68,  68)'/>
</g>
	</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M80.92,54.01 L80.92,262.40 L454.82,262.40 M454.82,54.01 M80.92,54.01  '/>	<g transform="translate(19.18,158.21) rotate(270.00)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" >System clocks</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(267.87,311.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" >Landlock layers</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(267.87,30.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text>fs_bench, depth = 1000</text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
</g>
</svg>
  </div>
  <div>
<svg 
 width="480" height="320"
 viewBox="0 0 480 320"
 xmlns="http://www.w3.org/2000/svg"
 xmlns:xlink="http://www.w3.org/1999/xlink"
>
<title>Gnuplot</title>
<desc>Produced by GNUPLOT 6.0 patchlevel 4 </desc>
<g id="gnuplot_canvas">
<rect x="0" y="0" width="480" height="320" fill="none"/>
<defs>
	<circle id='gpDot' r='0.5' stroke-width='0.5' stroke='currentColor'/>
	<path id='gpPt0' stroke-width='0.222' stroke='currentColor' d='M-1,0 h2 M0,-1 v2'/>
	<path id='gpPt1' stroke-width='0.222' stroke='currentColor' d='M-1,-1 L1,1 M1,-1 L-1,1'/>
	<path id='gpPt2' stroke-width='0.222' stroke='currentColor' d='M-1,0 L1,0 M0,-1 L0,1 M-1,-1 L1,1 M-1,1 L1,-1'/>
	<rect id='gpPt3' stroke-width='0.222' stroke='currentColor' x='-1' y='-1' width='2' height='2'/>
	<rect id='gpPt4' stroke-width='0.222' stroke='currentColor' fill='currentColor' x='-1' y='-1' width='2' height='2'/>
	<circle id='gpPt5' stroke-width='0.222' stroke='currentColor' cx='0' cy='0' r='1'/>
	<use xlink:href='#gpPt5' id='gpPt6' fill='currentColor' stroke='none'/>
	<path id='gpPt7' stroke-width='0.222' stroke='currentColor' d='M0,-1.33 L-1.33,0.67 L1.33,0.67 z'/>
	<use xlink:href='#gpPt7' id='gpPt8' fill='currentColor' stroke='none'/>
	<use xlink:href='#gpPt7' id='gpPt9' stroke='currentColor' transform='rotate(180)'/>
	<use xlink:href='#gpPt9' id='gpPt10' fill='currentColor' stroke='none'/>
	<use xlink:href='#gpPt3' id='gpPt11' stroke='currentColor' transform='rotate(45)'/>
	<use xlink:href='#gpPt11' id='gpPt12' fill='currentColor' stroke='none'/>
	<path id='gpPt13' stroke-width='0.222' stroke='currentColor' d='M0,1.330 L1.265,0.411 L0.782,-1.067 L-0.782,-1.076 L-1.265,0.411 z'/>
	<use xlink:href='#gpPt13' id='gpPt14' fill='currentColor' stroke='none'/>
	<filter id='textbox' filterUnits='objectBoundingBox' x='0' y='0' height='1' width='1'>
	  <feFlood flood-color='white' flood-opacity='1' result='bgnd'/>
	  <feComposite in='SourceGraphic' in2='bgnd' operator='atop'/>
	</filter>
	<filter id='greybox' filterUnits='objectBoundingBox' x='0' y='0' height='1' width='1'>
	  <feFlood flood-color='lightgrey' flood-opacity='1' result='grey'/>
	  <feComposite in='SourceGraphic' in2='grey' operator='atop'/>
	</filter>
</defs>
<g fill="none" color="white" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M97.70,262.40 L454.82,262.40  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M97.70,262.40 L106.70,262.40  '/>	<g transform="translate(89.31,266.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 0</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M97.70,241.56 L454.82,241.56  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M97.70,241.56 L106.70,241.56  '/>	<g transform="translate(89.31,245.46)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 10000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M97.70,220.72 L454.82,220.72  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M97.70,220.72 L106.70,220.72  '/>	<g transform="translate(89.31,224.62)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 20000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M97.70,199.88 L454.82,199.88  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M97.70,199.88 L106.70,199.88  '/>	<g transform="translate(89.31,203.78)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 30000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M97.70,179.04 L454.82,179.04  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M97.70,179.04 L106.70,179.04  '/>	<g transform="translate(89.31,182.94)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 40000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M97.70,158.20 L454.82,158.20  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M97.70,158.20 L106.70,158.20  '/>	<g transform="translate(89.31,162.10)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 50000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M97.70,137.37 L454.82,137.37  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M97.70,137.37 L106.70,137.37  '/>	<g transform="translate(89.31,141.27)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 60000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M97.70,116.53 L454.82,116.53  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M97.70,116.53 L106.70,116.53  '/>	<g transform="translate(89.31,120.43)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 70000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M97.70,95.69 L106.09,95.69 M215.77,95.69 L454.82,95.69  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M97.70,95.69 L106.70,95.69  '/>	<g transform="translate(89.31,99.59)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 80000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M97.70,74.85 L106.09,74.85 M215.77,74.85 L454.82,74.85  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M97.70,74.85 L106.70,74.85  '/>	<g transform="translate(89.31,78.75)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 90000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(221, 221, 221)' stroke-dasharray='2,4' class="gridline"  d='M97.70,54.01 L454.82,54.01  '/></g>
<g fill="none" color="gray" stroke="rgb(221, 221, 221)" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M97.70,54.01 L106.70,54.01  '/>	<g transform="translate(89.31,57.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" > 100000</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M97.70,262.40 L97.70,253.40  '/>	<g transform="translate(97.70,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 1</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M186.98,262.40 L186.98,253.40  '/>	<g transform="translate(186.98,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 2</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M276.26,262.40 L276.26,253.40  '/>	<g transform="translate(276.26,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 4</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M365.54,262.40 L365.54,253.40  '/>	<g transform="translate(365.54,284.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" > 8</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M97.70,54.01 L97.70,262.40 L454.82,262.40 M454.82,54.01 M97.70,54.01  '/></g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
	<g id="gnuplot_plot_1" ><title>before</title>
<g fill="none" color="white" stroke="black" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(156.43,75.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" >before</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb( 59, 130, 246)'  d='M164.82,72.01 L207.38,72.01 M97.70,249.72 L186.98,249.75 L276.26,249.31 L365.54,248.95 L454.82,247.80  '/>	<use xlink:href='#gpPt6' transform='translate(97.70,249.72) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(186.98,249.75) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(276.26,249.31) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(365.54,248.95) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(454.82,247.80) scale(3.60)' color='rgb( 59, 130, 246)'/>
	<use xlink:href='#gpPt6' transform='translate(186.10,72.01) scale(3.60)' color='rgb( 59, 130, 246)'/>
</g>
	</g>
	<g id="gnuplot_plot_2" ><title>after</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(156.43,93.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="end">
		<text><tspan font-family="system-ui" >after</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='rgb(239,  68,  68)'  d='M164.82,90.01 L207.38,90.01 M97.70,252.66 L186.98,242.60 L276.26,220.86 L365.54,169.70 L454.82,55.05  '/>	<use xlink:href='#gpPt6' transform='translate(97.70,252.66) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(186.98,242.60) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(276.26,220.86) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(365.54,169.70) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(454.82,55.05) scale(3.60)' color='rgb(239,  68,  68)'/>
	<use xlink:href='#gpPt6' transform='translate(186.10,90.01) scale(3.60)' color='rgb(239,  68,  68)'/>
</g>
	</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<path stroke='black'  d='M97.70,54.01 L97.70,262.40 L454.82,262.40 M454.82,54.01 M97.70,54.01  '/>	<g transform="translate(19.18,158.21) rotate(270.00)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" >System clocks</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(276.26,311.30)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text><tspan font-family="system-ui" >Landlock layers</tspan></text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
	<g transform="translate(276.26,30.91)" stroke="none" fill="black" font-family="system-ui" font-size="12.00"  text-anchor="middle">
		<text>fs_bench, depth = 10000</text>
	</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
</g>
</svg>
  </div>
</div>

#### Noteworthy results:

The refactoring attempt does not scale well when adding more Landlock sandboxes.

Even with a small and more realistic directory nesting depth of only 10, the **performance degradation of doing the path walk twice when adding a second Landlock layer is clearly visible**.

In the case of **only one layer, the performance improved slightly**, presumably because the code is just simpler now, but this only becomes properly measurable at a high number of nested directories.  In the more realistic scenario with only 10 directories, the effect is not measurable with the clock resolution.

  Directory nesting depth | before refactoring (clocks) | after refactoring (clocks)
  ---|---|---
  10 | 6 | 6
  100 | 32 | 29 (90%)
  1000 | 469 | 384 (82%)
  10000 | 6087 | 4676 (77%)

## Conclusion

❌ The refactoring was a bad idea and it reduces performance.

The current path walk implementation with the layer matrix performs better,
even in scenarios with small numbers.