diff options
author | David Chinner <dgc@sgi.com> | 2008-03-06 05:45:35 +0300 |
---|---|---|
committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-04-18 05:39:55 +0400 |
commit | 6ee4752ffe782be6e86bea1403a2fe0f682aa71a (patch) | |
tree | aea65e2a9f1f6ca5c3f8dd44b78c5a9dd5adaee3 /fs/xfs/support/ktrace.h | |
parent | 44d814ced4cffbfe6a775c5bb8b941a6e734e7d9 (diff) | |
download | linux-6ee4752ffe782be6e86bea1403a2fe0f682aa71a.tar.xz |
[XFS] Use atomic counters for ktrace buffer indexes
ktrace_enter() is consuming vast amounts of CPU time due to the use of a
single global lock for protecting buffer index increments. Change it to
use per-buffer atomic counters - this reduces ktrace_enter() overhead
during a trace intensive test on a 4p machine from 58% of all CPU time to
12% and halves test runtime.
SGI-PV: 977546
SGI-Modid: xfs-linux-melb:xfs-kern:30537a
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs/support/ktrace.h')
-rw-r--r-- | fs/xfs/support/ktrace.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/xfs/support/ktrace.h b/fs/xfs/support/ktrace.h index 56e72b40a859..782dbbb6a9d0 100644 --- a/fs/xfs/support/ktrace.h +++ b/fs/xfs/support/ktrace.h @@ -30,7 +30,7 @@ typedef struct ktrace_entry { */ typedef struct ktrace { int kt_nentries; /* number of entries in trace buf */ - int kt_index; /* current index in entries */ + atomic_t kt_index; /* current index in entries */ int kt_rollover; ktrace_entry_t *kt_entries; /* buffer of entries */ } ktrace_t; |