On 04/16/2010 04:30 PM, Trond Myklebust wrote:
The following patch series aims to significantly reduce the stack foot
print of the NFS client by dynamically allocating the struct nfs_fattr
and struct nfs_fh.
Random comments:
1. There's an open-coded kzalloc of an nfs_fh in nfs_get_sb. This can
be replaced with nfs_alloc_fh().
2. root_nfs_get_handle allocates an nfs_fh on the stack. This can be
replaced with nfs_alloc_fh().
3. There is an unneeded nfs_fattr_init() call in nfs_probe_fsinfo(). I
didn't look for others that are similarly made obsolete.
4. Where ever you have "if (fattr == NULL) goto out;" (and similarly
for filehandles) you could add "unlikely()" to improve branch prediction
slightly.
5. The documenting comment before nfs_do_refmount() is out of date.
Cheers
Trond
Trond Myklebust (24):
NFS: Add helper functions for allocating filehandles and fattr
structs
NFSv4: Eliminate nfs4_path_walk()
NFS: Reduce the stack footprint of nfs_follow_mountpoint()
NFS: Reduce the stack footprint of nfs_create_server
NFSv4: Reduce the stack footprint of try_location()
NFS: Reduce the stack footprint of nfs_lookup
NFS: Reduce the stack footprint of nfs_follow_remote_path()
NFSv4: Reduce stack footprint of nfs4_get_root()
NFSv4: Reduce the stack footprint of nfs4_remote_referral_get_sb
NFSv4: Reduce stack footprint of nfs4_proc_access() and
nfs3_proc_access()
NFS: Reduce stack footprint of nfs_revalidate_inode()
NFS: Reduce stack footprint of nfs3_proc_rename() and
nfs4_proc_rename()
NFS: Reduce stack footprint of nfs_readdir()
NFS: Reduce the stack footprint of nfs_link()
NFS: Reduce stack footprint of nfs3_proc_readlink()
NFS: Reduce stack footprint of nfs_proc_remove()
NFS: Reduce the stack footprint of nfs_rmdir
NFS: Reduce the stack footprint of nfs_proc_create
NFS: Reduce the stack footprint of nfs_proc_symlink()
NFS: Reduce stack footprint of nfs4_proc_create()
NFS: Reduce stack footprint of nfs_setattr()
NFS: Reduce stack footprint of nfs_statfs()
NFS: Reduce stack footprint of nfs3_proc_getacl() and
nfs3_proc_setacl()
NFS: Prevent the mount code from looping forever on broken exports
fs/nfs/client.c | 54 ++++++++++---
fs/nfs/dir.c | 62 +++++++++++----
fs/nfs/getroot.c | 191 +++++++++++++++++------------------------------
fs/nfs/inode.c | 46 ++++++++++--
fs/nfs/internal.h | 4 +-
fs/nfs/namespace.c | 20 ++++--
fs/nfs/nfs3acl.c | 23 ++++--
fs/nfs/nfs3proc.c | 128 +++++++++++++++++++------------
fs/nfs/nfs3xdr.c | 2 +-
fs/nfs/nfs4namespace.c | 10 ++-
fs/nfs/nfs4proc.c | 81 ++++++++++++--------
fs/nfs/nfs4xdr.c | 2 +-
fs/nfs/proc.c | 144 ++++++++++++++++++++---------------
fs/nfs/super.c | 121 ++++++++++++++++++++++++++----
fs/nfs/unlink.c | 4 +-
include/linux/nfs_fs.h | 14 ++++
include/linux/nfs_xdr.h | 2 +-
17 files changed, 566 insertions(+), 342 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
chuck[dot]lever[at]oracle[dot]com
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html