xfs
[Top] [All Lists]

TAKE - reduce synchronous transaction use in xfs

To: linux-xfs@xxxxxxxxxxx
Subject: TAKE - reduce synchronous transaction use in xfs
From: Steve Lord <lord@xxxxxxx>
Date: Fri, 15 Feb 2002 14:55:04 -0600
Sender: owner-linux-xfs@xxxxxxxxxxx
This removes the synchronous transactions from the delete path in
XFS. This work was mostly done by Glen Overby, I am just putting 
the code into the Linux tree here.

I have been running this code on my workstation for several weeks without
problems, it has also been in pretty much every kernel I have run stress
tests on for the last month, it appears very solid now.

This was long thought to be the sole cause of slower delete speed in
XFS, this turns out not to be the case, it does help delete speed, but
if you go and delete 30000 files in one go it will not make a large
difference for you. That issue is the next thing being tackled.

This will certainly help SOME of the cases of files full of NULLs
after a crash as one way this happened was a synchronous transaction
forcing an inode modification out to the disk with a new size before
the data was written out.

Steve

Date:  Fri Feb 15 12:47:53 PST 2002
Workarea:  jen.americas.sgi.com:/src/lord/xfs-linux.2.4

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


Modid:  2.4.x-xfs:slinx:111915a
linux/fs/xfs/xfsidbg.c - 1.172
        - Add dumping of new perag structures

linux/fs/xfs/xfs_ag.h - 1.41
        - Add a per-AG busy list (xfs_perag_busy_t).

linux/fs/xfs/xfs_trans_priv.h - 1.18
        - Prototypes for busy list management.

linux/fs/xfs/xfs_trans_item.c - 1.29
        - Transaction busy list management (add, free).

linux/fs/xfs/xfs_mount.c - 1.269
        - Break up perag structure allocation - it gets too large for big 
filesystems
          with the new code.

linux/fs/xfs/xfs_inode.c - 1.326
        - Remove setting of synchronous transactions where they can be replaced
          by using the busy list.

linux/fs/xfs/xfs_trans.c - 1.129
        - Add to each transaction a list of per-AG busy list entries.  When the
          transaction commits, clear those entries.

linux/fs/xfs/xfs_trans.h - 1.110
        - Add to the transaction structure a list of per-AG busy list entries.

linux/fs/xfs/xfs_alloc.c - 1.145
        - er-AG busy list management.  Search per-AG busy list on allocation,
          remove setting of synchronous transactions where the busy list will
          take over.  Mark removed blocks in the busy list.

linux/fs/xfs/xfs_alloc.h - 1.50
        - Prototypes for per-AG busy list management & busy list ktrace 
definitions.

linux/fs/xfs/xfs_bmap.c - 1.280
        - Remove setting of synchronous transactions where they can be replaced
          by using the busy list.



<Prev in Thread] Current Thread [Next in Thread>
  • TAKE - reduce synchronous transaction use in xfs, Steve Lord <=