/** * struct rdma_restrack_entry - metadata per-entry
*/ struct rdma_restrack_entry { /** * @valid: validity indicator * * The entries are filled during rdma_restrack_add, * can be attempted to be free during rdma_restrack_del. * * As an example for that, see mlx5 QPs with type MLX5_IB_QPT_HW_GSI
*/ bool valid; /** * @no_track: don't add this entry to restrack DB * * This field is used to mark an entry that doesn't need to be added to * internal restrack DB and presented later to the users at the nldev * query stage.
*/
u8 no_track : 1; /* * @kref: Protect destroy of the resource
*/ struct kref kref; /* * @comp: Signal that all consumers of resource are completed their work
*/ struct completion comp; /** * @task: owner of resource tracking entity * * There are two types of entities: created by user and created * by kernel. * * This is relevant for the entities created by users. * For the entities created by kernel, this pointer will be NULL.
*/ struct task_struct *task; /** * @kern_name: name of owner for the kernel created entities.
*/ constchar *kern_name; /** * @type: various objects in restrack database
*/ enum rdma_restrack_type type; /** * @user: user resource
*/ bool user; /** * @id: ID to expose to users
*/
u32 id;
};
/** * rdma_restrack_no_track() - don't add resource to the DB * @res: resource entry * * Every user of this API should be cross examined. * Probably you don't need to use this function.
*/ staticinlinevoid rdma_restrack_no_track(struct rdma_restrack_entry *res)
{
res->no_track = true;
} staticinlinebool rdma_restrack_is_tracked(struct rdma_restrack_entry *res)
{ return !res->no_track;
} #endif/* _RDMA_RESTRACK_H_ */
Messung V0.5
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.