From: Zhu Yanjun <yanjun.zhu@linux.dev>
To: Jason Gunthorpe <jgg@ziepe.ca>,
"Zhijian Li (Fujitsu)" <lizhijian@fujitsu.com>
Cc: "zyjzyj2000@gmail.com" <zyjzyj2000@gmail.com>,
"leon@kernel.org" <leon@kernel.org>,
"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"rpearsonhpe@gmail.com" <rpearsonhpe@gmail.com>,
"Daisuke Matsuda (Fujitsu)" <matsuda-daisuke@fujitsu.com>,
"bvanassche@acm.org" <bvanassche@acm.org>
Subject: Re: [PATCH RFC 1/2] RDMA/rxe: don't allow registering !PAGE_SIZE mr
Date: Tue, 31 Oct 2023 16:52:23 +0800 [thread overview]
Message-ID: <7c5dd149-395a-46a2-96a0-89c182105eaf@linux.dev> (raw)
In-Reply-To: <20231030124041.GE691768@ziepe.ca>
在 2023/10/30 20:40, Jason Gunthorpe 写道:
> On Mon, Oct 30, 2023 at 07:51:41AM +0000, Zhijian Li (Fujitsu) wrote:
>>
>>
>> On 27/10/2023 13:41, Li Zhijian wrote:
>>> mr->page_list only encodes *page without page offset, when
>>> page_size != PAGE_SIZE, we cannot restore the address with a wrong
>>> page_offset.
>>>
>>> Note that this patch will break some ULPs that try to register 4K
>>> MR when PAGE_SIZE is not 4K.
>>> SRP and nvme over RXE is known to be impacted.
>>>
>>> Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
>>> ---
>>> drivers/infiniband/sw/rxe/rxe_mr.c | 6 ++++++
>>> 1 file changed, 6 insertions(+)
>>>
>>> diff --git a/drivers/infiniband/sw/rxe/rxe_mr.c b/drivers/infiniband/sw/rxe/rxe_mr.c
>>> index f54042e9aeb2..61a136ea1d91 100644
>>> --- a/drivers/infiniband/sw/rxe/rxe_mr.c
>>> +++ b/drivers/infiniband/sw/rxe/rxe_mr.c
>>> @@ -234,6 +234,12 @@ int rxe_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sgl,
>>> struct rxe_mr *mr = to_rmr(ibmr);
>>> unsigned int page_size = mr_page_size(mr);
>>>
>>> + if (page_size != PAGE_SIZE) {
>>
>> It seems this condition is too strict, it should be:
>> if (!IS_ALIGNED(page_size, PAGE_SIZE))
>>
>> So that, page_size with (N * PAGE_SIZE) can work as previously.
>> Because the offset(mr.iova & page_mask) will get lost only when !IS_ALIGNED(page_size, PAGE_SIZE)
>
> That makes sense
I read all the discussions very carefully.
Thanks, Greg.
Because RXE only supports PAGE_SIZE, when CONFIG_ARM64_64K_PAGES is
enabled, the PAGE_SIZE is 64K, when CONFIG_ARM64_64K_PAGES is disabled,
PAGE_SIZE is 4K.
But NVMe calls ib_map_mr_sg with a fixed size SZ_4K. When
CONFIG_ARM64_64K_PAGES is enabled, it is still 4K. This is not a problem
in RXE. This problem is in NVMe.
If this problem in NVMe is not fixed, NVMe still can not use RXE to make
tests with blktests when CONFIG_ARM64_64K_PAGES is enabled.
This is not a problem in RXE, it should not be fixed in RXE.
Zhu Yanjun
>
> Jason
next prev parent reply other threads:[~2023-10-31 8:52 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-27 5:41 [PATCH RFC 1/2] RDMA/rxe: don't allow registering !PAGE_SIZE mr Li Zhijian
2023-10-27 5:41 ` [PATCH RFC 2/2] RDMA/rxe: set RXE_PAGE_SIZE_CAP to PAGE_SIZE Li Zhijian
2023-10-27 21:47 ` Bart Van Assche
2023-10-28 3:52 ` Zhu Yanjun
2023-10-27 8:17 ` [PATCH RFC 1/2] RDMA/rxe: don't allow registering !PAGE_SIZE mr Zhu Yanjun
2023-10-27 21:46 ` Bart Van Assche
2023-10-28 2:48 ` Zhu Yanjun
2023-10-28 23:07 ` Bart Van Assche
2023-10-29 3:22 ` Zhu Yanjun
2023-10-30 8:13 ` Zhijian Li (Fujitsu)
2023-10-30 9:43 ` Zhu Yanjun
2023-10-30 7:51 ` Zhijian Li (Fujitsu)
2023-10-30 12:40 ` Jason Gunthorpe
2023-10-31 8:52 ` Zhu Yanjun [this message]
2023-10-31 13:19 ` Jason Gunthorpe
2023-11-01 0:58 ` Greg Sword
2023-10-31 9:59 ` Zhijian Li (Fujitsu)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7c5dd149-395a-46a2-96a0-89c182105eaf@linux.dev \
--to=yanjun.zhu@linux.dev \
--cc=bvanassche@acm.org \
--cc=jgg@ziepe.ca \
--cc=leon@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=lizhijian@fujitsu.com \
--cc=matsuda-daisuke@fujitsu.com \
--cc=rpearsonhpe@gmail.com \
--cc=zyjzyj2000@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.