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 3178DC83030 for ; Fri, 4 Jul 2025 06:27:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C0FBB6B0253; Fri, 4 Jul 2025 02:27:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BBFB16B0254; Fri, 4 Jul 2025 02:27:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AAE3F6B0255; Fri, 4 Jul 2025 02:27:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 99DC36B0253 for ; Fri, 4 Jul 2025 02:27:03 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 40D231DAE57 for ; Fri, 4 Jul 2025 06:27:03 +0000 (UTC) X-FDA: 83625599526.26.7371EC2 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by imf03.hostedemail.com (Postfix) with ESMTP id 427942000D for ; Fri, 4 Jul 2025 06:27:01 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=DZ698PbG; spf=pass (imf03.hostedemail.com: domain of lizhe.67@bytedance.com designates 209.85.214.169 as permitted sender) smtp.mailfrom=lizhe.67@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751610421; 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=QiHfvwOVI0/DzO8i0IezA1Z19+xb67OoONslKakPCGo=; b=8Edqgelqbu+djqMuQ2ZmSvdm04nbiwNrKx76akdytd8hYwf0CmSyC+yeQra6bCp531iWjP UXLqX5DJt786Anypta8drnHco0OqC3K6LUxXpSzYUcawXKQt9H5QZxHlVLs1XEbnDBz0aG 4DVTtyCGtR4EbJYLGSIAqMC1uHUyB/E= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=DZ698PbG; spf=pass (imf03.hostedemail.com: domain of lizhe.67@bytedance.com designates 209.85.214.169 as permitted sender) smtp.mailfrom=lizhe.67@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751610421; a=rsa-sha256; cv=none; b=2lV0yOfuoBETOGd0kXpFnMSLzducgdILYtnI8p0XMGsUWbvfNj1WH47doXnBfHPDXjJ25I cWfuhARxujKEy/RXz5e1Uv1DkOeLf6YakNvsAB9AjoD4oOqCRCOOl3ffxOHqRh2rfk3qeo QbD2m7TwJ+1ESuaQjryx8FlhZbh/MKI= Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-235f9e87f78so7699435ad.2 for ; Thu, 03 Jul 2025 23:27:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1751610420; x=1752215220; 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=QiHfvwOVI0/DzO8i0IezA1Z19+xb67OoONslKakPCGo=; b=DZ698PbG6UbK0/FaaUoViVIiELzIlndmpqTKg/b58DywNPPfZ57rTtyR+tR1lSHDdf CxkFrVpfMmDqKfy+ze7WWLOgvTDsQXfyVircg0ITxfLl5W6PlXiZCn4qvdmGjLFMXG+h Vws4ZzCj+YwFdrkFVe07TveOS0TMu43ljh1YN4umOb96bwLcqCXFQ0UeOJT7Ig6NL26a pIhgmd9swhaTVYPHSeto7qaluGk/Sgxmq1aYCe8j0CV3ClNQb7RhQXQ2Fa4RMNqcWo5n xrOMT334Iir7Z0MCAq/2PC80lNNoNA2PPdapXLdrMqpZFlfcwv3lbAZFlDNvYv+2C+PG lHiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751610420; x=1752215220; 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=QiHfvwOVI0/DzO8i0IezA1Z19+xb67OoONslKakPCGo=; b=SH30U1lOH5YAIWxGK45D6TEPKA6zj/UYH8iqhnv6omqgJqseGo2fDfIflt4r7B9POM rQizVLy65w/4iJ8ceSyQzwsdtIdttQYfG5R0Q5gfiypxWx6qTwevxAiOH+xWQR9Jyd3p VRCesuRUPaqSNdW2zwjBhO9WHmrz0deJCn67uotTKNFS1xS791haLtK5SrrIo9ruclKT wdc7TMWFSu006ydGug+rzHqfOwZBa3xtb2abyTkIaMaEBVQcwFB1EOtHjz00/sK84Cvs xaXvXHjpMdO3pFQp9gIQT5T/BdmtOFbMstTQrlOJixCF0C07LZs1mglxRY5IeQ0Vebzi id/A== X-Forwarded-Encrypted: i=1; AJvYcCX15fjraPAYjicTKK0pdiNxFNQSsOORDpRR6JKQ93aHT2NEcdI0YJtygXwvYaqT+kVVB0BVweXg4Q==@kvack.org X-Gm-Message-State: AOJu0YyfTJAoFjudXgMyNnrE8TJdACxJhde9n+J2LkGw6Z257TBHmSk2 dYvdnBZr2vMNhcBHMbtMjmZyEuVe3wDKsL2JVLO0rqgZiOX27cSsrs2I0VEta+crbzESp5R9/Tc CecP0 X-Gm-Gg: ASbGncvSA2K32B/zbf3f/QtQr3ATQwNrrDMEzx3Cj7pG5YmgsUE95fd8P8tqlmUw16y aOVVXn2sMzABr/gZ/RZe99KVAH4EJ1dcUcCrtjwZqfXq/Kbkhi9mB6+kyvCIKWhpqsIeUihbX0y UuB7DVg0e6errlBok0gsD/4r76y1PztYI78EPL7w0IzgV6zZdXzjd9jj+Er1Si/dqsoAno2hygN XBVGXsNqmelxcACjyl9x/Cdne1EY2exOdofc/ADxVvgLwGC1GvplY2k7PffdBQjf7NzWbcmQqsn 7pFRXCxxf/VByIF+hrQ5TlH4iYgTGS+IQwPLhuDDEkJBfwySzgF+bIiJcqnRA1U3EeRafwm/vyD aVGJhEVnp198T X-Google-Smtp-Source: AGHT+IFXOrpM+FeRqzRx01wW+29lMpHFGQ2PU6Rtc5xxE9IkYr1rATfhqAIwp0ljrPlZY65KFR/JyQ== X-Received: by 2002:a17:902:d592:b0:235:799:eca5 with SMTP id d9443c01a7336-23c85eb051dmr27110365ad.44.1751610420130; Thu, 03 Jul 2025 23:27:00 -0700 (PDT) Received: from localhost.localdomain ([203.208.189.8]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b38ee5f643dsm1183240a12.37.2025.07.03.23.26.56 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 03 Jul 2025 23:26:59 -0700 (PDT) From: lizhe.67@bytedance.com To: alex.williamson@redhat.com, akpm@linux-foundation.org, david@redhat.com, peterx@redhat.com, jgg@ziepe.ca Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lizhe.67@bytedance.com Subject: [PATCH v2 3/5] vfio/type1: batch vfio_find_vpfn() in function vfio_unpin_pages_remote() Date: Fri, 4 Jul 2025 14:26:00 +0800 Message-ID: <20250704062602.33500-4-lizhe.67@bytedance.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250704062602.33500-1-lizhe.67@bytedance.com> References: <20250704062602.33500-1-lizhe.67@bytedance.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: 427942000D X-Rspamd-Server: rspam09 X-Stat-Signature: u4izwahjewaieewi9ks59oi68mxfz8ab X-HE-Tag: 1751610421-909787 X-HE-Meta: U2FsdGVkX19iALu/9a1xQ+7kHIgYwidbVhMZb1AaJ4+wrzRs7DN3p/zkDEqIxTV99hubEyl4poaLRxM0OREGSuNcvvWmlEfFuF9T1i/oc0JOtjpgzRdhbXQA2gDxxRfxRUSSLB0bxuHg4W/kMh3kF+nRK8siGjtmJvIDKN29kE/DLvsmn2aP2yZtbnTJN8+WGYdWnW2gQDvLtVWfHFrJ1O4RsYfvPJWOY2RKaocW4YE2JpKbDnbf8ZmLoal0YsDkXawuo+RVAZKNdgAu5QQ53i5I/6zYExJPkvRxqHrEpLOT9RQ+o4hXizRDCbFadUW9rdaHEJKsqDRI8QpBD+74M58if3e29TxB05cejHYa3ncdCFJJFkfWEJ7nR4Ui69BpP7PQebMJU689ckHYBUaBGQKpGKmcUNw1XVWmEnMh3FRPsYxFu9s6wImYuBcXIUcKYW7ZdDUoKeBiET+bz7XNFgC5wsQcNQIj6pBK9mt2yf7wZV45TkupXFTFBA+V710eY5s8oNI3vpEm6gXApDBJOLckI5eXQrYcD5bvwXV5p4E3czbjmDOcssbwl1TeDFks0URRl8TF7KBWoAyk0gfn81Ru5XbXOgjCnl+xPNZvvc2W1D4TN2CTI2cz1qsvJzTtemLizLSxeh3MzeYwgPPPcoqtOcH1tbDDjMCp5U7Evg0SkSkW/Ctn08THscRxNj6SsQDzn7VaWIHH1wYg5Zt3idN7Xi5pJRNyb4ZPofmh3Fl7RBIc7dZg3XvSCwc9jeRxfqPX0OYZpew+jCH1QZdw/nuwB5RoDID2muZpOJC7/9Hg0GKUG1PFR7GeFgOga7Sfj9LCiMa8lbHzSr6uXG/TIAmj/2SCv3ZagaMd6eHe/4Z6PZ25yw46hJF9Wf2CVlndCVQw3Fo/goppOR6PDBpt5ErnpxguBSfY95no/3gPOkkYetmOB5VoToMsIFYrB1y6IyErj6IclUk9G/E1Paq lv5Mxz3I CkqfJmci/4lec7TAoPwMVeY4yoOEZaGKRf0ydM1n/7TcQ9GxeOehgEjLI6nhrLveXSf3joLVLZO4/R+2zVq+sMW0mHm/IYBoR9ZIyn3IRHPJN88sYTvURnFboBRZDOo3RinVMYrB7/hf1zSyARrUnGsZLYWvshGhQK0BxNeblXg1PlbDidaFjI8gYkj0WGwI1lne9D3wSNqH/MZQsI8WF8/dPUx/6D5g9GibOzUoUdO55ojeUdYo8oFBNAw7mn/6DrpiKHaecvMsenDSdx7v+/w6Ptzi2sAT4p42cZQGtUaQGZfMk1Er400kjWKhz+cQjN/YXRQMY+z3jP9cknAB8J74/uEt+FFUFr/BDqA3eH0QAdZfC0Wnqx2OA8TE548Qk54ivjAjAfLZHlGM= 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: From: Li Zhe The function vpfn_pages() can help us determine the number of vpfn nodes on the vpfn rb tree within a specified range. This allows us to avoid searching for each vpfn individually in the function vfio_unpin_pages_remote(). This patch batches the vfio_find_vpfn() calls in function vfio_unpin_pages_remote(). Signed-off-by: Li Zhe --- drivers/vfio/vfio_iommu_type1.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c index 03fce54e1372..b770eb1c4e07 100644 --- a/drivers/vfio/vfio_iommu_type1.c +++ b/drivers/vfio/vfio_iommu_type1.c @@ -794,16 +794,12 @@ static long vfio_unpin_pages_remote(struct vfio_dma *dma, dma_addr_t iova, unsigned long pfn, unsigned long npage, bool do_accounting) { - long unlocked = 0, locked = 0; + long unlocked = 0, locked = vpfn_pages(dma, iova, npage); long i; - for (i = 0; i < npage; i++, iova += PAGE_SIZE) { - if (put_pfn(pfn++, dma->prot)) { + for (i = 0; i < npage; i++) + if (put_pfn(pfn++, dma->prot)) unlocked++; - if (vfio_find_vpfn(dma, iova)) - locked++; - } - } if (do_accounting) vfio_lock_acct(dma, locked - unlocked, true); -- 2.20.1