mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-12 05:24:12 +08:00
cf7e93c12f
IB resources are bounded to IB device and file descriptors, both entities are unaware to PID namespaces and to task lifetime. The difference in model caused to unpredictable behavior for the following scenario: 1. Create FD and context 2. Share it with ephemeral child 3. Create any object and exit that child The end result of this flow, that those newly created objects will be tracked by restrack, but won't be visible for users because task_struct associated with them already exited. The right thing is to rely on net namespace only for any filtering purposes and drop PID namespace. Link: https://lore.kernel.org/r/20191010071105.25538-2-leon@kernel.org Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Reviewed-by: Jason Gunthorpe <jgg@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
31 lines
748 B
C
31 lines
748 B
C
/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
|
|
/*
|
|
* Copyright (c) 2017-2019 Mellanox Technologies. All rights reserved.
|
|
*/
|
|
|
|
#ifndef _RDMA_CORE_RESTRACK_H_
|
|
#define _RDMA_CORE_RESTRACK_H_
|
|
|
|
#include <linux/mutex.h>
|
|
|
|
/**
|
|
* struct rdma_restrack_root - main resource tracking management
|
|
* entity, per-device
|
|
*/
|
|
struct rdma_restrack_root {
|
|
/**
|
|
* @xa: Array of XArray structure to hold restrack entries.
|
|
*/
|
|
struct xarray xa;
|
|
/**
|
|
* @next_id: Next ID to support cyclic allocation
|
|
*/
|
|
u32 next_id;
|
|
};
|
|
|
|
int rdma_restrack_init(struct ib_device *dev);
|
|
void rdma_restrack_clean(struct ib_device *dev);
|
|
void rdma_restrack_attach_task(struct rdma_restrack_entry *res,
|
|
struct task_struct *task);
|
|
#endif /* _RDMA_CORE_RESTRACK_H_ */
|