xfs
[Top] [All Lists]

Re: [PATCH 3/7] XFS: Refactor node format directory lookup/addname

To: "Barry Naujok" <bnaujok@xxxxxxx>, "Josef 'Jeff' Sipek" <jeffpc@xxxxxxxxxxxxxx>
Subject: Re: [PATCH 3/7] XFS: Refactor node format directory lookup/addname
From: "Barry Naujok" <bnaujok@xxxxxxx>
Date: Thu, 03 Apr 2008 14:10:38 +1000
Cc: xfs@xxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx
In-reply-to: <op.t80n83u33jf8g2@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Organization: SGI
References: <20080402062508.017738664@xxxxxxxxxxxxxxxxxxxxxxx> <20080402062708.380299192@xxxxxxxxxxxxxxxxxxxxxxx> <20080403015122.GE5211@xxxxxxxxxxxxxx> <op.t80n83u33jf8g2@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Opera Mail/9.24 (Win32)
On Thu, 03 Apr 2008 14:04:05 +1000, Barry Naujok <bnaujok@xxxxxxx> wrote:

On Thu, 03 Apr 2008 11:51:22 +1000, Josef 'Jeff' Sipek <jeffpc@xxxxxxxxxxxxxx> wrote:

+static int
+xfs_dir2_leafn_lookup_for_entry(
+       xfs_dabuf_t             *bp,            /* leaf buffer */
+       xfs_da_args_t           *args,          /* operation arguments */
+       int                     *indexp,        /* out: leaf entry index */
+       xfs_da_state_t          *state)         /* state to fill in */
+{
+       xfs_dabuf_t             *curbp;         /* current data/free buffer */
+       xfs_dir2_db_t           curdb;          /* current data block number */
+       xfs_dir2_data_entry_t   *dep;           /* data block entry */
+       xfs_inode_t             *dp;            /* incore directory inode */
+       int                     error;          /* error return value */
+       int                     index;          /* leaf entry index */
+       xfs_dir2_leaf_t         *leaf;          /* leaf structure */
+       xfs_dir2_leaf_entry_t   *lep;           /* leaf entry */
+       xfs_mount_t             *mp;            /* filesystem mount point */
+       xfs_dir2_db_t           newdb;          /* new data block number */
+       xfs_trans_t             *tp;            /* transaction pointer */
+       xfs_dacmp_t             cmp;            /* comparison result */
+       xfs_dabuf_t             *ci_bp = NULL;  /* buffer with CI match */

Did you try to check the stack usage (scripts/checkstack.pl)?

on x86_64:

nameops.patch
   -> no difference

ascii_ci.patch
   -> no difference

refactor_leafn_lookup.patch (this one)
   -> no difference

return_name.patch
   -> xfs_dir_lookup from 152 down to 144 :)

unicode_ci.patch
   -> xfs_mkdir from 152 down to 136 :)
   -> new xfs_unicode_read_cft @ 120

nls_support.patch
   -> xfs_dir2_leaf_getdents from 136 up to 200 (ouch!)

BTW. The CONFIG_XFS_UNICODE_NLS patch, setting that to "N"
brings this back to 136 and no other changes.

   -> xfs_mkdir from 136 back to 152!
   -> xfs_create from 152 up to 168
   -> xfs_rmdir from 104 down to < 100?

This seems to be better than the stack usage Eric posted back in
response to my last patch set.








<Prev in Thread] Current Thread [Next in Thread>