linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: lizhe.67@bytedance.com
To: david@redhat.com
Cc: akpm@linux-foundation.org, alex.williamson@redhat.com,
	jgg@ziepe.ca, kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, lizhe.67@bytedance.com, peterx@redhat.com
Subject: Re: [PATCH v3 2/5] vfio/type1: optimize vfio_pin_pages_remote()
Date: Tue,  8 Jul 2025 11:00:17 +0800	[thread overview]
Message-ID: <20250708030017.46848-1-lizhe.67@bytedance.com> (raw)
In-Reply-To: <9d74e93d-5a5f-4ffa-91fa-eb2061080f94@redhat.com>

On Mon, 7 Jul 2025 09:29:30 +0200, david@redhat.com wrote:
 
> > @@ -680,32 +724,47 @@ static long vfio_pin_pages_remote(struct vfio_dma *dma, unsigned long vaddr,
> >   		 * and rsvd here, and therefore continues to use the batch.
> >   		 */
> >   		while (true) {
> > +			long nr_pages, acct_pages = 0;
> > +
> >   			if (pfn != *pfn_base + pinned ||
> >   			    rsvd != is_invalid_reserved_pfn(pfn))
> >   				goto out;
> >   
> > +			/*
> > +			 * Using GUP with the FOLL_LONGTERM in
> > +			 * vaddr_get_pfns() will not return invalid
> > +			 * or reserved pages.
> > +			 */
> > +			nr_pages = num_pages_contiguous(
> > +					&batch->pages[batch->offset],
> > +					batch->size);
> > +			if (!rsvd) {
> > +				acct_pages = nr_pages;
> > +				acct_pages -= vpfn_pages(dma, iova, nr_pages);
> > +			}
> > +
> >   			/*
> >   			 * Reserved pages aren't counted against the user,
> >   			 * externally pinned pages are already counted against
> >   			 * the user.
> >   			 */
> > -			if (!rsvd && !vfio_find_vpfn(dma, iova)) {
> > +			if (acct_pages) {
> >   				if (!dma->lock_cap &&
> > -				    mm->locked_vm + lock_acct + 1 > limit) {
> > +						mm->locked_vm + lock_acct + acct_pages > limit) {
> 
> Weird indentation change.
> 
> It should be
> 
> if (!dma->lock_cap &&
>      mm->locked_vm + lock_acct + acct_pages > limit) {
> 
>      ^ aligned here

Thank you! We need the following fixup code.

diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c
index 03fce54e1372..6909275e46c2 100644
--- a/drivers/vfio/vfio_iommu_type1.c
+++ b/drivers/vfio/vfio_iommu_type1.c
@@ -750,7 +750,7 @@ static long vfio_pin_pages_remote(struct vfio_dma *dma, unsigned long vaddr,
 			 */
 			if (acct_pages) {
 				if (!dma->lock_cap &&
-						mm->locked_vm + lock_acct + acct_pages > limit) {
+				     mm->locked_vm + lock_acct + acct_pages > limit) {
 					pr_warn("%s: RLIMIT_MEMLOCK (%ld) exceeded\n",
 						__func__, limit << PAGE_SHIFT);
 					ret = -ENOMEM;


> Please don't drop acks/rbs already given in previous submissions.

Sorry for the inconvenience it may have caused.

> Acked-by: David Hildenbrand <david@redhat.com>

Thank you once again for your review.

Thanks,
Zhe


  reply	other threads:[~2025-07-08  3:00 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-07  6:49 [PATCH v3 0/5] vfio/type1: optimize vfio_pin_pages_remote() and vfio_unpin_pages_remote() lizhe.67
2025-07-07  6:49 ` [PATCH v3 1/5] mm: introduce num_pages_contiguous() lizhe.67
2025-07-07  7:27   ` David Hildenbrand
2025-07-07  6:49 ` [PATCH v3 2/5] vfio/type1: optimize vfio_pin_pages_remote() lizhe.67
2025-07-07  7:29   ` David Hildenbrand
2025-07-08  3:00     ` lizhe.67 [this message]
2025-07-07  6:49 ` [PATCH v3 3/5] vfio/type1: batch vfio_find_vpfn() in function vfio_unpin_pages_remote() lizhe.67
2025-07-07  6:49 ` [PATCH v3 4/5] vfio/type1: introduce a new member has_rsvd for struct vfio_dma lizhe.67
2025-07-07  6:49 ` [PATCH v3 5/5] vfio/type1: optimize vfio_unpin_pages_remote() lizhe.67
2025-07-07  7:30   ` David Hildenbrand

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=20250708030017.46848-1-lizhe.67@bytedance.com \
    --to=lizhe.67@bytedance.com \
    --cc=akpm@linux-foundation.org \
    --cc=alex.williamson@redhat.com \
    --cc=david@redhat.com \
    --cc=jgg@ziepe.ca \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=peterx@redhat.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