On Wed, Jan 30, 2019 at 09:45:08PM -0700, Jason Gunthorpe wrote: > On Wed, Jan 30, 2019 at 12:48:52PM +0200, Leon Romanovsky wrote: > > From: Leon Romanovsky <leonro@xxxxxxxxxxxx> > > > > Hi, > > > > In order to remove ambiguity on the order of series, I combined three > > series into one, which does from the beginning (nldev and restrack > > refactoring through IDs exposure upto initial object cleanup). > > > > No change to userspace posted earlier. > > > > Thanks > > Changelog: > > 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: > > * 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 > > > > 1. Refactoring and ID exposure parts: > > 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. > > 2. PD cleanup: > > In this part, I converted all drivers to use IB/core ib_pd allocation > > to ensure that ib_device pointer is valid. > > 3. Parent ID exposure: > > This small part exposes IDs and parent IDs to use to query specific objects. > > An example of how it can be extended to support multiple contexts for PD > > was posted to the ML in previous discussions. > > > > Thanks > > > > Leon Romanovsky (19): > > RDMA/nldev: Dynamically generate restrack dumpit callbacks > > RDMA/nldev: Refactor out PID namespace check > > RDMA/nldev: Prepare CAP_NET_ADMIN checks for .doit callbacks > > RDMA/core: Simplify restrack interface > > RDMA/core: Use ops infrastructure to keep all callbacks in one place > > RDMA/restrack: Refactor user/kernel restrack additions > > RDMA: Provide safe ib_alloc_device() function > > I applied these cleanup patches to for-next > > > RDMA/nldev: Prepare code for per-port/per-device separation > > 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/restrack: Add restrack wrappers to get ID and type > > RDMA/nldev: Share with user-space object IDs > > RDMA/nldev: Provide parent IDs for PD, MR and QP objects > > RDMA/core: Share driver structure size with core > > RDMA: Handle PD allocations by IB/core > > These need resending, the PD allocation change should remain as a > different series.. > > Also, is there some easy way to fix things with the LPQN in this > series so QP can be ready as well? As a temporal solution, it is possible. I will intercept allocated QPs, set their lqpn in restrack ID and will do xa_insert() after that. Thanks > > Jason
Attachment:
signature.asc
Description: PGP signature