[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