[XFS] Use power-of-2 sized buffers to reduce overhead
authorDavid Chinner <dgc@sgi.com>
Thu, 6 Mar 2008 02:45:43 +0000 (13:45 +1100)
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>
Fri, 18 Apr 2008 01:40:04 +0000 (11:40 +1000)
commitd234154125197053d5215711b5df867979e55ebd
tree366a6ff91b514a8f9846ac82926e0bbfd0a1fbed
parent6ee4752ffe782be6e86bea1403a2fe0f682aa71a
[XFS] Use power-of-2 sized buffers to reduce overhead

Now that the ktrace_enter() code is using atomics, the non-power-of-2
buffer sizes - which require modulus operations to get the index - are
showing up as using substantial CPU in the profiles.

Force the buffer sizes to be rounded up to the nearest power of two and
use masking rather than modulus operations to convert the index counter to
the buffer index. This reduces ktrace_enter overhead to 8% of a CPU time,
and again almost halves the trace intensive test runtime.

SGI-PV: 977546
SGI-Modid: xfs-linux-melb:xfs-kern:30538a

Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
fs/xfs/support/ktrace.c
fs/xfs/support/ktrace.h