[Devel] [PATCH 0/6] fuse: allocate req->pages[] dynamically
Maxim Patlasov
mpatlasov at parallels.com
Fri Sep 7 10:40:37 PDT 2012
Hi,
Currently, any fuse request always includes inline pages[] array of
FUSE_MAX_PAGES_PER_REQ elements. This is the waste of memory because
in many cases smaller size would suffice.
The patch-set tries to allocate only as many elements of pages[] array as
actaully needed. This will be even more useful in the future because of:
1. Mitsuo's patches making maximum read/write request size tunable.
2. My patches optimizing scatter-gather direct IO. To make them simplier I'll
need to substitute array of 'struct page *' with array of 'struct bio_vec'.
It would make memory overhead worse if implemented w/o this patch-set.
Thanks,
Maxim
---
Maxim Patlasov (6):
fuse: general infrastructure for pages[] of variable size
fuse: categorize fuse_get_req()
fuse: rework fuse_retrieve()
fuse: rework fuse_readpages()
fuse: rework fuse_perform_write()
fuse: rework fuse_do_ioctl()
fs/fuse/cuse.c | 2 +-
fs/fuse/dev.c | 70 +++++++++++++++++++++++++++++++++++++-----------------
fs/fuse/dir.c | 38 +++++++++++++++--------------
fs/fuse/file.c | 53 +++++++++++++++++++++++++----------------
fs/fuse/fuse_i.h | 45 ++++++++++++++++++++++++++++++-----
fs/fuse/inode.c | 6 ++---
6 files changed, 143 insertions(+), 71 deletions(-)
--
Signature
More information about the Devel
mailing list