On 5/29/26 10:29, Wenjie Qi wrote: > prepare_write_begin() first gets the inode folio and builds a dnode, > then checks the read extent cache. For an ordinary overwrite of a > non-inline and non-compressed file, an extent-cache hit already gives the > data block address and the following path does not need to allocate or > update any node state. > > Check the read extent cache before fetching the inode folio for that > narrow case. Keep the existing paths for inline data, compressed files, > and writes that may extend past EOF, where the helper may need inline > conversion, compression preparation, or block reservation. > > This avoids a node-folio lookup in the buffered overwrite fast path when > the mapping is already cached. > > In a QEMU/KASAN x86_64 VM, using a small buffered overwrite workload on > an existing 1MiB file, median time improved as follows: > > 64-byte overwrites: 1724.93 ns/write -> 1560.24 ns/write > 256-byte overwrites: 1713.38 ns/write -> 1577.85 ns/write > > Function profiling of 20k 64-byte overwrites showed > f2fs_get_inode_folio() calls drop from 20004 to 4. > > Signed-off-by: Wenjie Qi <[email protected]>
Reviewed-by: Chao Yu <[email protected]> Thanks, _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
