From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Subject: Re: [PATCH 00/19] quota: RFC SMP improvements for generic quota V3 Date: Fri, 19 Nov 2010 08:44:22 +0300 Message-ID: <87wro9sw95.fsf@dmon-lap.sw.ru> References: <1289477678-5669-1-git-send-email-dmonakhov@openvz.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: jack@suse.cz To: linux-fsdevel@vger.kernel.org Return-path: Received: from mail-ey0-f174.google.com ([209.85.215.174]:55727 "EHLO mail-ey0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751109Ab0KSFo3 (ORCPT ); Fri, 19 Nov 2010 00:44:29 -0500 Received: by eye27 with SMTP id 27so2504816eye.19 for ; Thu, 18 Nov 2010 21:44:28 -0800 (PST) In-Reply-To: <1289477678-5669-1-git-send-email-dmonakhov@openvz.org> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Thu, 11 Nov 2010 15:14:19 +0300, Dmitry Monakhov 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 > > kernel: add bl_list > > quota: protect getfmt call with dqonoff_mutex lock > quota: Wrap common expression to helper function > > 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 > > 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 > --- > 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 >