xfs
[Top] [All Lists]

TAKE - get back some of the performance loss from the vnode changes

To: unlisted-recipients:; (no To-header on input)
Subject: TAKE - get back some of the performance loss from the vnode changes
From: lord@xxxxxxx
Date: Tue, 6 Jun 2000 13:34:49 -0500
Sender: owner-linux-xfs@xxxxxxxxxxx
Putting the vnode into the linux inode made lots of stuff work such as
NFS exports, but it introduced more I/O into the code executed from the
user's thread when a file is deleted. This gets most of that loss back
again by making the teardown of the xfs inode async from the user's thread.
It also allows reuse of that inode structure should XFS decide to reuse the
same inode number before it is torn down.

Date:  Tue Jun  6 11:31:59 PDT 2000
Workarea:  jen.cray.com:/src/lord/xfs-linux

The following file(s) were checked into:
  bonnie.engr.sgi.com:/isms/slinx/2.3.99pre2-xfs


Modid:  2.3.99pre2-xfs:slinx:63404a
linux/fs/xfs/xfsidbg.c - 1.148
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/xfsidbg.c.diff?r1=text&tr1=1.148&r2=text&tr2=1.147&f=h
    - Use XFS_ITOV_NULL so we can cope with missing vnodes in debug code.

linux/fs/xfs/xfs_vnodeops.c - 1.456
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/xfs_vnodeops.c.diff?r1=text&tr1=1.456&r2=text&tr2=1.455&f=h
    - Break apart xfs_reclaim - flush all data during reclaim and then unlink
      the inode from the vnode. The xfs_finish_reclaim() function is called
      later to complete the teardown. This removes waiting for the log to go
      to disk from the delete path.

linux/fs/xfs/xfs_vfsops.c - 1.275
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/xfs_vfsops.c.diff?r1=text&tr1=1.275&r2=text&tr2=1.274&f=h
    - Add code to sync path to complete reclaim of inodes which have been
      deleted.

linux/fs/xfs/xfs_iget.c - 1.120
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/xfs_iget.c.diff?r1=text&tr1=1.120&r2=text&tr2=1.119&f=h
    - Change xfs_iget to recreate a vnode for inodes which have been deleted
      put not yet purged from the filesystem. This is closer to the irix way of
      doing things.

linux/fs/xfs/xfs_inode.c - 1.295
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/xfs_inode.c.diff?r1=text&tr1=1.295&r2=text&tr2=1.294&f=h
    - When unmounting a filesystem finish up the reclaim for inodes which do not
      have a vnode attached.

linux/fs/xfs/xfs_inode.h - 1.137
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/xfs_inode.h.diff?r1=text&tr1=1.137&r2=text&tr2=1.136&f=h
    - prototype for xfs_finish_reclaim, add XFS_ITOV_NULL() which can go from
      an xfs indoe to a vnode even when there is no vnode (returns NULL).

linux/fs/xfs/pseudo-inc/sys/vnode.h - 1.24
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/pseudo-inc/sys/vnode.h.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h
    - Define BHV_TO_VNODE_NULL so that we have a macro for getting a vnode from
      a behavior which will not trip an assert in debug kernels.

linux/fs/xfs/pseudo-inc/ksys/behavior.h - 1.8
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/pseudo-inc/ksys/behavior.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h
    - Turn on BHV_VOBJNULL and zero the virtual object pointer in a behavior
      when removing it from the chain.



<Prev in Thread] Current Thread [Next in Thread>
  • TAKE - get back some of the performance loss from the vnode changes, lord <=