On Mon, Feb 18, 2019 at 10:25:42PM +0200, Leon Romanovsky wrote: > From: Leon Romanovsky <leonro@xxxxxxxxxxxx> > > Changelog: > Jason, despite you desire to allow port=0, I didn't find it is exciting to > do such change in -rc7 and left it as is. > v5->v6: > * Fixed next-id kernel-doc comment > * Delete irrelevant comments from res_get_common_dumpit() > * Converion to per-type XArray allows us to replace rwsem lock in favour of xa_lock() > * Don't expose number of not-visible entries > * Fix regression in cx-3 device introduced by patch with .doit callback. > Resources were presented for one port only. > * Created private to core restrack.h file. > v4->v5: > * Removed fill_res_entry from rdam_restrack_root - rebase error > * Removed irrelevant comment from rwsem > * Deleted set_type/res_to_id helpers > * Unfold fill_res_to_id() > * Removed get XA helper > v3->v4: > * Changed lock/unlock to receive xarray to lock instead of ib_device > * and restrack type. > * Fixed spelling error in comment > * Rebased on top of already accepted patches > * Removed redundant xa_load check. > * Squashed per-port/per-device separation patch > v2->v3: > * Rebased on to -rc4 > * Removed special XA markings (RES_VISIBLE) > * Dropped HW ID allocator for now. > * Removed xa_is_err() check in *_byid() function > * Reworded commit messages to reflect changes > * Fixed compilation warning due to my changes to rdmavt > v1->v2: > * Dropped HW ID allocator for now. > * Removed xa_is_err() check in *_byid() function > * Reworded commit messages to reflect changes > * Fixed compilation warning due to my changes to rdmavt > v1->v2: > * Added "Fortify .." atch, it helps to find uninitialized paths > * Rewrote ".doit" patch > v0->v1: > * Don't set mark in case restrack entry failed to be added > * Fix typos > * Move kdoc comments from restrack.h to restrack.c > * Rewrote user/kernel marking patch to drop xa_set_mark in favour > of "user" field > * Fixed two panics with uninitialized values, one for QPs and > another for ibdev in CM_ID > > > This part converts internal restrack DB implementation from hash-based > to be XArray-based. Such change is needed to allow access per specific > index for .doit callbacks. In addition, such index will provide ability > to bind/unbind counters to specific QPs, provide valuable debug > information about parent object (e.g. PD of specific QP, or context > of specific PD) and get list of objects connected to specific context. > > Thanks > > Leon Romanovsky (10): > RDMA/restrack: Convert internal DB from hash to XArray > RDMA/restrack: Translate from ID to restrack object > RDMA/nldev: Add resource tracker doit callback > RDMA/restrack: Reduce scope of synchronization lock while updating DB > RDMA/restrack: Hide restrack DB from IB/core > RDMA/restrack: Prepare restrack_root to addition of extra fields > per-type > RDMA/nldev: Share with user-space object IDs > RDMA/nldev: Provide parent IDs for PD, MR and QP objects > RDMA/nldev: Connect QP number to .doit callback > RDMA/nldev: Don't expose number of not-visible entries Applied to for-next, thanks Jason