diff options
author | Raed Salem <raeds@mellanox.com> | 2018-05-31 15:43:33 +0200 |
---|---|---|
committer | Leon Romanovsky <leonro@mellanox.com> | 2018-06-02 06:33:54 +0200 |
commit | 51d7a5387464f1b1fee3f2db9287409189d83d65 (patch) | |
tree | 0e2e67a88f24c44e905a26288b1a19df5aecc445 /include/rdma | |
parent | IB/uverbs: Add create/destroy counters support (diff) | |
download | linux-51d7a5387464f1b1fee3f2db9287409189d83d65.tar.xz linux-51d7a5387464f1b1fee3f2db9287409189d83d65.zip |
IB/core: Introduce counters read verb
The user supplies counters instance and a reference to an output array of
uint64_t. The driver reads the hardware counters values and writes them
to the output index location in the user supplied array. All counters
values are represented as uint64_t types.
To be able to successfully read the data the counters must be first bound
to an IB object.
Downstream patches will present binding method for flow counters.
Reviewed-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Raed Salem <raeds@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'include/rdma')
-rw-r--r-- | include/rdma/ib_verbs.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index 4f5d9fd4f920..3769a1cc99b0 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h @@ -2187,6 +2187,17 @@ struct ib_counters { atomic_t usecnt; }; +enum ib_read_counters_flags { + /* prefer read values from driver cache */ + IB_READ_COUNTERS_ATTR_PREFER_CACHED = 1 << 0, +}; + +struct ib_counters_read_attr { + u64 *counters_buff; + u32 ncounters; + u32 flags; /* use enum ib_read_counters_flags */ +}; + struct uverbs_attr_bundle; struct ib_device { @@ -2461,6 +2472,9 @@ struct ib_device { struct ib_counters * (*create_counters)(struct ib_device *device, struct uverbs_attr_bundle *attrs); int (*destroy_counters)(struct ib_counters *counters); + int (*read_counters)(struct ib_counters *counters, + struct ib_counters_read_attr *counters_read_attr, + struct uverbs_attr_bundle *attrs); /** * rdma netdev operation |