On Thu, Apr 14, 2022 at 09:01:29PM +0800, Yanjun Zhu wrote: > > > Still no, this does almost every allocation - only AH with the > > > non-blocking flag set should use this path. > To the function ib_send_cm_req, the call chain is as below. > > ib_send_cm_req --> cm_alloc_priv_msg --> cm_alloc_msg --> rdma_create_ah --> > _rdma_create_ah --> rxe_create_ah --> rxe_av_chk_attr -->__rxe_add_to_pool > > As such, xa_lock_irqsave/irqrestore is selected. As I keep saying, only the rxe_create_ah() with the non-blocking flag set should use the GFP_ATOMIC. All other paths must use GFP_KERNEL. Jason