qdio_perf.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. /* for debugging */
  35. atomic_long_t debug_tl_out_timer;
  36. atomic_long_t debug_stop_polling;
  37. };
  38. extern struct qdio_perf_stats perf_stats;
  39. extern int qdio_performance_stats;
  40. int qdio_setup_perf_stats(void);
  41. void qdio_remove_perf_stats(void);
  42. extern void qdio_perf_stat_inc(atomic_long_t *count);
  43. extern void qdio_perf_stat_dec(atomic_long_t *count);
  44. #endif