blk-mq-debugfs.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef INT_BLK_MQ_DEBUGFS_H
  3. #define INT_BLK_MQ_DEBUGFS_H
  4. #ifdef CONFIG_BLK_DEBUG_FS
  5. #include <linux/seq_file.h>
  6. struct blk_mq_hw_ctx;
  7. struct blk_mq_debugfs_attr {
  8. const char *name;
  9. umode_t mode;
  10. int (*show)(void *, struct seq_file *);
  11. ssize_t (*write)(void *, const char __user *, size_t, loff_t *);
  12. /* Set either .show or .seq_ops. */
  13. const struct seq_operations *seq_ops;
  14. };
  15. int __blk_mq_debugfs_rq_show(struct seq_file *m, struct request *rq);
  16. int blk_mq_debugfs_rq_show(struct seq_file *m, void *v);
  17. void blk_mq_debugfs_register(struct request_queue *q);
  18. void blk_mq_debugfs_register_hctx(struct request_queue *q,
  19. struct blk_mq_hw_ctx *hctx);
  20. void blk_mq_debugfs_unregister_hctx(struct blk_mq_hw_ctx *hctx);
  21. void blk_mq_debugfs_register_hctxs(struct request_queue *q);
  22. void blk_mq_debugfs_unregister_hctxs(struct request_queue *q);
  23. void blk_mq_debugfs_register_sched(struct request_queue *q);
  24. void blk_mq_debugfs_unregister_sched(struct request_queue *q);
  25. void blk_mq_debugfs_register_sched_hctx(struct request_queue *q,
  26. struct blk_mq_hw_ctx *hctx);
  27. void blk_mq_debugfs_unregister_sched_hctx(struct blk_mq_hw_ctx *hctx);
  28. void blk_mq_debugfs_register_rqos(struct rq_qos *rqos);
  29. void blk_mq_debugfs_unregister_rqos(struct rq_qos *rqos);
  30. #else
  31. static inline void blk_mq_debugfs_register(struct request_queue *q)
  32. {
  33. }
  34. static inline void blk_mq_debugfs_register_hctx(struct request_queue *q,
  35. struct blk_mq_hw_ctx *hctx)
  36. {
  37. }
  38. static inline void blk_mq_debugfs_unregister_hctx(struct blk_mq_hw_ctx *hctx)
  39. {
  40. }
  41. static inline void blk_mq_debugfs_register_hctxs(struct request_queue *q)
  42. {
  43. }
  44. static inline void blk_mq_debugfs_unregister_hctxs(struct request_queue *q)
  45. {
  46. }
  47. static inline void blk_mq_debugfs_register_sched(struct request_queue *q)
  48. {
  49. }
  50. static inline void blk_mq_debugfs_unregister_sched(struct request_queue *q)
  51. {
  52. }
  53. static inline void blk_mq_debugfs_register_sched_hctx(struct request_queue *q,
  54. struct blk_mq_hw_ctx *hctx)
  55. {
  56. }
  57. static inline void blk_mq_debugfs_unregister_sched_hctx(struct blk_mq_hw_ctx *hctx)
  58. {
  59. }
  60. static inline void blk_mq_debugfs_register_rqos(struct rq_qos *rqos)
  61. {
  62. }
  63. static inline void blk_mq_debugfs_unregister_rqos(struct rq_qos *rqos)
  64. {
  65. }
  66. #endif
  67. #ifdef CONFIG_BLK_DEBUG_FS_ZONED
  68. int queue_zone_wlock_show(void *data, struct seq_file *m);
  69. #else
  70. static inline int queue_zone_wlock_show(void *data, struct seq_file *m)
  71. {
  72. return 0;
  73. }
  74. #endif
  75. #endif