[PATCH 0/6] fuse: allocate req->pages[] dynamically

From: Maxim Patlasov
Date: Fri Sep 07 2012 - 13:40:28 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/