On Thu, 11 Nov 2010 15:14:19 +0300, Dmitry Monakhov <dmonakhov@xxxxxxxxxx> wrote: Ping. Jan can you please take a look at the series. > 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