> From: linux-rdma-owner@xxxxxxxxxxxxxxx <linux-rdma- > owner@xxxxxxxxxxxxxxx> On Behalf Of Jason Gunthorpe > > On Wed, Oct 30, 2019 at 11:44:09AM +0200, Michal Kalderon wrote: > > This patch series uses the doorbell overflow recovery mechanism > > introduced in commit 36907cd5cd72 ("qed: Add doorbell overflow > > recovery mechanism") for rdma ( RoCE and iWARP ) > > > > The first six patches modify the core code to contain helper functions > > for managing mmap_xa inserting, getting and freeing entries. The code > > was based on the code from efa driver. > > There is still an open discussion on whether we should take this even > > further and make the entire mmap generic. Until a decision is made, I > > only created the database API and modified the efa, qedr, siw driver > > to use it. The functions are integrated with the umap mechanism. > > > > The doorbell recovery code is based on the common code. > > > > rdma-core pull request #493 was closed for now, once kernel series is > > accepted will be reopend. > > > > This series applies over the wip/jgg-for-next branch and not the > > for-next since it contains the series: > > RDMA/qedr: Fix memory leaks and synchronization > > https://urldefense.proofpoint.com/v2/url?u=https- > 3A__www.spinics.net_l > > ists_linux- > 2Drdma_msg85242.html&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=7Y > > unNpwaTtA- > c31OjGDRljIVVAwuEHIfekR2HBOc7Ss&m=L5mJN0hgrbvf3DM5YqnWV_SP8x > > T4w4- > EglZvbLfNeac&s=vhHBEGZnBPmT8qnK6mkfWyDGgjuTscDayoTdsqEe4Sk&e= > > > > SIW driver was reviewed, tested and signed-off by Bernard Metzler. > > Since we are on v12 now, let us get this done. I added this diff to the series. > Mostly just renaming, indenting, the notes I gave already (to all drivers) and > probably a few other things I forgot > > Here is the series with everything reflowed hopefully properly: > > https://urldefense.proofpoint.com/v2/url?u=https- > 3A__github.com_jgunthorpe_linux_commits_rdma- > 5Fmmap&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=7YunNpwaTtA- > c31OjGDRljIVVAwuEHIfekR2HBOc7Ss&m=L5mJN0hgrbvf3DM5YqnWV_SP8xT > 4w4-EglZvbLfNeac&s=Msa- > ckgjuOMPVTodTsdmuiOIg88xQUn0zXYiXybrGv4&e= > > Please let me know if I messed it up, otherwise I'll apply this in a few days. Thanks Jason. One small comment is that the length field was removed from siw + efa But not qedr_user_mmap_entry, I can also send a patch after to fix this. And one small insignificant typo below Other than that all fixes look good, thanks. Tested-by: Michal Kalderon <michal.kalderon@xxxxxxxxxxx> > > Thanks, > Jason > > diff --git a/drivers/infiniband/core/ib_core_uverbs.c > b/drivers/infiniband/core/ib_core_uverbs.c > index 88d9d47fb8adaa..6238842fd06402 100644 > --- a/drivers/infiniband/core/ib_core_uverbs.c > +++ b/drivers/infiniband/core/ib_core_uverbs.c > @@ -11,14 +11,14 @@ > > /** > - * rdma_user_mmap_entry_insert() - Insert an entry to the mmap_xa. > + * rdma_user_mmap_entry_insert() - Insert an entry to the mmap_xa > * > * @ucontext: associated user context. > * @entry: the entry to insert into the mmap_xa > * @length: length of the address that will be mmapped > * > * This function should be called by drivers that use the rdma_user_mmap > - * interface for handling user mmapped addresses. The database is handled > in > - * the core and helper functions are provided to insert entries into the > - * database and extract entries when the user calls mmap with the given > key. > - * The function allocates a unique key that should be provided to user, the > user > - * will use the key to retrieve information such as address to > - * be mapped and how. > + * interface for implementing their mmap syscall A database of mmap > + offsets is > + * handled in the core and helper functions are provided to insert > + entries > + * into the database and extract entries when the user calls mmap with > + the > + * given offset. The function allocates a unique page offset that > + should be > + * provided to user, the user will use the iffset to retrieve Typo - should be offset