[PATCH v3 0/2] Separate xfs_log_vec/iovec to save memory

alexjlzheng
2024-06-26T04:49:15Z

From: Jinliang Zheng <alexjlzheng@tencent.com>

xfs_log_iovec dominates the memory usage of the
xfs_log_vec/xfs_log_iovec combination, and it is no longer useful after
the data is flushed to the iclog. This patchset separates xfs_log_iovec
from xfs_log_vec and releases them early to save memory.

Changelog:
V1:
- https://lore.kernel.org/linux-xfs/20240623123119.3562031-1-alexjlzheng@tencent.com/

V2:
- add kmem_cache for small object xfs_log_vec
- reduce redundant free and allocation of xfs_log_vec
- https://lore.kernel.org/linux-xfs/20240625182842.1038809-3-alexjlzheng@tencent.com/T/#u

V3:
- simplify code for same or smaller
- fix warning: unused variable 'lvec' [-Wunused-variable] in
xlog_finish_iovec

Jinliang Zheng (2):
xfs: add xfs_log_vec_cache for separate xfs_log_vec/xfs_log_iovec
xfs: make xfs_log_iovec independent from xfs_log_vec and free it early

fs/xfs/xfs_log.c | 3 +++
fs/xfs/xfs_log.h | 10 ++++++++--
fs/xfs/xfs_log_cil.c | 34 ++++++++++++++++++++--------------
fs/xfs/xfs_super.c | 9 +++++++++
4 files changed, 40 insertions(+), 16 deletions(-)

--
2.41.1