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 AF5DEC83F07 for ; Mon, 7 Jul 2025 06:50:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 51FB36B03FF; Mon, 7 Jul 2025 02:50:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4A8F86B0400; Mon, 7 Jul 2025 02:50:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 349FC6B0401; Mon, 7 Jul 2025 02:50:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 1DDDF6B03FF for ; Mon, 7 Jul 2025 02:50:27 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 8F320C03AD for ; Mon, 7 Jul 2025 06:50:26 +0000 (UTC) X-FDA: 83636544852.05.DE6DA90 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by imf21.hostedemail.com (Postfix) with ESMTP id B94ED1C0009 for ; Mon, 7 Jul 2025 06:50:24 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=SNMDGDkk; spf=pass (imf21.hostedemail.com: domain of lizhe.67@bytedance.com designates 209.85.214.175 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=1751871024; 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=6PFWXLkd7/c1cp4M+Bo2ZhfrmF/2shcYDvX7ox0g8lei1H7jjA2sdOyATFgiRpvNZ43Kxb /6zdnF58FXU9JTEV0MgY/jyX+cKEzj714Za4LOEfZTAUbu9OTpdKLCckQnOptTXBcEQJFd oK/1hcdEo7vuqOZVCW+hQpNNf9xVrzA= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=SNMDGDkk; spf=pass (imf21.hostedemail.com: domain of lizhe.67@bytedance.com designates 209.85.214.175 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=1751871024; a=rsa-sha256; cv=none; b=jnHjuyWk1+fS9Kzu7BQ5y0rhBAjq7DkGvvYQRdV0DyFt2IziKCl20xRUlSSF+1Ua2S/oZw jQSnF/JO6sDhQzbshRb4SBtloQCP6KDcq8oJNJNGWY0NtYU42q+PiDbMX/E92jXJftX4tv ttlrzIQDHRzPAc9w73DiZXBj7U6wYsM= Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-23526264386so26241475ad.2 for ; Sun, 06 Jul 2025 23:50:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1751871024; x=1752475824; 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=SNMDGDkkWqMWVe6lNfEkB2XHufd9gVbMvl2dU0sAsTdqGPdHF9/DkTP4ZXa786R/z6 4jKV0fX61xFBVgHvSyivRaJOrfjVYog8LtE8y/aesm0T0BTsjH6Al4dVKiIVQ/KhKORo 5yMxhvpdINP9MEC77eZowSUMOyqgVNOAP9xUiiImQ+abhOvmqTBoKpDnPCxfZGlHTNRL jIelOHsBBZtz2hH1w0WW1y2+RKnBFys+hYFNsF0Vv7Uv2U0SDZXxDRlfYatgZ+8LyGtn fCStRLI0BT8KuA3xilD5btDshO1GXcZmynciaLz0+C8niB4mnYYDBOyz0D5rTOMfqFW4 vjrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751871024; x=1752475824; 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=LVOOwp26kr0WTF1xIgSPOCTAoL7yxudXR73I1NspPPnytsRfekpQcCOIZ/7jmd9jqY La9yK5KNZuX60ECSU8XTYVXv462BML2MmK/LtS58Z81S8w69lbe/WHH4UqaDf8G/shV/ ekdvHmqugeI7FVBOvFioaZaW55NYp5elZR3QWmpjjJar9Eoi/LdC84C+3bIPakxCTp8n n71KoXdxkq7fYzdgksVRshUyEYUDoPds5JZU5f83WtHIxOOdxhslLkE+Ph9UvWgeKzap cg+UpurLSkylHmpoqllWVMqrMvvfivITj4ME3qwqkvzpkBMo5Q7XVmy17JxCLdQVKVUR 2vaQ== X-Forwarded-Encrypted: i=1; AJvYcCVBlYF1gKKAa7dC1dHuVJAz2nzMBeru8yP02pnRpyywAF7ifKCOArT5ppGikKTOArq2F8cKu2udNw==@kvack.org X-Gm-Message-State: AOJu0YwSkU7Ms9AV9ADfjnL5Mp0LO5ZywSUbr5YTPmMgu/bsD7g/wmGS SFRqwhP7GANIP8Uf7rUSTKH5uBb3qM/Zib3+LmO8g2VepkcHxh7jWy+3nHfCekSVcLE= X-Gm-Gg: ASbGncuzlTx9OEa1NMn2UgG2MXiqVBIR+SQeErgxVTm1o2ZuFmceVGOiftCvSRtoj2n stV4kUSkXinSYHoyFNwUr9zNOZC4ul+7VHvsvyf/31dyB6Huc2RgZieH4v4VfP2CPfcl80OUOB9 cDJsXfBQ05A0VS/OqUWcQlJW97ZtaYK6l0kJwPvC5VIhwDfvnc3vtHj0sX6bou5HfptX+GNu2ja risyqHaw8ceISs35SMYQdGgtbytB4MVG7MTcOoPXtElGwWjW3ebrMiLm47qNTQxQS2tETZY3oqw bk5BEVrr5FGTD3bW9TebOPjER6zYv2r8flYd/maymgIJ99DL/U6RNZxyKVdCYiQFEnOcG+VZU4j 13XIpJ7Qgdz5+/CBK2EXABsk= X-Google-Smtp-Source: AGHT+IFMBY0822v4rgg5psHQsiI89RRrF9TLtvLgFYQSnw9DJEUz57tWFMIxOBTqvqWWyVw9h1H5CA== X-Received: by 2002:a17:903:1b4d:b0:23a:bc47:381f with SMTP id d9443c01a7336-23c8759dbb3mr181052285ad.36.1751871023683; Sun, 06 Jul 2025 23:50:23 -0700 (PDT) Received: from localhost.localdomain ([203.208.189.9]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23c8431a1aasm77377635ad.15.2025.07.06.23.50.20 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sun, 06 Jul 2025 23:50:23 -0700 (PDT) From: lizhe.67@bytedance.com To: alex.williamson@redhat.com, akpm@linux-foundation.org, david@redhat.com, jgg@ziepe.ca, peterx@redhat.com Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lizhe.67@bytedance.com Subject: [PATCH v3 3/5] vfio/type1: batch vfio_find_vpfn() in function vfio_unpin_pages_remote() Date: Mon, 7 Jul 2025 14:49:48 +0800 Message-ID: <20250707064950.72048-4-lizhe.67@bytedance.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250707064950.72048-1-lizhe.67@bytedance.com> References: <20250707064950.72048-1-lizhe.67@bytedance.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: d78dteyhkjodaeseo8c1gbck9mi678hr X-Rspamd-Queue-Id: B94ED1C0009 X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1751871024-901367 X-HE-Meta: U2FsdGVkX1+l7V0eUxP7R+g44ev5UgYvT8aRo9PF8899+iqytl5rZIT5j7NyyHdF4dXUmcnLTB9KVxxNWtwYJjP2iMb66ELFeQ6kCMcnO7kUzX75iJKG7QYBsk43Grt30mMVleZ2qTHHuMV+YacII55edAbeOE6S8O+KKNitU7hJMMvbN5FtUuDGKev9kGFVulgAzfKHAerUTqXtx5dN6Jbr7RyvkZD14S8CfWhEyH+b9W9my3T1wuz4kHjfumuHcAlIeFubwjCFEzrxogd8/qTHNjuBdghXBgSuGSIVBhWCDDud67sxCdGQkW0bDipSIi6gkG4QIyGl4pVNdx4d29vk/DfH66k3Il5BzQ6rFk9TDpi0k+c54VxuDTKWueWubGH7BHTlRtrldr3h0O0JdlxQ8zhjy9CsclyPGBrZ37gs2Gege1VJT5nsoSySYOd/rKRstWF655XyMRYwuR3mlcY8I7up7R04AUoufqAARbzvjcCTkNyp1MAU0lb6tR/xGq6i6NYmZSSQSitaH9xYwCqHPo9XTj14ON6Crx5MmpjxUA32UKfMofdqP5CnljilaNv2pdx9IpbnSaLFXFgxiGM/Un8eqCqs4ytzk/U3wyVTvNRAIdvjb8TZsEKr0W+sfoX62XQgEsdR08rsI4RO6XmBxAgFMJhqiufrG/3GCdiaXWT9kaJrpqL7XTmR/VP/LdjysYRc8Htl5fAgLMtw+Xixfulky5y7n5RJyx5SA1iRlNaJG83rg4KTWkPDICduaQLY58SJocdFXSWvt+avHkUqs3wSj29HQiGOngt0Mr85yf1zpkpws4UXivFhy8Xkt7tFZpABgrIw8WyYL6S/Xt854sQxpFaCnpdeaPiSws2feSRwyp8vd7HuG6I99MwkMqSVykKWmcbkh4umWQTVqvq7w5gDQw2lIs5gRIICt9euy/NZvFhQbJDFOpudcwYdCWdzQy/EvPv6r/vSiy1 FK9amz76 KLzfyABzeEq8M/lOuyDDLHMxsNq+g6+xR1R37S4DNcUTqHBYHLdX7Qm76Htfo9H2Jqry5j/KcjmdnKpdHS5gKTNYRZciVdBF/zrYxy6nvy93m5OETOCAYlUaeXpocY3cIJuz+L8aZMx9pU7OdwjEUftsqh7YJ2n5DeG4MVwZ+YVogHZKRiZxrO9FNmv/TUBWmhcS61CbkLAAAVeu9ljFwSK0Qemg9ER/ZTN6oc9kMZhZJroQMfFeLVKH4Sb+KX/IHBXd0lWURZhGMxDd4iUCvRxyiNj+rN2r4YNM85hcr7eWWD4L8CbhjqnxZ4OcXjWGlbqoe5o3Z/mO+3vbbOLp8Bl32RmbiqMNzhBDtEyRV2i7P2YvrmInrDAImPkQe7YHFwaxhV6maCGiXOd0= 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