Re: [PATCH] staging: gasket: Convert get_user_pages*() --> pin_user_pages*()
From: Dan Carpenter
Date: Thu May 28 2020 - 07:04:29 EST
On Thu, May 28, 2020 at 02:32:42AM +0530, Souptick Joarder wrote:
> This code was using get_user_pages_fast(), in a "Case 2" scenario
> (DMA/RDMA), using the categorization from [1]. That means that it's
> time to convert the get_user_pages_fast() + put_page() calls to
> pin_user_pages_fast() + unpin_user_page() calls.
You are saying that the page is used for DIO and not DMA, but it sure
looks to me like it is used for DMA.
503 /* Map the page into DMA space. */
504 ptes[i].dma_addr =
505 dma_map_page(pg_tbl->device, page, 0, PAGE_SIZE,
506 DMA_BIDIRECTIONAL);
To be honest, that starting paragraph was confusing. At first I thought
you were saying gasket was an RDMA driver. :P I shouldn't have to read
a different document to understand the commit message. It should be
summarized enough and the other documentation is supplemental.
"In 2019 we introduced pin_user_pages() and now we are converting
get_user_pages() to the new API as appropriate".
>
> There is some helpful background in [2]: basically, this is a small
> part of fixing a long-standing disconnect between pinning pages, and
> file systems' use of those pages.
What is the impact of this patch on runtime?
>
> [1] Documentation/core-api/pin_user_pages.rst
>
> [2] "Explicit pinning of user-space pages":
> https://lwn.net/Articles/807108/
>
> Signed-off-by: Souptick Joarder <jrdr.linux@xxxxxxxxx>
> Cc: John Hubbard <jhubbard@xxxxxxxxxx>
>
> Hi,
>
> I'm compile tested this, but unable to run-time test, so any testing
> help is much appriciated.
> ---
The "Hi" part of patch should have been under the "---" cut off line so
this will definitely need to be resent.
regards,
dan carpenter