On Tue, May 24, 2022 at 01:27:49PM -0500, Bob Pearson wrote: > On 5/24/22 13:26, Jason Gunthorpe wrote: > > On Tue, May 24, 2022 at 01:22:07PM -0500, Bob Pearson wrote: > >> On 5/24/22 06:57, Jason Gunthorpe wrote: > >>> On Tue, May 24, 2022 at 03:53:30AM +0000, yangx.jy@xxxxxxxxxxx wrote: > >>>> On 2022/5/10 2:23, Jason Gunthorpe wrote: > >>>>> On Wed, Apr 20, 2022 at 08:40:33PM -0500, Bob Pearson wrote: > >>>>> > >>>>>> Bob Pearson (10): > >>>>>> RDMA/rxe: Remove IB_SRQ_INIT_MASK > >>>>>> RDMA/rxe: Add rxe_srq_cleanup() > >>>>>> RDMA/rxe: Check rxe_get() return value > >>>>>> RDMA/rxe: Move qp cleanup code to rxe_qp_do_cleanup() > >>>>>> RDMA/rxe: Move mr cleanup code to rxe_mr_cleanup() > >>>>>> RDMA/rxe: Move mw cleanup code to rxe_mw_cleanup() > >>>>>> RDMA/rxe: Enforce IBA C11-17 > >>>>> > >>>>> I took these patches with the small edits I noted > >>>>> > >>>>>> RDMA/rxe: Stop lookup of partially built objects > >>>>>> RDMA/rxe: Convert read side locking to rcu > >>>>>> RDMA/rxe: Cleanup rxe_pool.c > >>>>> > >>>>> It seems OK, but we need to fix the AH problem at least in the destroy > >>>>> path first - lets try to fix it in alloc as well? > >>>> Hi Jason, Bob > >>>> > >>>> Could you tell me what the AH problem is? Thanks a lot. > >>> > >>> rxe doesn't implement RDMA_CREATE_AH_SLEEPABLE / > >>> RDMA_DESTROY_AH_SLEEPABLE > >>> > >>> Jason > >> > >> First I have heard of those. Should we implement them? > > > > Yes, it is the source of all these AH lockdep bugs. > > > > > > OK but what is RDMA_CREATE_AH_SLEEPABLE? If it is not set then create_ah is not allowed to sleep. Same for destroy. Not allowed to sleep means you can't use GFP_KERNEL/etc. Jason