Re: [PATCHv3 1/1] RDMA/rxe: Fix a dead lock problem

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

 



在 2022/4/15 0:18, Jason Gunthorpe 写道:
On Thu, Apr 14, 2022 at 11:13:57PM +0800, Yanjun Zhu wrote:
在 2022/4/14 21:52, Jason Gunthorpe 写道:
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.


Got it. The GFP_ATOMIC/GFP_KERNEL are used in different paths.
rxe_create_ah will use GFP_ATOMIC and others will use GFP_KERNEL.
So the codes should be as below:

This seems better
Thanks. I will send the latest patch very soon.

Zhu Yanjun

Jason




[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