Something went wrong. Try again.
Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455/* SPDX-License-Identifier: GPL-2.0-only *//* * Copyright (C) 2016 Parav Pandit <pandit.parav@gmail.com> */
#ifndef _CGROUP_RDMA_H#define _CGROUP_RDMA_H
#include <linux/cgroup.h>
enum rdmacg_resource_type { RDMACG_RESOURCE_HCA_HANDLE, RDMACG_RESOURCE_HCA_OBJECT, RDMACG_RESOURCE_MAX,};
#ifdef CONFIG_CGROUP_RDMA
struct rdma_cgroup { struct cgroup_subsys_state css;
/* * head to keep track of all resource pools * that belongs to this cgroup. */ struct list_head rpools;
/* Handles for rdma.events[.local] */ struct cgroup_file events_file; struct cgroup_file events_local_file;};
struct rdmacg_device { struct list_head dev_node; struct list_head rpools; char *name;};
/* * APIs for RDMA/IB stack to publish when a device wants to * participate in resource accounting */void rdmacg_register_device(struct rdmacg_device *device);void rdmacg_unregister_device(struct rdmacg_device *device);
/* APIs for RDMA/IB stack to charge/uncharge pool specific resources */int rdmacg_try_charge(struct rdma_cgroup **rdmacg, struct rdmacg_device *device, enum rdmacg_resource_type index);void rdmacg_uncharge(struct rdma_cgroup *cg, struct rdmacg_device *device, enum rdmacg_resource_type index);#endif /* CONFIG_CGROUP_RDMA */#endif /* _CGROUP_RDMA_H */