Re: [PATCH rdma-next v3 00/19] Provide per-ID access to restrack objects

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux