diff options
author | Ursula Braun <braunu@de.ibm.com> | 2007-05-04 12:47:49 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2007-05-04 12:48:25 -0400 |
commit | 00c0c6466c66bdf05f2a3dcf59e6895179ea8b76 (patch) | |
tree | 6696db228238e029f523875cd78022ddd4da7002 /drivers/s390/cio/qdio.h | |
parent | d4ee453bcfcc0ce76de8522e099868dc440cba23 (diff) |
[S390] qdio: make qdio statistics SMP-capable
Use atomic_t/atomic64_t to make qdio performance statistics smp safe.
Remove temporarily calculation of "total time of inbound actions".
Signed-off-by: Ursula Braun <braunu@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/qdio.h')
-rw-r--r-- | drivers/s390/cio/qdio.h | 52 |
1 files changed, 37 insertions, 15 deletions
diff --git a/drivers/s390/cio/qdio.h b/drivers/s390/cio/qdio.h index ec9af72b2afc..2895392eaae4 100644 --- a/drivers/s390/cio/qdio.h +++ b/drivers/s390/cio/qdio.h | |||
@@ -406,21 +406,43 @@ do_clear_global_summary(void) | |||
406 | #define CHSC_FLAG_SIGA_SYNC_DONE_ON_OUTB_PCIS 0x04 | 406 | #define CHSC_FLAG_SIGA_SYNC_DONE_ON_OUTB_PCIS 0x04 |
407 | 407 | ||
408 | struct qdio_perf_stats { | 408 | struct qdio_perf_stats { |
409 | unsigned long tl_runs; | 409 | #ifdef CONFIG_64BIT |
410 | 410 | atomic64_t tl_runs; | |
411 | unsigned long siga_outs; | 411 | atomic64_t outbound_tl_runs; |
412 | unsigned long siga_ins; | 412 | atomic64_t outbound_tl_runs_resched; |
413 | unsigned long siga_syncs; | 413 | atomic64_t inbound_tl_runs; |
414 | unsigned long pcis; | 414 | atomic64_t inbound_tl_runs_resched; |
415 | unsigned long thinints; | 415 | atomic64_t inbound_thin_tl_runs; |
416 | unsigned long fast_reqs; | 416 | atomic64_t inbound_thin_tl_runs_resched; |
417 | 417 | ||
418 | __u64 start_time_outbound; | 418 | atomic64_t siga_outs; |
419 | unsigned long outbound_cnt; | 419 | atomic64_t siga_ins; |
420 | unsigned long outbound_time; | 420 | atomic64_t siga_syncs; |
421 | __u64 start_time_inbound; | 421 | atomic64_t pcis; |
422 | unsigned long inbound_cnt; | 422 | atomic64_t thinints; |
423 | unsigned long inbound_time; | 423 | atomic64_t fast_reqs; |
424 | |||
425 | atomic64_t outbound_cnt; | ||
426 | atomic64_t inbound_cnt; | ||
427 | #else /* CONFIG_64BIT */ | ||
428 | atomic_t tl_runs; | ||
429 | atomic_t outbound_tl_runs; | ||
430 | atomic_t outbound_tl_runs_resched; | ||
431 | atomic_t inbound_tl_runs; | ||
432 | atomic_t inbound_tl_runs_resched; | ||
433 | atomic_t inbound_thin_tl_runs; | ||
434 | atomic_t inbound_thin_tl_runs_resched; | ||
435 | |||
436 | atomic_t siga_outs; | ||
437 | atomic_t siga_ins; | ||
438 | atomic_t siga_syncs; | ||
439 | atomic_t pcis; | ||
440 | atomic_t thinints; | ||
441 | atomic_t fast_reqs; | ||
442 | |||
443 | atomic_t outbound_cnt; | ||
444 | atomic_t inbound_cnt; | ||
445 | #endif /* CONFIG_64BIT */ | ||
424 | }; | 446 | }; |
425 | 447 | ||
426 | /* unlikely as the later the better */ | 448 | /* unlikely as the later the better */ |