| From: |
| Dmitry Monakhov <dmonakhov@openvz.org> |
| To: |
| linux-fsdevel@vger.kernel.org |
| Subject: |
| [PATCH 00/19] quota: RFC SMP improvements for generic quota V2 |
| Date: |
| Fri, 22 Oct 2010 21:34:45 +0400 |
| Message-ID: |
| <1287768904-27810-1-git-send-email-dmonakhov@openvz.org> |
| Cc: |
| jack@suse.cz, hch@infradead.org,
Dmitry Monakhov <dmonakhov@openvz.org> |
| Archive‑link: | |
Article |
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...
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
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html