qdio_perf.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. #include <linux/types.h>
  11. #include <linux/device.h>
  12. #include <asm/atomic.h>
  13. struct qdio_perf_stats {
  14. /* interrupt handler calls */
  15. atomic_long_t qdio_int;
  16. atomic_long_t pci_int;
  17. atomic_long_t thin_int;
  18. /* tasklet runs */
  19. atomic_long_t tasklet_inbound;
  20. atomic_long_t tasklet_outbound;
  21. atomic_long_t tasklet_thinint;
  22. atomic_long_t tasklet_thinint_loop;
  23. atomic_long_t thinint_inbound;
  24. atomic_long_t thinint_inbound_loop;
  25. atomic_long_t thinint_inbound_loop2;
  26. /* signal adapter calls */
  27. atomic_long_t siga_out;
  28. atomic_long_t siga_in;
  29. atomic_long_t siga_sync;
  30. /* misc */
  31. atomic_long_t inbound_handler;
  32. atomic_long_t outbound_handler;
  33. atomic_long_t fast_requeue;
  34. atomic_long_t outbound_target_full;
  35. /* for debugging */
  36. atomic_long_t debug_tl_out_timer;
  37. atomic_long_t debug_stop_polling;
  38. atomic_long_t debug_eqbs_all;
  39. atomic_long_t debug_eqbs_incomplete;
  40. atomic_long_t debug_sqbs_all;
  41. atomic_long_t debug_sqbs_incomplete;
  42. };
  43. extern struct qdio_perf_stats perf_stats;
  44. extern int qdio_performance_stats;
  45. int qdio_setup_perf_stats(void);
  46. void qdio_remove_perf_stats(void);
  47. extern void qdio_perf_stat_inc(atomic_long_t *count);
  48. extern void qdio_perf_stat_dec(atomic_long_t *count);
  49. #endif