1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) 2016 Parav Pandit <pandit.parav@gmail.com> 4 */ 5 6 #ifndef _CGROUP_RDMA_H 7 #define _CGROUP_RDMA_H 8 9 #include <linux/cgroup.h> 10 11 enum rdmacg_resource_type { 12 RDMACG_RESOURCE_HCA_HANDLE, 13 RDMACG_RESOURCE_HCA_OBJECT, 14 RDMACG_RESOURCE_MAX, 15 }; 16 17 #ifdef CONFIG_CGROUP_RDMA 18 19 struct rdma_cgroup { 20 struct cgroup_subsys_state css; 21 22 /* 23 * head to keep track of all resource pools 24 * that belongs to this cgroup. 25 */ 26 struct list_head rpools; 27 }; 28 29 struct rdmacg_device { 30 struct list_head dev_node; 31 struct list_head rpools; 32 char *name; 33 }; 34 35 /* 36 * APIs for RDMA/IB stack to publish when a device wants to 37 * participate in resource accounting 38 */ 39 void rdmacg_register_device(struct rdmacg_device *device); 40 void rdmacg_unregister_device(struct rdmacg_device *device); 41 42 /* APIs for RDMA/IB stack to charge/uncharge pool specific resources */ 43 int rdmacg_try_charge(struct rdma_cgroup **rdmacg, 44 struct rdmacg_device *device, 45 enum rdmacg_resource_type index); 46 void rdmacg_uncharge(struct rdma_cgroup *cg, 47 struct rdmacg_device *device, 48 enum rdmacg_resource_type index); 49 #endif /* CONFIG_CGROUP_RDMA */ 50 #endif /* _CGROUP_RDMA_H */ 51
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.