linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: "Fabio M. De Francesco" <fmdefrancesco@gmail.com>
To: "Jérôme Glisse" <jglisse@redhat.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	"Sumitra Sharma" <sumitraartsy@gmail.com>
Cc: Ira Weiny <ira.weiny@intel.com>, Deepak R Varma <drv@mailo.com>
Subject: Re: [PATCH v2] lib: Replace kmap() with kmap_local_page()
Date: Sun, 18 Jun 2023 06:50:04 +0200	[thread overview]
Message-ID: <8275009.NyiUUSuA9g@suse> (raw)
In-Reply-To: <20230610175712.GA348514@sumitra.com>

On sabato 10 giugno 2023 19:57:12 CEST Sumitra Sharma wrote:
> kmap() has been deprecated in favor of the kmap_local_page()
> due to high cost, restricted mapping space, the overhead of
> a global lock for synchronization, and making the process
> sleep in the absence of free slots.
> 
> kmap_local_page() is faster than kmap() and offers thread-local
> and CPU-local mappings, take pagefaults in a local kmap region
> and preserves preemption by saving the mappings of outgoing
> tasks and restoring those of the incoming one during a context
> switch.
> 
> The mappings are kept thread local in the functions
> “dmirror_do_read” and “dmirror_do_write” in test_hmm.c
> 
> Therefore, replace kmap() with kmap_local_page() and use
> mempcy_from/to_page() to avoid open coding kmap_local_page()
> + memcpy() + kunmap_local().
> 
> Remove the unused variable “tmp”.
> 
> 
> Suggested-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>

LGTM, so...

Reviewed-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>

Thanks,

Fabio

P.S.: The answer to an old question from you is that "LGTM" stands for "[It] 
Looks Good To Me". 

It's just a way to introduce the "Reviewed-by" tag itself. However, "LGTM" is 
not required, whereas the tag is required for a valid review and only the tag 
line will be added by maintainers in the log when your patch gets applied.  

While here... Please don't put unnecessary blank lines between the tags.They 
are not required and instead may worsen readability (obviously, I'm not 
requiring a new version for this).  

> 
> Signed-off-by: Sumitra Sharma <sumitraartsy@gmail.com>
> ---
> 
> Changes in v2:
> 	- Change commit subject and description.
> 	- Remove unnecessary type casting (char *).
> 
> 
>  lib/test_hmm.c | 10 ++--------
>  1 file changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/lib/test_hmm.c b/lib/test_hmm.c
> index 67e6f83fe0f8..717dcb830127 100644
> --- a/lib/test_hmm.c
> +++ b/lib/test_hmm.c
> @@ -368,16 +368,13 @@ static int dmirror_do_read(struct dmirror *dmirror,
> unsigned long start, for (pfn = start >> PAGE_SHIFT; pfn < (end >>
> PAGE_SHIFT); pfn++) { void *entry;
>  		struct page *page;
> -		void *tmp;
> 
>  		entry = xa_load(&dmirror->pt, pfn);
>  		page = xa_untag_pointer(entry);
>  		if (!page)
>  			return -ENOENT;
> 
> -		tmp = kmap(page);
> -		memcpy(ptr, tmp, PAGE_SIZE);
> -		kunmap(page);
> +		memcpy_from_page(ptr, page, 0, PAGE_SIZE);
> 
>  		ptr += PAGE_SIZE;
>  		bounce->cpages++;
> @@ -437,16 +434,13 @@ static int dmirror_do_write(struct dmirror *dmirror,
> unsigned long start, for (pfn = start >> PAGE_SHIFT; pfn < (end >>
> PAGE_SHIFT); pfn++) { void *entry;
>  		struct page *page;
> -		void *tmp;
> 
>  		entry = xa_load(&dmirror->pt, pfn);
>  		page = xa_untag_pointer(entry);
>  		if (!page || xa_pointer_tag(entry) != DPT_XA_TAG_WRITE)
>  			return -ENOENT;
> 
> -		tmp = kmap(page);
> -		memcpy(tmp, ptr, PAGE_SIZE);
> -		kunmap(page);
> +		memcpy_to_page(page, 0, ptr, PAGE_SIZE);
> 
>  		ptr += PAGE_SIZE;
>  		bounce->cpages++;
> --
> 2.25.1






  parent reply	other threads:[~2023-06-18  4:50 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-10 17:57 [PATCH v2] lib: Replace kmap() with kmap_local_page() Sumitra Sharma
2023-06-13 21:08 ` Ira Weiny
2023-06-18  4:50 ` Fabio M. De Francesco [this message]
2023-06-19 16:40   ` Sumitra Sharma

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=8275009.NyiUUSuA9g@suse \
    --to=fmdefrancesco@gmail.com \
    --cc=drv@mailo.com \
    --cc=ira.weiny@intel.com \
    --cc=jglisse@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=sumitraartsy@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).