blk-cgroup.h (1668B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _BLK_CGROUP_H 3#define _BLK_CGROUP_H 4/* 5 * Common Block IO controller cgroup interface 6 * 7 * Based on ideas and code from CFQ, CFS and BFQ: 8 * Copyright (C) 2003 Jens Axboe <axboe@kernel.dk> 9 * 10 * Copyright (C) 2008 Fabio Checconi <fabio@gandalf.sssup.it> 11 * Paolo Valente <paolo.valente@unimore.it> 12 * 13 * Copyright (C) 2009 Vivek Goyal <vgoyal@redhat.com> 14 * Nauman Rafique <nauman@google.com> 15 */ 16 17#include <linux/types.h> 18 19struct bio; 20struct cgroup_subsys_state; 21struct request_queue; 22 23#define FC_APPID_LEN 129 24 25#ifdef CONFIG_BLK_CGROUP 26extern struct cgroup_subsys_state * const blkcg_root_css; 27 28void blkcg_schedule_throttle(struct request_queue *q, bool use_memdelay); 29void blkcg_maybe_throttle_current(void); 30bool blk_cgroup_congested(void); 31void blkcg_pin_online(struct cgroup_subsys_state *blkcg_css); 32void blkcg_unpin_online(struct cgroup_subsys_state *blkcg_css); 33struct list_head *blkcg_get_cgwb_list(struct cgroup_subsys_state *css); 34struct cgroup_subsys_state *bio_blkcg_css(struct bio *bio); 35 36#else /* CONFIG_BLK_CGROUP */ 37 38#define blkcg_root_css ((struct cgroup_subsys_state *)ERR_PTR(-EINVAL)) 39 40static inline void blkcg_maybe_throttle_current(void) { } 41static inline bool blk_cgroup_congested(void) { return false; } 42static inline void blkcg_schedule_throttle(struct request_queue *q, bool use_memdelay) { } 43static inline struct cgroup_subsys_state *bio_blkcg_css(struct bio *bio) 44{ 45 return NULL; 46} 47#endif /* CONFIG_BLK_CGROUP */ 48 49int blkcg_set_fc_appid(char *app_id, u64 cgrp_id, size_t app_id_len); 50char *blkcg_get_fc_appid(struct bio *bio); 51 52#endif /* _BLK_CGROUP_H */