xfs
[Top] [All Lists]

TAKE - make xfs's in memory extents host byte ordered

To: linux-xfs@xxxxxxxxxxx
Subject: TAKE - make xfs's in memory extents host byte ordered
From: Steve Lord <lord@xxxxxxx>
Date: Thu, 10 Oct 2002 14:09:51 -0500
Sender: linux-xfs-bounce@xxxxxxxxxxx
Switch xfs from using a big endian internal representation for
the in memory copy of extents to a host byte order representation.
The internal extents are read in once, then modified seperately
from the on disk ones. Since we search and manipulate the extents
multiple times, it is cheaper to convert them to host byte order
once and then keep them in that format. Worth about 5 to 10%
reduction in cpu time for some loads. Complicated by the fact
that the in memory extents are written out to the log sometimes,
and when expanding extents are used to write out the initial
block of extents.

There is no on disk format change here.

Steve


Date:  Thu Oct 10 12:09:44 PDT 2002
Workarea:  jen.americas.sgi.com:/src/lord/xfs-vanilla

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


Modid:  2.4.x-xfs:slinx:129646a
linux/fs/xfs/xfsidbg.c - 1.204
        - use disk based extent functions

linux/fs/xfs/xfs_inode_item.c - 1.105
        - when formating an inode item with extents in the inode, endian
          flip the extents before they go out to the log. Doing this here
          rather than in recovery avoids us having to version the log.

linux/fs/xfs/xfs_inode_item.h - 1.40
        - extend inode_item structure to contain an attribute extents buffer

linux/fs/xfs/xfs_bmap_btree.h - 1.53
        - prototypes for disk format extent functions

linux/fs/xfs/xfs_bmap_btree.c - 1.127
        - define and use different bmbt functions depending on if we are
          manipulating disk or host byte ordered extents. Only define the
          second set of functions as different if we are on a little endian
          host.

linux/fs/xfs/xfs_btree.c - 1.100
        - use disk format extent functions

linux/fs/xfs/xfs_inode.c - 1.354
        - in xfs_iformat_extents and xfs_iextents_copy, do endian conversion

linux/fs/xfs/xfs_inode.h - 1.172
        - prototype change

linux/fs/xfs/xfs_bmap.c - 1.294
        - endian flip extents when reading in from disk, and when
          going from in inode extents to a leaf block of extents.



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