blk-mq-debugfs.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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_debugfs_attr {
  7. const char *name;
  8. umode_t mode;
  9. int (*show)(void *, struct seq_file *);
  10. ssize_t (*write)(void *, const char __user *, size_t, loff_t *);
  11. /* Set either .show or .seq_ops. */
  12. const struct seq_operations *seq_ops;
  13. };
  14. int __blk_mq_debugfs_rq_show(struct seq_file *m, struct request *rq);
  15. int blk_mq_debugfs_rq_show(struct seq_file *m, void *v);
  16. void blk_mq_debugfs_register(struct request_queue *q);
  17. void blk_mq_debugfs_unregister(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. void blk_mq_debugfs_unregister_queue_rqos(struct request_queue *q);
  31. #else
  32. static inline void blk_mq_debugfs_register(struct request_queue *q)
  33. {
  34. }
  35. static inline void blk_mq_debugfs_unregister(struct request_queue *q)
  36. {
  37. }
  38. static inline void blk_mq_debugfs_register_hctx(struct request_queue *q,
  39. struct blk_mq_hw_ctx *hctx)
  40. {
  41. }
  42. static inline void blk_mq_debugfs_unregister_hctx(struct blk_mq_hw_ctx *hctx)
  43. {
  44. }
  45. static inline void blk_mq_debugfs_register_hctxs(struct request_queue *q)
  46. {
  47. }
  48. static inline void blk_mq_debugfs_unregister_hctxs(struct request_queue *q)
  49. {
  50. }
  51. static inline void blk_mq_debugfs_register_sched(struct request_queue *q)
  52. {
  53. }
  54. static inline void blk_mq_debugfs_unregister_sched(struct request_queue *q)
  55. {
  56. }
  57. static inline void blk_mq_debugfs_register_sched_hctx(struct request_queue *q,
  58. struct blk_mq_hw_ctx *hctx)
  59. {
  60. }
  61. static inline void blk_mq_debugfs_unregister_sched_hctx(struct blk_mq_hw_ctx *hctx)
  62. {
  63. }
  64. static inline void blk_mq_debugfs_register_rqos(struct rq_qos *rqos)
  65. {
  66. }
  67. static inline void blk_mq_debugfs_unregister_rqos(struct rq_qos *rqos)
  68. {
  69. }
  70. static inline void blk_mq_debugfs_unregister_queue_rqos(struct request_queue *q)
  71. {
  72. }
  73. #endif
  74. #ifdef CONFIG_BLK_DEBUG_FS_ZONED
  75. int queue_zone_wlock_show(void *data, struct seq_file *m);
  76. #else
  77. static inline int queue_zone_wlock_show(void *data, struct seq_file *m)
  78. {
  79. return 0;
  80. }
  81. #endif
  82. #endif