[PATCH v12 0/5] netfs, cachefiles: Changes for next, primarily occupancy tracking-related
David Howells
dhowells at redhat.com
Tue Oct 13 01:14:08 PDT 2026
Petr Chmelar <petr.chmelar at innovatrics.com> wrote:
> The cover letter leaves non-contiguous objects, which still use
> SEEK_DATA/SEEK_HOLE, for a later series. We hit that case badly in
> production, so here are numbers in case they help with its priority.
I know. But it's a tricky problem to solve as I need to store a map of the
content somewhere. xattrs are painful as I can only read or write them
atomically and as whole blobs - and also I'm not sure if I need to limit the
size of any given xattr to 512 bytes. Further, the xattr wangling interface
inside the kernel assumes a flat virtual buffer rather than taking an I/O
iterator.
I have patches that store a bitmap in an xattr, with 1 bit per 256K block of
cachefile, for a 512 byte xattr able to map up to 1G of file size. I need to
revisit this at some point soon. It may be better to switch to storing an
extent list, but:
> On our NFS clients (Ubuntu, v6.8, cache on XFS), a sequential read of a
> fully cached 184 GB object with 1,080,732 extents ran at 0.4 MB/s.
Trying to store a million+ extent records in a single xattr would kind of
suck. Now, it might be possible to collapse that somewhat if a lot of the
extents are virtually sequential within the file, since I don't care about
physical sequentiality.
Also, can you tell if you have a preferred cache granularity? Would a 256K
granularity, say, use too much space?
> I expect the right fix is for cachefiles to track what it has written
> itself, as CONTENT_ALL now does for contiguous files, rather than
> something like the above.
Indeed - as mentioned above.
> I can send the workaround if it's useful as a reference,
If you could, that would be great!
> and I'm happy to test whatever you plan for this case on our workload.
Thanks. Now I just need to reproduce your bug. Note that I posted another
cachefiles patch that Christian hasn't picked up yet:
https://lore.kernel.org/linux-fsdevel/1091807.1791483394@warthog.procyon.org.uk/T/#u
David
More information about the linux-afs
mailing list