xfs
[Top] [All Lists]

TAKE 972753 - Fix inode allocation latency

To: sgi.bugs.xfs@xxxxxxxxxxxx
Subject: TAKE 972753 - Fix inode allocation latency
From: dgc@xxxxxxx (David Chinner)
Date: Fri, 2 Nov 2007 13:35:47 +1100 (EST)
Cc: xfs@xxxxxxxxxxx
Sender: xfs-bounce@xxxxxxxxxxx
Fix inode allocation latency

The log force added in xfs_iget_core() has been a performance
issue since it was introduced for tight loops that allocate
then unlink a single file. under heavy writeback, this can
introduce unnecessary latency due tothe log I/o getting
stuck behind bulk data writes.

Fix this latency problem by avoinding the need for the log
force by moving the place we mark linux inode dirty to the
transaction commit rather than on transaction completion.

This also closes a potential hole in the sync code where a
linux inode is not dirty between the time it is modified and
the time the log buffer has been written to disk.

Date:  Fri Nov  2 13:35:27 AEDT 2007
Workarea:  chook.melbourne.sgi.com:/build/dgc/isms/2.6.x-xfs
Inspected by:  hch@xxxxxxxxxxxxx

The following file(s) were checked into:
  longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb


Modid:  xfs-linux-melb:xfs-kern:30007a
fs/xfs/xfs_inode_item.c - 1.132 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode_item.c.diff?r1=text&tr1=1.132&r2=text&tr2=1.131&f=h
        - Remove the need to mark the linux inode dirty in xfs_iunpin by marking
          it dirty during transaction commit.

fs/xfs/xfs_iget.c - 1.237 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iget.c.diff?r1=text&tr1=1.237&r2=text&tr2=1.236&f=h
        - Remove the need to force the log on pinned inode reuse by making sure
          we never need to touch the linux inode during transaction completion.

fs/xfs/xfs_inode.c - 1.485 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.485&r2=text&tr2=1.484&f=h
        - Remove the need to mark the linux inode dirty in xfs_iunpin by marking
          it dirty during transaction commit.

fs/xfs/xfs_inode.h - 1.237 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.h.diff?r1=text&tr1=1.237&r2=text&tr2=1.236&f=h
        - Remove the need to mark the linux inode dirty in xfs_iunpin by marking
          it dirty during transaction commit.

fs/xfs/linux-2.6/xfs_iops.c - 1.267 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_iops.c.diff?r1=text&tr1=1.267&r2=text&tr2=1.266&f=h
        - Remove the need to mark the linux inode dirty in xfs_iunpin by marking
          it dirty during transaction commit.



<Prev in Thread] Current Thread [Next in Thread>
  • TAKE 972753 - Fix inode allocation latency, David Chinner <=