From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9AE88C71130 for ; Tue, 8 Jul 2025 03:00:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 265286B0202; Mon, 7 Jul 2025 23:00:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2162D6B0205; Mon, 7 Jul 2025 23:00:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 105466B0206; Mon, 7 Jul 2025 23:00:29 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id F105D6B0202 for ; Mon, 7 Jul 2025 23:00:28 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id AB56BB76BE for ; Tue, 8 Jul 2025 03:00:28 +0000 (UTC) X-FDA: 83639594136.03.D836B37 Received: from mail-pg1-f176.google.com (mail-pg1-f176.google.com [209.85.215.176]) by imf12.hostedemail.com (Postfix) with ESMTP id 5A58A40009 for ; Tue, 8 Jul 2025 03:00:26 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=POQnmB2l; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf12.hostedemail.com: domain of lizhe.67@bytedance.com designates 209.85.215.176 as permitted sender) smtp.mailfrom=lizhe.67@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751943626; a=rsa-sha256; cv=none; b=JhYXpUWpKDfIpsiouZu/H5c7SKCAmb1/IqzeQ6sxzZtArqZzFOW2fICE0sryxuj0GyH5uH NhEOmKABRCR3Lc3s0OJR2YE/bL3xQ95mfhJai/DzBdohWiHUnmL/+y7iVHIxcMj3vN2YRo RLAmJhEeqwW9Zx2K71ZTFglSjUzh8LI= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=POQnmB2l; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf12.hostedemail.com: domain of lizhe.67@bytedance.com designates 209.85.215.176 as permitted sender) smtp.mailfrom=lizhe.67@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751943626; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=bMrKKC1vkb61pVbzzmeJOBgVccrTmC1tTEZe+RTgQIY=; b=8Cuy1jsSL+u5jGSSJF79VjjwJE2Mhzkm7f224wQSv8FP5aZWVqoNTL5tVsApkQJtmWXwkX 6WyeLtxn/Cv1xL2knxSlyV89mfgTf6OBr6XEW+r6QhK2sUb7u+tN1kY9+aVgbkmD0E5EN5 22bqOYLHJBkC7BhIvv7FmFufKNSgC0Y= Received: by mail-pg1-f176.google.com with SMTP id 41be03b00d2f7-b31d489a76dso3165721a12.1 for ; Mon, 07 Jul 2025 20:00:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1751943625; x=1752548425; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bMrKKC1vkb61pVbzzmeJOBgVccrTmC1tTEZe+RTgQIY=; b=POQnmB2lqW+3Az9GqbVfV82k5MdmDCne7rNG6BruehkAtOeMYZLyPVnDMZCt+ib5X0 1pFj3UGfMlW31RhRPdmA/SwIe3sRlPU15LDmR25V9vESiqJv/WSm8qd2RqXbiixQm/2k aTZYpnFFQPmHlQxZ5j7cWUDDmcPQFjdKT9H78QA6Ex6ZgmvOgtFOo2S5h9CtdgMeJ4QK mlbdo6dtOsj8dpTLbBc2XER8kPfywzkIhofI4OUXBAQ8ps4lOxLKEkmbvfZhgseRyvKs 7QKpsuTmlbfNsOHF0ga3mqDBJ563Tp37LSmXaXvBjIfPSaTAKH6eoFqkBxH6EgH8Zfnn lc7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751943625; x=1752548425; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bMrKKC1vkb61pVbzzmeJOBgVccrTmC1tTEZe+RTgQIY=; b=dVcMA3xEOEvcztdw1jnxTqLy17PqcAKF9lQSdWVgzWzZHqWkDKRK1OYu37HbqbJF6q moni1X4rC4tLnf3Y9Z7XgYnSBqAzwmGPqG03c11E1BkZgem++L/CeorjzKrCP/q3JRDy tBRpyS4D6KfpIydiVgIIgPF5UFB8utKxWJXhkJfvDcNLBzw901SwF9j2Dl42sPgg2AT7 uh5IuhPN1+lNmt49dCGMKl1xZy5GR4DborIPlaBwGkN9eLyrTBTuX/Q4MXvhfbdBhXBU xhWFPxAnHWmkI86x2gQiqMOva+e5dZ8HgnzuMcpaGQwhh7+Gv3TZgzCs/U/e1ZvbAok+ NU2A== X-Forwarded-Encrypted: i=1; AJvYcCV8QcRoONC7HdiVmLvQo+KhejcAspkToK1oP/t017MD1BcnH7eHGcTw2+hOPYtKb/ju/TalazsjSA==@kvack.org X-Gm-Message-State: AOJu0YxHv2+Wl1dLKkgKw+LkPTc+YbwyxWzxHcOVdH/+H2pdocNNpahS LKe/H17K33g83ZOpM/N97YLtI8ZUV3DYpNosvIkCcJg7ovPSXbT8TPTWgatDjMK3F0Q= X-Gm-Gg: ASbGncv8rZFmFB93nqHldQf6jvVw/cLxkf+1DMOGMGvWFf6xaKFYyKTOSuhUpagzuTV hNZ+1zdgOb504pkg5e41ZDxkTaBxMkyQM4mx02y1TQTAlRFZ4coNBVxHq1/xHvJypwGnnqBxBTf XLfpGTw8S5ILDiv4d7WVgZ292/IxZzagYPv5vBJZFjeAgHuaqu4erFl8cOJgT8Fk2kML6tP7EFG 9IPgzes9oujV9e7wZPIQJYGSEEVV8wnTTlHym9ELqtur+kR5U4juxXzTt1isDc9HujjYpOyXm2l Nsqe9Zio3QTnwqMegPu4gUr8xwXPwax+EhSRLi1MTCf1YgsNuRxs1YybPaem6VIqpLWj5Zw4a0+ FndMSQXrRdYLsPA== X-Google-Smtp-Source: AGHT+IGONuKHAlHSkdF9dYjKJobYsaQXINAC8otRUB02iJ7r7RxJpmX1c4M/LkCrqml5u544gUG41g== X-Received: by 2002:a17:90b:2ed0:b0:311:f30b:c21 with SMTP id 98e67ed59e1d1-31aadd9fd46mr17327109a91.26.1751943624853; Mon, 07 Jul 2025 20:00:24 -0700 (PDT) Received: from localhost.localdomain ([203.208.189.10]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b38ee450fcbsm10029952a12.12.2025.07.07.20.00.21 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 07 Jul 2025 20:00:24 -0700 (PDT) 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 Message-ID: <20250708030017.46848-1-lizhe.67@bytedance.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <9d74e93d-5a5f-4ffa-91fa-eb2061080f94@redhat.com> References: <9d74e93d-5a5f-4ffa-91fa-eb2061080f94@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 5A58A40009 X-Stat-Signature: u1otmqipacirxmt34g7e98nxbiyprtaw X-Rspam-User: X-HE-Tag: 1751943626-46034 X-HE-Meta: U2FsdGVkX1++f9oggdMbo1l4aZxJ63FXPgvUrWSNEOaavkDLvq277xsvay0LZ+e4vWhqTUx+UIF+T6FW2uYojrNUAfFSIcJSjrFr35U49OeUCJwQe+IlIyEcb2uX0z/VhrLvm09RgEks4J5ywEdyeZ5ThJuvLIQmi+iV5H68u+YUe4BBzyQvNQhvILhisWR3beqsZpb4rzGnNhzmsdMY/nmQKNiTp3ob/x/xuMfMVAZk+hgVj+zePNRFiMtoWPrJlN1n1PzqOqNdoj7/gj+85gtfmfM4a7Ll/fGg9JpgH8AX6DJzCTRlfGBRgom9kL7AoiuxLGld5lnSjfCPfJCdOwc8wpVBvq6qCj/mNfMkcbw0RfQ3HoN4LU2VRIIAcdHvnPnVjqkGefFKlc3ZXXELa9A04vev9Rw9z3dzl2P7VjKUSqCdSro69JQtdEzF6m3trF6ZbJ9Nehwwthuh2bmhs2zQGcHaGOryYc5tjitR3hxlo21nEVS72sQa/mTgi03N3sfzpUDE7+Kg/Yyg9QgQmw82D0FEr7gBkf+w2iS/vNNuMZHZQy6AZ+QYeQcvy/aDQ0JbQIKJLYWebnN3nqm+VuA1pQfnTP63HCeIkVHiSb71OeT0yO/hx2ZmGV61ErklKJKcXII2bgBtGDjYYBXIJcWvdv2qZBimfihv5s1JZIKLzCBSkpdyRGqV5RkG/SktHKIxbjiDv3R58DK82bSomgIaIZBcD6FaCPa7q8R31oGnbNCJS424oVefX2B8AZ44s3tuq7akc/Yu3ausdoBT9n25djVAVoQyGVerCHucFNXbLkwqTCcCJhRbJgBee0bCCeK1OSq/arMHko+Y+2T52HxUZr/474B2NDNDv9lMWdhYFpdOhE+sxbzaXxZozxmXdv/wjyqGv+mkvOIVKegQr1+vKwlnmA4CvK2gPk82BClyL6FRhV/8QyaDcSyZVA0Ul/u3CH8b7im3GGeaFmk /eOEvVkY hCeHtIP9IgQ3s2C2QL56Ef+YJC2ycdaQgmG2O3ZfqcxrD5hbqKSGMHmAZ3ozKmIFJMshTJlh/F2HngZntsQGt0TmW12m3hsMI3KkSSt0w+0KKMp6g6QgGMial2hBEpO+4rZ+oiY0vDCyF4TEemPqyVsgnFE1/zFdx57+XNGoWz8rWC4Tid1nQpzByyelEjeeT+tVPSXmmumLSZR07cIIlaYinWgw05BwCcr/fJttddjcRgG0a18nrWN3Kxy9ouwLepoQy7QTGOSikL8x3QCKKEbkqD/mP8eiW1VsnRIOvPsCOZh7B8A5f1ZpfEZ8SPXEDJ7oa X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: 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 Thank you once again for your review. Thanks, Zhe