On Mon, Mar 11, 2024 at 08:25:05AM -0700, Darrick J. Wong wrote: > > > > I wonder, what are the access patterns for merkle blobs? Is it actually > > > > sequential, or is more like 0 -> N -> N*N as we walk towards leaves? > > > > I think the leaf level (i.e. individual record) access patterns > > largely match data access patterns, so I'd just treat it like as if > > it's a normal file being accessed.... > > <nod> The latest version of this tries to avoid letting reclaim take the > top of the tree. Logically this makes sense to me to reduce read verify > latency, but I was hoping Eric or Andrey or someone with more > familiarity with fsverity would chime in on whether or not that made > sense. The levels are stored ordered from root to leaf; they aren't interleaved. So technically the overall access pattern isn't sequential, but it is sequential within each level, and the leaf level is over 99% of the accesses anyway (assuming the default parameters where each block has 128 children). It makes sense to try to keep the top levels, i.e. the blocks with the lowest indices, cached. (The other filesystems that support fsverity currently aren't doing anything special to treat them differently from other pagecache pages.) - Eric