linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/19] quota: RFC SMP improvements for generic quota V2
@ 2010-10-22 17:34 Dmitry Monakhov
  2010-10-22 17:34 ` [PATCH 01/19] quota: protect getfmt call with dqonoff_mutex lock Dmitry Monakhov
                   ` (18 more replies)
  0 siblings, 19 replies; 28+ messages in thread
From: Dmitry Monakhov @ 2010-10-22 17:34 UTC (permalink / raw)
  To: linux-fsdevel; +Cc: jack, hch, Dmitry Monakhov

 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

Performance: I've prepared some basic benchmarks results
             http://download.openvz.org/~dmonakhov/docs/quota/quota-v2.html

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
<Fixes>
      quota: protect getfmt call with dqonoff_mutex lock
<Splitup global locks>
      quota: Wrap common expression to  helper function
      quota: mode quota internals from sb to quota_info
      quota: Convert dq_state_lock to per-sb dq_state_lock
      quota: add quota format lock
      quota: make dquot lists per-sb
      quota: make per-sb hash array
      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: protect dqget() from parallels quotaoff via RCU
      quota: remove dq_state_lock
      fs: add unlocked helpers
      quota: Some stylistic cleanup for dquot interface
      quota: remove dqptr_sem
      quota: redesign dquot reference counting


^ permalink raw reply	[flat|nested] 28+ messages in thread
* [PATCH 00/19] quota: RFC SMP improvements for generic quota V3
@ 2010-11-11 12:14 Dmitry Monakhov
  2010-11-11 12:14 ` [PATCH 01/19] quota: protect getfmt call with dqonoff_mutex lock Dmitry Monakhov
  0 siblings, 1 reply; 28+ messages in thread
From: Dmitry Monakhov @ 2010-11-11 12:14 UTC (permalink / raw)
  To: linux-fsdevel; +Cc: jack, hch, Dmitry Monakhov

 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@openvz.org>
---
 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


^ permalink raw reply related	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2010-12-02 11:40 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-22 17:34 [PATCH 00/19] quota: RFC SMP improvements for generic quota V2 Dmitry Monakhov
2010-10-22 17:34 ` [PATCH 01/19] quota: protect getfmt call with dqonoff_mutex lock Dmitry Monakhov
2010-10-28 14:27   ` Christoph Hellwig
2010-10-22 17:34 ` [PATCH 02/19] quota: Wrap common expression to helper function Dmitry Monakhov
2010-10-22 17:34 ` [PATCH 03/19] quota: mode quota internals from sb to quota_info Dmitry Monakhov
2010-10-22 17:34 ` [PATCH 04/19] quota: Convert dq_state_lock to per-sb dq_state_lock Dmitry Monakhov
2010-10-22 17:34 ` [PATCH 05/19] quota: add quota format lock Dmitry Monakhov
2010-10-22 17:34 ` [PATCH 06/19] quota: make dquot lists per-sb Dmitry Monakhov
2010-10-22 17:34 ` [PATCH 07/19] quota: make per-sb hash array Dmitry Monakhov
2010-10-27 19:31   ` Al Viro
2010-10-28 10:58     ` Dmitry
2010-10-22 17:34 ` [PATCH 08/19] quota: remove global dq_list_lock Dmitry Monakhov
2010-10-22 17:34 ` [PATCH 09/19] quota: rename dq_lock Dmitry Monakhov
2010-10-22 17:34 ` [PATCH 10/19] quota: make per-sb dq_data_lock Dmitry Monakhov
2010-10-26 17:38   ` Dmitry
2010-10-22 17:34 ` [PATCH 11/19] quota: protect dquot mem info with object's lock Dmitry Monakhov
2010-10-22 17:34 ` [PATCH 12/19] quota: drop dq_data_lock where possible Dmitry Monakhov
2010-10-22 17:34 ` [PATCH 13/19] quota: relax dq_data_lock dq_lock locking consistency Dmitry Monakhov
2010-10-22 17:34 ` [PATCH 14/19] quota: protect dqget() from parallels quotaoff via RCU Dmitry Monakhov
2010-10-22 17:35 ` [PATCH 15/19] quota: remove dq_state_lock Dmitry Monakhov
2010-10-22 17:35 ` [PATCH 16/19] fs: add unlocked helpers Dmitry Monakhov
2010-10-22 17:35 ` [PATCH 17/19] quota: Some stylistic cleanup for dquot interface Dmitry Monakhov
2010-10-22 17:35 ` [PATCH 18/19] quota: remove dqptr_sem Dmitry Monakhov
2010-10-22 17:35 ` [PATCH 19/19] quota: redesign dquot reference counting Dmitry Monakhov
  -- strict thread matches above, loose matches on Subject: below --
2010-11-11 12:14 [PATCH 00/19] quota: RFC SMP improvements for generic quota V3 Dmitry Monakhov
2010-11-11 12:14 ` [PATCH 01/19] quota: protect getfmt call with dqonoff_mutex lock Dmitry Monakhov
2010-11-11 13:36   ` Christoph Hellwig
2010-11-22 19:35   ` Jan Kara
2010-12-02 11:40     ` Dmitry

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).