| Jan Glauber | 779e6e1 | 2008-07-17 17:16:48 +0200 | [diff] [blame] | 1 | /* | 
|  | 2 | *  drivers/s390/cio/qdio_perf.h | 
|  | 3 | * | 
|  | 4 | *  Copyright IBM Corp. 2008 | 
|  | 5 | * | 
|  | 6 | *  Author: Jan Glauber (jang@linux.vnet.ibm.com) | 
|  | 7 | */ | 
|  | 8 | #ifndef QDIO_PERF_H | 
|  | 9 | #define QDIO_PERF_H | 
|  | 10 |  | 
|  | 11 | #include <linux/types.h> | 
|  | 12 | #include <linux/device.h> | 
|  | 13 | #include <asm/atomic.h> | 
|  | 14 |  | 
|  | 15 | struct qdio_perf_stats { | 
|  | 16 | /* interrupt handler calls */ | 
|  | 17 | atomic_long_t qdio_int; | 
|  | 18 | atomic_long_t pci_int; | 
|  | 19 | atomic_long_t thin_int; | 
|  | 20 |  | 
|  | 21 | /* tasklet runs */ | 
|  | 22 | atomic_long_t tasklet_inbound; | 
|  | 23 | atomic_long_t tasklet_outbound; | 
|  | 24 | atomic_long_t tasklet_thinint; | 
|  | 25 | atomic_long_t tasklet_thinint_loop; | 
|  | 26 | atomic_long_t thinint_inbound; | 
|  | 27 | atomic_long_t thinint_inbound_loop; | 
|  | 28 | atomic_long_t thinint_inbound_loop2; | 
|  | 29 |  | 
|  | 30 | /* signal adapter calls */ | 
|  | 31 | atomic_long_t siga_out; | 
|  | 32 | atomic_long_t siga_in; | 
|  | 33 | atomic_long_t siga_sync; | 
|  | 34 |  | 
|  | 35 | /* misc */ | 
|  | 36 | atomic_long_t inbound_handler; | 
|  | 37 | atomic_long_t outbound_handler; | 
|  | 38 | atomic_long_t fast_requeue; | 
| Jan Glauber | 50f769d | 2008-12-25 13:38:47 +0100 | [diff] [blame] | 39 | atomic_long_t outbound_target_full; | 
| Jan Glauber | 779e6e1 | 2008-07-17 17:16:48 +0200 | [diff] [blame] | 40 |  | 
|  | 41 | /* for debugging */ | 
|  | 42 | atomic_long_t debug_tl_out_timer; | 
|  | 43 | atomic_long_t debug_stop_polling; | 
| Jan Glauber | 23589d0 | 2008-12-25 13:38:44 +0100 | [diff] [blame] | 44 | atomic_long_t debug_eqbs_all; | 
|  | 45 | atomic_long_t debug_eqbs_incomplete; | 
|  | 46 | atomic_long_t debug_sqbs_all; | 
|  | 47 | atomic_long_t debug_sqbs_incomplete; | 
| Jan Glauber | 779e6e1 | 2008-07-17 17:16:48 +0200 | [diff] [blame] | 48 | }; | 
|  | 49 |  | 
|  | 50 | extern struct qdio_perf_stats perf_stats; | 
|  | 51 | extern int qdio_performance_stats; | 
|  | 52 |  | 
|  | 53 | int qdio_setup_perf_stats(void); | 
|  | 54 | void qdio_remove_perf_stats(void); | 
|  | 55 |  | 
|  | 56 | extern void qdio_perf_stat_inc(atomic_long_t *count); | 
|  | 57 | extern void qdio_perf_stat_dec(atomic_long_t *count); | 
|  | 58 |  | 
|  | 59 | #endif |