On Tue, Mar 19, 2024 at 02:41:27PM -0700, Christoph Hellwig wrote: > On Tue, Mar 19, 2024 at 02:38:27PM -0700, Darrick J. Wong wrote: > > 64k is the maximum xattr value size, yes. But remote xattr value blocks > > now have block headers complete with owner/uuid/magic/etc. Each block > > can only store $blksz-56 bytes now. Hence that 64k value needs > > ceil(65536 / 4040) == 17 blocks on a 4k fsb filesystem. > > Uggg, ok. I thought we'd just treat remote xattrs as data and don't > add headers. That almost asks for using vmalloc if the size is just > above a a power of two. > > > Same reason. Merkle tree blocks are $blksz by default, but storing a > > 4096 blob in the xattrs requires ceil(4096 / 4040) == 2 blocks. Most of > > that second block is wasted. > > *sad panda face*. We should be able to come up with something > better than that.. Well xfs_verity.c could just zlib/zstd/whatever compress the contents and see if that helps. We only need a ~2% compression to shrink to a single 4k block, a ~1% reduction for 64k blocks, or a 6% reduction for 1k blocks. --D