xref: /openbmc/linux/block/blk-mq-debugfs.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2d173a251SOmar Sandoval #ifndef INT_BLK_MQ_DEBUGFS_H
3d173a251SOmar Sandoval #define INT_BLK_MQ_DEBUGFS_H
4d173a251SOmar Sandoval 
5d173a251SOmar Sandoval #ifdef CONFIG_BLK_DEBUG_FS
6d332ce09SOmar Sandoval 
7d332ce09SOmar Sandoval #include <linux/seq_file.h>
8d332ce09SOmar Sandoval 
9*4e5cc99eSMing Lei struct blk_mq_hw_ctx;
10*4e5cc99eSMing Lei 
11d332ce09SOmar Sandoval struct blk_mq_debugfs_attr {
12d332ce09SOmar Sandoval 	const char *name;
13d332ce09SOmar Sandoval 	umode_t mode;
14d332ce09SOmar Sandoval 	int (*show)(void *, struct seq_file *);
15d332ce09SOmar Sandoval 	ssize_t (*write)(void *, const char __user *, size_t, loff_t *);
16d332ce09SOmar Sandoval 	/* Set either .show or .seq_ops. */
17d332ce09SOmar Sandoval 	const struct seq_operations *seq_ops;
18d332ce09SOmar Sandoval };
19d332ce09SOmar Sandoval 
20daaadb3eSOmar Sandoval int __blk_mq_debugfs_rq_show(struct seq_file *m, struct request *rq);
2116b738f6SOmar Sandoval int blk_mq_debugfs_rq_show(struct seq_file *m, void *v);
2216b738f6SOmar Sandoval 
236cfc0081SGreg Kroah-Hartman void blk_mq_debugfs_register(struct request_queue *q);
246cfc0081SGreg Kroah-Hartman void blk_mq_debugfs_register_hctx(struct request_queue *q,
259c1051aaSOmar Sandoval 				  struct blk_mq_hw_ctx *hctx);
269c1051aaSOmar Sandoval void blk_mq_debugfs_unregister_hctx(struct blk_mq_hw_ctx *hctx);
276cfc0081SGreg Kroah-Hartman void blk_mq_debugfs_register_hctxs(struct request_queue *q);
289c1051aaSOmar Sandoval void blk_mq_debugfs_unregister_hctxs(struct request_queue *q);
29d332ce09SOmar Sandoval 
306cfc0081SGreg Kroah-Hartman void blk_mq_debugfs_register_sched(struct request_queue *q);
31d332ce09SOmar Sandoval void blk_mq_debugfs_unregister_sched(struct request_queue *q);
326cfc0081SGreg Kroah-Hartman void blk_mq_debugfs_register_sched_hctx(struct request_queue *q,
33d332ce09SOmar Sandoval 				       struct blk_mq_hw_ctx *hctx);
34d332ce09SOmar Sandoval void blk_mq_debugfs_unregister_sched_hctx(struct blk_mq_hw_ctx *hctx);
35cc56694fSMing Lei 
366cfc0081SGreg Kroah-Hartman void blk_mq_debugfs_register_rqos(struct rq_qos *rqos);
37cc56694fSMing Lei void blk_mq_debugfs_unregister_rqos(struct rq_qos *rqos);
38d173a251SOmar Sandoval #else
blk_mq_debugfs_register(struct request_queue * q)396cfc0081SGreg Kroah-Hartman static inline void blk_mq_debugfs_register(struct request_queue *q)
40d173a251SOmar Sandoval {
41d173a251SOmar Sandoval }
42d173a251SOmar Sandoval 
blk_mq_debugfs_register_hctx(struct request_queue * q,struct blk_mq_hw_ctx * hctx)436cfc0081SGreg Kroah-Hartman static inline void blk_mq_debugfs_register_hctx(struct request_queue *q,
449c1051aaSOmar Sandoval 						struct blk_mq_hw_ctx *hctx)
45d173a251SOmar Sandoval {
46d173a251SOmar Sandoval }
47d173a251SOmar Sandoval 
blk_mq_debugfs_unregister_hctx(struct blk_mq_hw_ctx * hctx)489c1051aaSOmar Sandoval static inline void blk_mq_debugfs_unregister_hctx(struct blk_mq_hw_ctx *hctx)
499c1051aaSOmar Sandoval {
509c1051aaSOmar Sandoval }
519c1051aaSOmar Sandoval 
blk_mq_debugfs_register_hctxs(struct request_queue * q)526cfc0081SGreg Kroah-Hartman static inline void blk_mq_debugfs_register_hctxs(struct request_queue *q)
539c1051aaSOmar Sandoval {
549c1051aaSOmar Sandoval }
559c1051aaSOmar Sandoval 
blk_mq_debugfs_unregister_hctxs(struct request_queue * q)569c1051aaSOmar Sandoval static inline void blk_mq_debugfs_unregister_hctxs(struct request_queue *q)
57d173a251SOmar Sandoval {
58d173a251SOmar Sandoval }
59d332ce09SOmar Sandoval 
blk_mq_debugfs_register_sched(struct request_queue * q)606cfc0081SGreg Kroah-Hartman static inline void blk_mq_debugfs_register_sched(struct request_queue *q)
61d332ce09SOmar Sandoval {
62d332ce09SOmar Sandoval }
63d332ce09SOmar Sandoval 
blk_mq_debugfs_unregister_sched(struct request_queue * q)64d332ce09SOmar Sandoval static inline void blk_mq_debugfs_unregister_sched(struct request_queue *q)
65d332ce09SOmar Sandoval {
66d332ce09SOmar Sandoval }
67d332ce09SOmar Sandoval 
blk_mq_debugfs_register_sched_hctx(struct request_queue * q,struct blk_mq_hw_ctx * hctx)686cfc0081SGreg Kroah-Hartman static inline void blk_mq_debugfs_register_sched_hctx(struct request_queue *q,
69d332ce09SOmar Sandoval 						      struct blk_mq_hw_ctx *hctx)
70d332ce09SOmar Sandoval {
71d332ce09SOmar Sandoval }
72d332ce09SOmar Sandoval 
blk_mq_debugfs_unregister_sched_hctx(struct blk_mq_hw_ctx * hctx)73d332ce09SOmar Sandoval static inline void blk_mq_debugfs_unregister_sched_hctx(struct blk_mq_hw_ctx *hctx)
74d332ce09SOmar Sandoval {
75d332ce09SOmar Sandoval }
76cc56694fSMing Lei 
blk_mq_debugfs_register_rqos(struct rq_qos * rqos)776cfc0081SGreg Kroah-Hartman static inline void blk_mq_debugfs_register_rqos(struct rq_qos *rqos)
78cc56694fSMing Lei {
79cc56694fSMing Lei }
80cc56694fSMing Lei 
blk_mq_debugfs_unregister_rqos(struct rq_qos * rqos)81cc56694fSMing Lei static inline void blk_mq_debugfs_unregister_rqos(struct rq_qos *rqos)
82cc56694fSMing Lei {
83cc56694fSMing Lei }
84d173a251SOmar Sandoval #endif
85d173a251SOmar Sandoval 
866a5ac984SBart Van Assche #ifdef CONFIG_BLK_DEBUG_FS_ZONED
876a5ac984SBart Van Assche int queue_zone_wlock_show(void *data, struct seq_file *m);
886a5ac984SBart Van Assche #else
queue_zone_wlock_show(void * data,struct seq_file * m)896a5ac984SBart Van Assche static inline int queue_zone_wlock_show(void *data, struct seq_file *m)
906a5ac984SBart Van Assche {
916a5ac984SBart Van Assche 	return 0;
926a5ac984SBart Van Assche }
936a5ac984SBart Van Assche #endif
946a5ac984SBart Van Assche 
95d173a251SOmar Sandoval #endif
96