[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120907172536.1343.80497.stgit@maximpc.sw.ru>
Date: Fri, 07 Sep 2012 21:40:37 +0400
From: Maxim Patlasov <mpatlasov@...allels.com>
To: miklos@...redi.hu
Cc: fuse-devel@...ts.sourceforge.net, linux-kernel@...r.kernel.org,
devel@...nvz.org
Subject: [PATCH 0/6] fuse: allocate req->pages[] dynamically
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists