diff options
| author | Davidlohr Bueso <dave@stgolabs.net> | 2014-09-11 23:40:20 -0400 |
|---|---|---|
| committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2014-09-16 16:41:05 -0400 |
| commit | 1e6757a92189278c484799ea98fc69bdc528940e (patch) | |
| tree | 434aee0cfb1b22a6900f152c4aba1be5127dde95 /kernel/locking | |
| parent | f095bfc0ea04829d6962edaf06a5c56e0c251f5b (diff) | |
locktorture: Make statistics generic
The statistics structure can serve well for both reader and writer
locks, thus simply rename some fields that mention 'write' and leave
the declaration of lwsa.
Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/locking')
| -rw-r--r-- | kernel/locking/locktorture.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/kernel/locking/locktorture.c b/kernel/locking/locktorture.c index a6049fa2287e..de703a769c1d 100644 --- a/kernel/locking/locktorture.c +++ b/kernel/locking/locktorture.c | |||
| @@ -78,11 +78,11 @@ static struct task_struct **writer_tasks; | |||
| 78 | static int nrealwriters_stress; | 78 | static int nrealwriters_stress; |
| 79 | static bool lock_is_write_held; | 79 | static bool lock_is_write_held; |
| 80 | 80 | ||
| 81 | struct lock_writer_stress_stats { | 81 | struct lock_stress_stats { |
| 82 | long n_write_lock_fail; | 82 | long n_lock_fail; |
| 83 | long n_write_lock_acquired; | 83 | long n_lock_acquired; |
| 84 | }; | 84 | }; |
| 85 | static struct lock_writer_stress_stats *lwsa; | 85 | static struct lock_stress_stats *lwsa; /* writer statistics */ |
| 86 | 86 | ||
| 87 | #if defined(MODULE) | 87 | #if defined(MODULE) |
| 88 | #define LOCKTORTURE_RUNNABLE_INIT 1 | 88 | #define LOCKTORTURE_RUNNABLE_INIT 1 |
| @@ -250,7 +250,7 @@ static struct lock_torture_ops mutex_lock_ops = { | |||
| 250 | */ | 250 | */ |
| 251 | static int lock_torture_writer(void *arg) | 251 | static int lock_torture_writer(void *arg) |
| 252 | { | 252 | { |
| 253 | struct lock_writer_stress_stats *lwsp = arg; | 253 | struct lock_stress_stats *lwsp = arg; |
| 254 | static DEFINE_TORTURE_RANDOM(rand); | 254 | static DEFINE_TORTURE_RANDOM(rand); |
| 255 | 255 | ||
| 256 | VERBOSE_TOROUT_STRING("lock_torture_writer task started"); | 256 | VERBOSE_TOROUT_STRING("lock_torture_writer task started"); |
| @@ -261,9 +261,9 @@ static int lock_torture_writer(void *arg) | |||
| 261 | schedule_timeout_uninterruptible(1); | 261 | schedule_timeout_uninterruptible(1); |
| 262 | cur_ops->writelock(); | 262 | cur_ops->writelock(); |
| 263 | if (WARN_ON_ONCE(lock_is_write_held)) | 263 | if (WARN_ON_ONCE(lock_is_write_held)) |
| 264 | lwsp->n_write_lock_fail++; | 264 | lwsp->n_lock_fail++; |
| 265 | lock_is_write_held = 1; | 265 | lock_is_write_held = 1; |
| 266 | lwsp->n_write_lock_acquired++; | 266 | lwsp->n_lock_acquired++; |
| 267 | cur_ops->write_delay(&rand); | 267 | cur_ops->write_delay(&rand); |
| 268 | lock_is_write_held = 0; | 268 | lock_is_write_held = 0; |
| 269 | cur_ops->writeunlock(); | 269 | cur_ops->writeunlock(); |
| @@ -281,17 +281,17 @@ static void lock_torture_printk(char *page) | |||
| 281 | bool fail = 0; | 281 | bool fail = 0; |
| 282 | int i; | 282 | int i; |
| 283 | long max = 0; | 283 | long max = 0; |
| 284 | long min = lwsa[0].n_write_lock_acquired; | 284 | long min = lwsa[0].n_lock_acquired; |
| 285 | long long sum = 0; | 285 | long long sum = 0; |
| 286 | 286 | ||
| 287 | for (i = 0; i < nrealwriters_stress; i++) { | 287 | for (i = 0; i < nrealwriters_stress; i++) { |
| 288 | if (lwsa[i].n_write_lock_fail) | 288 | if (lwsa[i].n_lock_fail) |
| 289 | fail = true; | 289 | fail = true; |
| 290 | sum += lwsa[i].n_write_lock_acquired; | 290 | sum += lwsa[i].n_lock_acquired; |
| 291 | if (max < lwsa[i].n_write_lock_fail) | 291 | if (max < lwsa[i].n_lock_fail) |
| 292 | max = lwsa[i].n_write_lock_fail; | 292 | max = lwsa[i].n_lock_fail; |
| 293 | if (min > lwsa[i].n_write_lock_fail) | 293 | if (min > lwsa[i].n_lock_fail) |
| 294 | min = lwsa[i].n_write_lock_fail; | 294 | min = lwsa[i].n_lock_fail; |
| 295 | } | 295 | } |
| 296 | page += sprintf(page, "%s%s ", torture_type, TORTURE_FLAG); | 296 | page += sprintf(page, "%s%s ", torture_type, TORTURE_FLAG); |
| 297 | page += sprintf(page, | 297 | page += sprintf(page, |
| @@ -441,8 +441,8 @@ static int __init lock_torture_init(void) | |||
| 441 | goto unwind; | 441 | goto unwind; |
| 442 | } | 442 | } |
| 443 | for (i = 0; i < nrealwriters_stress; i++) { | 443 | for (i = 0; i < nrealwriters_stress; i++) { |
| 444 | lwsa[i].n_write_lock_fail = 0; | 444 | lwsa[i].n_lock_fail = 0; |
| 445 | lwsa[i].n_write_lock_acquired = 0; | 445 | lwsa[i].n_lock_acquired = 0; |
| 446 | } | 446 | } |
| 447 | 447 | ||
| 448 | /* Start up the kthreads. */ | 448 | /* Start up the kthreads. */ |
