[Ocfs2-tools-commits] branch, for-review-20120111, created. ocfs2-tools-1.4.0-737-g76c9996

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Wed Jan 11 17:55:53 PST 2012


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Tools to manage the ocfs2 filesystem.".

The branch, for-review-20120111 has been created
        at  76c99961aa91838ae52bfee69011bf1682861e4c (commit)

- Log -----------------------------------------------------------------
commit 76c99961aa91838ae52bfee69011bf1682861e4c
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Tue Jan 10 16:31:01 2012 -0800

    test: Add mkfs-test.sh
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 4fd5a2f1e41c0d93a4c8b1ffcd4e996d8a627899
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Tue Jan 10 16:31:01 2012 -0800

    test: Add fsck-test.sh
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 6b5aba285bdb3dd5968cbd95d59c39e391f08c84
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Tue Jan 10 16:31:00 2012 -0800

    fsck.ocfs2: Fix EXTENT_CLUSTERS_OVERRUN
    
    While fixing EXTENT_CLUSTERS_OVERRUN, fsck was not recalculating the
    total number of clusters that the extent record was addressing.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 57d8d953d679bb93ab087ce39c6cfa2175e9d501
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Tue Jan 10 16:31:00 2012 -0800

    fswreck: Add more options to fswreck
    
    This patch adds more options to fswreck to make it easy to write a shell
    script to automate the testing.
    
    These params are:
    	-C <corrupt number>	=> Corrupt using a number
    	-L <corrupt number>	=> List corrupt code string
    	-M 			=> mkfs parameters
    	-N slotnum		=> Pass in a specific slotnum
    	-n			=> Print number of corrupt codes
    	-l			=> List all corrupt codes
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 90d1ef9844fe391ace7f878caf87af8dddce6e90
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Tue Jan 10 16:30:59 2012 -0800

    libocfs2: Remove error code OCFS2_ET_DIRENT_NOT_FOUND
    
    commit 3de2f0e3e643b6ee03c481f8e6ec3eba30f2a94e added error code
    OCFS2_ET_DIRENT_NOT_FOUND which appears the same as the existing error code
    OCFS2_ET_FILE_NOT_FOUND. The former was added as part of the support for indexed
    directories in tools.
    
    Having two error codes for the saem error is problematic because ocfs2_lookup()
    could return either of the two depending on whether indexing is enabled or not.
    While we could teach all the users to expect both errors, I see no advantage
    in that.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 6ab4daf164f264945422d71ff2499764170ef76c
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Tue Jan 10 16:30:59 2012 -0800

    fsck.ocfs2: Cleaned up the message for RECOVER_CLUSTER_INFO
    
    Reformatted the message printed for RECOVER_CLUSTER_INFO.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 91d90aa10b025798d2da3af77ef16458b8c94549
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Tue Jan 10 16:30:58 2012 -0800

    libocfs2: Fix ocfs2_set_cluster_desc()
    
    ocfs2_set_cluster_desc() sets the cluster stack information in the superblock
    and enables and disables the cluster related fs features.
    
    This patch cleans up this function to allow migrating between default, userspace,
    o2cb/local and o2cb/global.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit fb29ef3709c6455dbf7788b18e82266a509208d8
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Tue Jan 10 16:29:48 2012 -0800

    o2cluster: New utility to modify the cluster stack
    
    Currently the cluster stack on disk can only be stamped by tunefs.ocfs2.
    And that utility only stamps the active cluster stack. While this works
    well for pcmk and cman, this is problematic for o2cb as it uses the
    ocfs2 volumes as the heartbeat device. This leads us to some chicken
    and the egg problems.
    
    o2cluster allows updating the cluster stack to the one specified by
    the user. It also allows users to query the active stack and query the
    stack stamped on disk.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit c3d4d5198128ecc664db98e5d7586624672660cb
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Mon Jan 9 14:57:39 2012 -0800

    mkfs.ocfs2: Validate cluster stack info
    
    The cluster stack information was not being validated properly. This
    patch improves that and adds more helpful error messages.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 8891998b1665f564d6f75caf67cb972b164c4ad8
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Mon Jan 9 14:57:39 2012 -0800

    mkfs.ocfs2: Add --dry-run to usage()
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 6fd0a9e7005d83d9e1b4ed40b53fecb09544209f
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Mon Jan 9 14:57:38 2012 -0800

    o2cbtool: Return code fixed
    
    The return code has been fixed. It now returns 1 if error, 0 if ok.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit a158b327b2c1be27e46ac98ce5ff6b9a7c9c7720
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Mon Jan 9 14:56:35 2012 -0800

    libo2cb: Tweak the description of two error messages
    
    Made the descriptions for errors O2CB_ET_INVALID_STACK_NAME and
    O2CB_ET_INVALID_HEARTBEAT_MODE more generic. Users can append additional
    information in the error string.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit b24f7fe0b6bf416f6e6e35a1c2009e02b09b8543
Author: Goldwyn Rodrigues <rgoldwyn at gmail.com>
Date:   Fri Dec 9 13:39:31 2011 -0800

    Fix directory entry handling in big endian archs
    
    dir_trailer_func() and ocfs2_dx_dir_search() reads the dir blocks directly
    instead of using ocfs2_read_dir_block(). It does not swap the directory
    entries before using. Fix.
    
    Also, use the correct function for swapping some of directory structure
    variables.
    
    Signed-off-by: Goldwyn Rodrigues <rgoldwyn at suse.de>
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 10cac08b62f82e2a203d0667ac1ddf62213120d8
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Fri Dec 9 13:38:31 2011 -0800

    fsck.ocfs2: Print minutes in the timing stats
    
    The timing stats prints the minutes for readability.
    
    Before:
      Times real: 1299.972s, user: 113.660s, sys: 12.690s
    
    After:
      Times real: 21m39.972s, user: 1m53.660s, sys: 0m12.690s
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 189afe35fad6fd44900a9bed04dcedc17d1e8185
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Fri Dec 9 13:38:30 2011 -0800

    fsck.ocfs2: Add readahead in Pass 2
    
    This patch adds code to readahead directory blocks in pass 2. It reads upto
    1024 blocks. Those blocks are then verified after which the utility reads
    another 1024 blocks. And so on. This scheme prevents blowing up the cache.
    
    What this does not as yet do is pre-read the directory index blocks and the
    inodes specified in the directory block. TODO.
    
    The test was run on a 2TB volume having 15M files. The cache size was 820MB.
    
    Pass 2: Checking directory entries
    
    Before:
      I/O read disk/cache: 3897MB / 131MB, write: 0MB, rate: 2.84MB/s
      Times real: 1416.929s, user: 124.587s, sys: 17.412s
    
    After:
      I/O read disk/cache: 3902MB / 3937MB, write: 0MB, rate: 25.82MB/s
      Times real: 303.600s, user: 95.781s, sys: 13.443s
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit e369a18cc4624af0f7a3dbb7e65fdf7fc74a6595
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Fri Dec 9 13:38:30 2011 -0800

    libocfs2: Improve performance of ocfs2_load_allocator()
    
    ocfs2_load_allocator() calls ocfs2_cache_chain_allocator_blocks()
    to preread the chained groups. Its impact on fsck performance is
    negligible.
    
    However it is expected to have a big impact on other tools that load
    the allocators. Especially mkfs. But for that we have to first bump
    up its cache size from a default of 8MB.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 4ae68c565199fc1df37b67407c62bb71d0fd7a29
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Fri Dec 9 13:38:29 2011 -0800

    fsck.ocfs2: Improve performance of Pass 0
    
    In Pass 0, fsck reads and verifies all the chain allocators. This patch improves
    the performance of this pass by making use of ocfs2_cache_chain_allocator_blocks()
    to read in all the chained groups before verifying the contents of those groups.
    
    The test was run on a 2TB volume having 15M files. The cache size was 820MB.
    
    Before:
    Pass 0a: Checking cluster allocation chains
      I/O read disk/cache: 66MB / 1MB, write: 0MB, rate: 0.68MB/s
      Times real: 97.061s, user: 0.251s, sys: 0.278s
    Pass 0b: Checking inode allocation chains
      I/O read disk/cache: 64MB / 127MB, write: 0MB, rate: 2.64MB/s
      Times real: 71.872s, user: 1.571s, sys: 0.499s
    Pass 0c: Checking extent block allocation chains
      I/O read disk/cache: 3MB / 1MB, write: 0MB, rate: 1.60MB/s
      Times real: 1.878s, user: 0.043s, sys: 0.008s
    
    After:
    Pass 0a: Checking cluster allocation chains
      I/O read disk/cache: 66MB / 66MB, write: 0MB, rate: 10.58MB/s
      Times real: 12.377s, user: 0.260s, sys: 0.182s
    Pass 0b: Checking inode allocation chains
      I/O read disk/cache: 64MB / 190MB, write: 0MB, rate: 32.40MB/s
      Times real: 7.808s, user: 1.279s, sys: 0.337s
    Pass 0c: Checking extent block allocation chains
      I/O read disk/cache: 3MB / 3MB, write: 0MB, rate: 20.33MB/s
      Times real: 0.246s, user: 0.036s, sys: 0.004s
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit d5a13afe2e15f88b69d31ffc7e7d778fccb09b7e
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Fri Dec 9 13:38:28 2011 -0800

    libocfs2: Read the chain allocator efficiently
    
    As the chain allocators are not linked in an ascending block number order,
    reading it is a very seeky affair. This is a huge performance bottleneck in
    various tools that have to load the allocators.
    
    This patch adds public function ocfs2_cache_chain_allocator_blocks() in libocfs2
    to read the chained groups efficiently and warm the cache with the blocks.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit e60004c1fccaef33a695d71bf386996eee477f1a
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Fri Dec 9 13:38:27 2011 -0800

    libocfs2: Add iovec read support
    
    Added public function io_vec_read_blocks() that performs vectored reads on the
    provided set of blocks. It is io cache friendly. One use case is to use this
    to warm the cache, which has proven to be very useful in fsck.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit d2ab3689b022e978ab0b7bb53062ae7baddd6aa3
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Fri Dec 9 13:38:26 2011 -0800

    libocfs2: Increase the buffer size in ocfs2_open_inode_scan()
    
    ocfs2_open_inode_scan() is used by utilities that are looking to read all
    the inodes. This patch increases the buffer from one cluster to 4MB to improve
    the performance of pass 1 in fsck.
    
    The test was run on a 2TB volume having 15M files. The cache size was 820MB.
    
    Pass 1: Checking inodes and blocks
    
    Before:
      I/O read disk/cache: 64698MB / 66MB, write: 0MB, rate: 17.15MB/s
      Times real: 3775.640s, user: 218.995s, sys: 55.703s
    
    After:
      I/O read disk/cache: 64698MB / 66MB, write: 0MB, rate: 37.28MB/s
      Times real: 1737.086s, user: 193.295s, sys: 25.405s
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit ba80950af7b52a8b15b71901497bc74916cf88eb
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Fri Dec 9 13:38:26 2011 -0800

    fsck.ocfs2: Add progress in Passes 1 and 2
    
    Both inode scanning (pass 1) and directory scanning (pass 2) can take
    a considerable amount of time. This patch adds progress to the two passes.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 6fb4003f9e2f417299d34861840ce3286d05c19c
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Fri Dec 9 13:38:25 2011 -0800

    libtools: Make tools_progress_enabled() public
    
    tools_progress_enabled() is a useful function. Making it public.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 74a6b6df65d3704601d3a5fa11426537f42bc354
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Fri Dec 9 13:38:24 2011 -0800

    fsck.ocfs2: Extend struct _o2fsck_dirblocks
    
    Extend struct _o2fsck_dirblocks to track the total number of directory blocks
    that are referenced by the tree.
    
    This will be used to provide progress in Pass 2 of fsck.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 7556b27460d3733dfdc741fca3146e224d442b1a
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Fri Dec 9 13:38:23 2011 -0800

    libocfs2: Add function ocfs2_get_max_inode_count()
    
    Add function ocfs2_get_max_inode_count() in the inode scan interface.
    This function computes the maximum number of inodes that can be created
    in the file system without extending the allocator.
    
    This will be used to provide progress in Pass 1 of fsck.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit 1e121471e89d51ba6c59d5b4d24ad398aefc5f4f
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Fri Dec 9 13:38:22 2011 -0800

    fsck.ocfs2: Reverse earlier commits wrt pre-caching
    
    This patch reverses three earlier commits. This has been done because the
    information gleaned from the added statistics show a significant performance
    hit when the file system metadata is larger than the cache size.
    
    The test was run on a 2TB volume having 15M files. The cache size was 820MB.
    
    Before:
      I/O read disk/cache: 138736MB / 793MB, write: 0MB, rate: 17.46MB/s
      Times real: 7989.577s, user: 430.803s, sys: 110.852s
    
    After:
      I/O read disk/cache: 68724MB / 261MB, write: 0MB, rate: 12.65MB/s
      Times real: 5452.819s, user: 368.226s, sys: 73.978s
    
    Later patches will address the performance issue using mostly pre-caching but
    done slightly differently.
    
    The patches reversed (mostly) are:
    
    commit 7fd354d5bd63370316088267fb9832800f4c9b53
    fsck.ocfs2: Pre-fill the I/O cache with metadata.
    
    commit 69223be5af7868605c5d681ad64ccf63838f4858
    fsck.ocfs2: Pre-cache inodes in reverse order.
    
    commit 1fa5d9dea32caf99efb4e0811a48655f24938468
    fsck.ocfs2: Pre-cache dirblocks before we go through them.
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

commit bbe429c50f6e54573d2f3184be20bd0e836eff16
Author: Sunil Mushran <sunil.mushran at oracle.com>
Date:   Fri Dec 9 13:38:07 2011 -0800

    fsck.ocfs2: Track and show statistics
    
    Patch adds the capability to track statistics. This includes counting
    the numbers of files and directories, bytes read/written from disk/cache,
    time taken, etc.
    
    The stats are not printed by default. The consolidated stats are printed
    by specifying -t. Per pass stats are printed by specifying -tt.
    
    The extended stats looks like:
    
    Checking OCFS2 filesystem in /dev/sdd1:
      Label:              mylabel
      UUID:               8AB016CD59FC4327A2CDAB69F08518E3
      Number of blocks:   13107168
      Block size:         4096
      Number of clusters: 409599
      Cluster size:       131072
      Number of slots:    8
    
    /dev/sdd1 was run with -f, check forced.
    Pass 0a: Checking cluster allocation chains
      I/O read disk/cache: 1MB / 1MB, write: 0MB, rate: 4.46MB/s
      Times real: 0.224s, user: 0.000s, sys: 0.000s
    Pass 0b: Checking inode allocation chains
      I/O read disk/cache: 1463MB / 4MB, write: 0MB, rate: 30.09MB/s
      Times real: 48.727s, user: 3.300s, sys: 0.480s
    Pass 0c: Checking extent block allocation chains
      I/O read disk/cache: 65MB / 1MB, write: 0MB, rate: 32.21MB/s
      Times real: 2.018s, user: 0.150s, sys: 0.010s
    Pass 1: Checking inodes and blocks
      I/O read disk/cache: 1334MB / 129MB, write: 0MB, rate: 60.47MB/s
      Times real: 24.193s, user: 5.150s, sys: 1.170s
    Pass 2: Checking directory entries
      I/O read disk/cache: 106MB / 682MB, write: 0MB, rate: 52.38MB/s
      Times real: 15.044s, user: 4.350s, sys: 0.440s
    Pass 3: Checking directory connectivity
      I/O read disk/cache: 0MB / 1MB, write: 0MB, rate: 134.92MB/s
      Times real: 0.007s, user: 0.010s, sys: 0.000s
    Pass 4a: Checking for orphaned inodes
      I/O read disk/cache: 0MB / 1MB, write: 0MB, rate: 2150.54MB/s
      Times real: 0.000s, user: 0.000s, sys: 0.000s
    Pass 4b: Checking inodes link counts
      I/O read disk/cache: 0MB / 0MB, write: 0MB, rate: 0.00MB/s
      Times real: 0.366s, user: 0.360s, sys: 0.000s
    All passes succeeded.
    
      Cache size: 199MB
      I/O read disk/cache: 2966MB / 815MB, write: 0MB, rate: 41.73MB/s
      Times real: 90.580s, user: 13.320s, sys: 2.100s
    
      # of inodes with depth 0/1/2/3/4/5: 188418/0/0/0/0/0
      # of orphaned inodes found/deleted: 0/0
    
          350177 regular files (161871 inlines, 4 reflinks)
           21903 directories (21757 inlines)
               0 character device files
               0 block device files
               0 fifos
               1 link
              10 symbolic links (10 fast symbolic links)
               0 sockets
    
    Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>

-----------------------------------------------------------------------


hooks/post-receive
-- 
Tools to manage the ocfs2 filesystem.



More information about the Ocfs2-tools-commits mailing list