This patch set is my attempt to make quota code more scalable. Main goal of this patch-set is to split global locking to per-sb basis. Actually it consists of several parts * Fixes : trivial fixes which i hope will be accepted w/o any complain * Splitup global locks: Imho this part clean and simple. I hope it is also a sane candidate for for_testing branch. * More scalability for single sb : Some of this patches was already submitted previously, some wasn't. This part is just my first vision of the way we can move. This way result in real speedup, but i'm not shure about design solutions, please do not punch me too strong if you dont like that direction. This patch-set survived after some stress testing * parallel quota{on,off} * fssress * triggering ENOSPC More info here: download.openvz.org/~dmonakhov/quota.html Changes from V2 * Move getfmt call to dquot (suggested by hch@) * Use global hash with per backet lock (suggested by viro@) * Protect dqget with SRCU to prevent race on quota_info ptr * Add dquot_init optimization * Remove data_lock for ocfs2 where possible. * I've remove dq_count optimization patch because it was buggy, and in fact it should belongs to another patch-set. * Bug fixes ** Fix deadlock on dquot transfer due to previous ENOSPC Changes from V1 * random fixes according to Jan's comments + fix spelling + fix deadlock on dquot_transfer, and lock_dep issues - list_lock patches split is still the same as before. * move quota data from sb to dedicated pointer. * Basic improvements fore per-sb scalability patch against 2.6.36-rc5, linux-fs-2.6.git for_testing branch <Out of tree patches from other developers> kernel: add bl_list <Cleanups and Fixes> quota: protect getfmt call with dqonoff_mutex lock quota: Wrap common expression to helper function <Split-up global locks> quota: protect dqget() from parallels quotaoff via SRCU quota: mode quota internals from sb to quota_info quota: Remove state_lock quota: add quota format lock quota: make dquot lists per-sb quota: optimize quota_initialize quota: user per-backet hlist lock for dquot_hash quota: remove global dq_list_lock <More scalability for single sb> quota: rename dq_lock quota: make per-sb dq_data_lock quota: protect dquot mem info with object's lock quota: drop dq_data_lock where possible quota: relax dq_data_lock dq_lock locking consistency quota: Some stylistic cleanup for dquot interface fs: add unlocked helpers quota: protect i_dquot with i_lock instead of dqptr_sem Signed-off-by: Dmitry Monakhov <dmonakhov@xxxxxxxxxx> --- Makefile | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/Makefile b/Makefile index 471c49f..4e7602b 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 36 -EXTRAVERSION = -rc6 +EXTRAVERSION = -rc6-quota NAME = Sheep on Meth # *DOCUMENTATION* -- 1.6.5.2 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html