This series improves handling of large number of dquots. It replaced
the direct recycling of dquots from the freelist with a shrinker, removes
the upper bound of dquots, and uses per-filesystem structures for all
quota state, including switching from a hash to a radix-tree for lookups.
For repeated lookups of dquots out of a large pool I see improvements
betwen 50% and 500% compared to the previous code. All these tests
have been performed with Q_XQUOTASYNC already disabled as it would
change the result to much for both the old and new code.
Note that the first patch probably is a candidate for Linux 3.3, as
the previous quota updates caused a lock order reversal in the old
quota reclaim code. See the actual patch for more details.
|