From: Mark Fasheh <mfasheh@suse.com>
To: linux-kernel@vger.kernel.org
Cc: ocfs2-devel@oss.oracle.com, Joel Becker <joel.becker@oracle.com>
Subject: [git patches] Ocfs2 updates for 2.6.30
Date: Tue, 17 Mar 2009 13:00:50 -0700 [thread overview]
Message-ID: <1237320082-12921-1-git-send-email-mfasheh@suse.com> (raw)
Hi,
The following patches comprise the bulk of Ocfs2 updates for the
2.6.30 merge window. Aside from larger, more involved fixes, we're adding
the following features, which I will describe in the order their patches are
mailed.
Sunil's exported some more state to our debugfs files, and
consolidated some other aspects of our debugfs infrastructure. This will
further aid us in debugging Ocfs2 issues.
By leveraging our very flexible b-tree code, I was able to add
support for directory indexing. Indexed directories in Ocfs2 look like
regular directories, except they have an additional btree with records
indexed by name hash. This design means we get to keep the existing
POSIX-ness of our directory code, but operations like lookup get the
increased performance of a simple btree lookup.
Tao's contribution this cycle comes in the form of inode allocation
optimizations. These involved the usual heuristics - try to allocate inodes
close to their parent directory, remember which allocation group was
previously visited, etc. The resulting code yielded a 10x improvement on
some cold-cache stat workloads.
Finally, Sunil has turned the fs/ocfs2/dlm mastery list into a hash
table. This fixes some performance issues we had seen on large clusters with
very active mastery (typically, lots of unlinks, renames and creates).
--Mark
Please pull from 'upstream-merge_window' branch of
git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2.git upstream-merge_window
to receive the following updates:
fs/ocfs2/alloc.c | 57 +
fs/ocfs2/alloc.h | 3 +
fs/ocfs2/aops.c | 23 +-
fs/ocfs2/cluster/heartbeat.c | 96 ++-
fs/ocfs2/cluster/heartbeat.h | 3 +-
fs/ocfs2/cluster/nodemanager.c | 9 +-
fs/ocfs2/dir.c | 2806 ++++++++++++++++++++++++++++++++++++++--
fs/ocfs2/dir.h | 57 +-
fs/ocfs2/dlm/dlmcommon.h | 58 +-
fs/ocfs2/dlm/dlmdebug.c | 87 +-
fs/ocfs2/dlm/dlmdomain.c | 29 +-
fs/ocfs2/dlm/dlmmaster.c | 387 +++---
fs/ocfs2/dlm/dlmthread.c | 20 +-
fs/ocfs2/dlmglue.c | 46 +
fs/ocfs2/dlmglue.h | 2 +
fs/ocfs2/export.c | 84 ++-
fs/ocfs2/inode.c | 48 +-
fs/ocfs2/inode.h | 5 +
fs/ocfs2/journal.c | 173 +++-
fs/ocfs2/journal.h | 77 +-
fs/ocfs2/localalloc.c | 86 --
fs/ocfs2/namei.c | 250 ++--
fs/ocfs2/ocfs2.h | 76 +-
fs/ocfs2/ocfs2_fs.h | 136 ++-
fs/ocfs2/ocfs2_lockid.h | 4 +
fs/ocfs2/suballoc.c | 254 ++++-
fs/ocfs2/suballoc.h | 4 +
fs/ocfs2/super.c | 188 +++
fs/ocfs2/xattr.c | 8 +-
fs/ocfs2/xattr.h | 2 +-
30 files changed, 4389 insertions(+), 689 deletions(-)
Hisashi Hifumi (1):
ocfs2: Pagecache usage optimization on ocfs2
Mark Fasheh (9):
ocfs2: Introduce dir lookup helper struct
ocfs2: Add a name indexed b-tree to directory inodes
ocfs2: Store dir index records inline
ocfs2: Introduce dir free space list
ocfs2: Increase max links count
ocfs2: Add total entry count to dx_root_block
ocfs2: Enable indexed directories
ocfs2: re-order ocfs2_empty_dir checks
ocfs2: fix leaf start calculation in ocfs2_dx_dir_rebalance()
Srinivas Eeda (1):
ocfs2: recover orphans in offline slots during recovery and mount
Sunil Mushran (17):
ocfs2/hb: Expose the list of heartbeating nodes via debugfs
ocfs2: Move struct recovery_map to a header file
ocfs2: Expose the file system state via debugfs
ocfs2: Remove debugfs file local_alloc_stats
ocfs2/dlm: Encapsulate adding and removing of mle from dlm->master_list
ocfs2/dlm: Clean up struct dlm_lock_name
ocfs2/dlm: Refactor dlm_clean_master_list()
ocfs2/dlm: Create and destroy the dlm->master_hash
ocfs2/dlm: Activate dlm->master_hash for master list entries
ocfs2/dlm: Indent dlm_cleanup_master_list()
ocfs2/dlm: Track number of mles
ocfs2/dlm: Improve lockres counts
ocfs2/dlm: dlm_set_lockres_owner() and dlm_change_lockres_owner() inlined
ocfs2/dlm: Show the number of lockres/mles in dlm_state
ocfs2/dlm: Remove struct dlm_lock_name in struct dlm_master_list_entry
ocfs2/dlm: Do not purge lockres that is being migrated dlm_purge_lockres()
ocfs2/dlm: Tweak mle_state output
Tao Ma (3):
ocfs2: Optimize inode allocation by remembering last group
ocfs2: Allocate inode groups from global_bitmap.
ocfs2: Optimize inode group allocation by recording last used group.
wengang wang (1):
ocfs2: fix rare stale inode errors when exporting via nfs
--
Mark Fasheh
next reply other threads:[~2009-03-17 21:36 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-17 20:00 Mark Fasheh [this message]
2009-03-17 20:00 ` [PATCH 01/32] ocfs2/hb: Expose the list of heartbeating nodes via debugfs Mark Fasheh
2009-03-17 20:00 ` [PATCH 02/32] ocfs2: Move struct recovery_map to a header file Mark Fasheh
2009-03-17 20:00 ` [PATCH 03/32] ocfs2: Expose the file system state via debugfs Mark Fasheh
2009-03-17 20:00 ` [PATCH 04/32] ocfs2: Remove debugfs file local_alloc_stats Mark Fasheh
2009-03-17 20:00 ` [PATCH 05/32] ocfs2: Introduce dir lookup helper struct Mark Fasheh
2009-03-17 20:00 ` [PATCH 06/32] ocfs2: Add a name indexed b-tree to directory inodes Mark Fasheh
2009-03-17 20:00 ` [PATCH 07/32] ocfs2: Store dir index records inline Mark Fasheh
2009-03-17 20:00 ` [PATCH 08/32] ocfs2: Introduce dir free space list Mark Fasheh
2009-03-17 20:00 ` [PATCH 09/32] ocfs2: Increase max links count Mark Fasheh
2009-03-17 20:01 ` [PATCH 10/32] ocfs2: Add total entry count to dx_root_block Mark Fasheh
2009-03-17 20:01 ` [PATCH 11/32] ocfs2: Enable indexed directories Mark Fasheh
2009-03-17 20:01 ` [PATCH 12/32] ocfs2: re-order ocfs2_empty_dir checks Mark Fasheh
2009-03-17 20:01 ` [PATCH 13/32] ocfs2: fix leaf start calculation in ocfs2_dx_dir_rebalance() Mark Fasheh
2009-03-17 20:01 ` [PATCH 14/32] ocfs2: Optimize inode allocation by remembering last group Mark Fasheh
2009-03-17 20:01 ` [PATCH 15/32] ocfs2: Allocate inode groups from global_bitmap Mark Fasheh
2009-03-17 20:01 ` [PATCH 16/32] ocfs2: Optimize inode group allocation by recording last used group Mark Fasheh
2009-03-17 20:01 ` [PATCH 17/32] ocfs2/dlm: Encapsulate adding and removing of mle from dlm->master_list Mark Fasheh
2009-03-17 20:01 ` [PATCH 18/32] ocfs2/dlm: Clean up struct dlm_lock_name Mark Fasheh
2009-03-17 20:01 ` [PATCH 19/32] ocfs2/dlm: Refactor dlm_clean_master_list() Mark Fasheh
2009-03-17 20:01 ` [PATCH 20/32] ocfs2/dlm: Create and destroy the dlm->master_hash Mark Fasheh
2009-03-17 20:01 ` [PATCH 21/32] ocfs2/dlm: Activate dlm->master_hash for master list entries Mark Fasheh
2009-03-17 20:01 ` [PATCH 22/32] ocfs2/dlm: Indent dlm_cleanup_master_list() Mark Fasheh
2009-03-17 20:01 ` [PATCH 23/32] ocfs2/dlm: Track number of mles Mark Fasheh
2009-03-17 20:01 ` [PATCH 24/32] ocfs2/dlm: Improve lockres counts Mark Fasheh
2009-03-17 20:01 ` [PATCH 25/32] ocfs2/dlm: dlm_set_lockres_owner() and dlm_change_lockres_owner() inlined Mark Fasheh
2009-03-17 20:01 ` [PATCH 26/32] ocfs2/dlm: Show the number of lockres/mles in dlm_state Mark Fasheh
2009-03-17 20:01 ` [PATCH 27/32] ocfs2/dlm: Remove struct dlm_lock_name in struct dlm_master_list_entry Mark Fasheh
2009-03-17 20:01 ` [PATCH 28/32] ocfs2/dlm: Do not purge lockres that is being migrated dlm_purge_lockres() Mark Fasheh
2009-03-17 20:01 ` [PATCH 29/32] ocfs2/dlm: Tweak mle_state output Mark Fasheh
2009-03-17 20:01 ` [PATCH 30/32] ocfs2: fix rare stale inode errors when exporting via nfs Mark Fasheh
2009-03-17 20:01 ` [PATCH 31/32] ocfs2: Pagecache usage optimization on ocfs2 Mark Fasheh
2009-03-17 20:01 ` [PATCH 32/32] ocfs2: recover orphans in offline slots during recovery and mount Mark Fasheh
2009-04-03 18:46 [git patches] Ocfs2 updates for 2.6.30 Mark Fasheh
2009-04-03 19:13 ` Linus Torvalds
2009-04-03 19:17 ` Linus Torvalds
2009-04-03 20:34 ` Mark Fasheh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1237320082-12921-1-git-send-email-mfasheh@suse.com \
--to=mfasheh@suse.com \
--cc=joel.becker@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=ocfs2-devel@oss.oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®