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