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 02FEEC7115B for ; Thu, 19 Jun 2025 12:35:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9B7266B0095; Thu, 19 Jun 2025 08:35:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 98F106B0096; Thu, 19 Jun 2025 08:35:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8CBE26B0098; Thu, 19 Jun 2025 08:35:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 7F8F86B0095 for ; Thu, 19 Jun 2025 08:35:08 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 2CFD31A0F8E for ; Thu, 19 Jun 2025 12:35:08 +0000 (UTC) X-FDA: 83572095096.16.EE183E7 Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) by imf20.hostedemail.com (Postfix) with ESMTP id 2DADC1C000C for ; Thu, 19 Jun 2025 12:35:06 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=ziepe.ca header.s=google header.b=Y0lGF66d; spf=pass (imf20.hostedemail.com: domain of jgg@ziepe.ca designates 209.85.222.180 as permitted sender) smtp.mailfrom=jgg@ziepe.ca; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750336506; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=nGeLPnPcEKHJ2UTkFmEAzCnzbAa63HR34D5qxwVpPx4=; b=ZL4e7fBjcntb/ta45wYCa9HQrZH/v96mZnOEOTWf/BKg01lG+zqT6K3kxGsUDAVxvbmSzz 1Xc3Pw3XdQm7Ol9swT/80gSbcvP965EyGLq6YSGaqVU97rwzgG25Fu9wiqVN+2xrT6grrT 7Kbs/MgYYxzmSQXO7wA3E4JSB2Ag5zs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750336506; a=rsa-sha256; cv=none; b=KZN7p129o80EL+LyQi9GWXisrKOjhvQdDnAR6ky2SBMC6vXw+Uco+5PlJEnXMiBIzjeALV PiCAa5JwSTzIono1DoKS5bc1mv8k+XpjRTPXdz3lBLOG3kKAktKMaRuZFBAmDkYVkfKH66 PztT0x57IWdI07PT+U5SshGD3NPwjCI= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=ziepe.ca header.s=google header.b=Y0lGF66d; spf=pass (imf20.hostedemail.com: domain of jgg@ziepe.ca designates 209.85.222.180 as permitted sender) smtp.mailfrom=jgg@ziepe.ca; dmarc=none Received: by mail-qk1-f180.google.com with SMTP id af79cd13be357-7d38d1eae03so57632385a.2 for ; Thu, 19 Jun 2025 05:35:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; t=1750336505; x=1750941305; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=nGeLPnPcEKHJ2UTkFmEAzCnzbAa63HR34D5qxwVpPx4=; b=Y0lGF66d30MOYr6yf/hYsbNF80CJ0xGzAxcWvN2aHnvLwLpiqASMEXHItWQLJEKyaG 9p40FMGb5Z97Q/9NA5LTep2TtAMF0/5HEh7T3Xtr+85X9LFnjp2uRXmWrcBf3Esm8nip 3K1lOHMFLfcDnlG+KDzLEN5KNGInE6jLVwJTQ4GCLvh04AshMIH+KB5F4ItX1vYLtPcN omuKuitoiqKf/bhFz851KWVIEmHwULEwBVM93MNQEjon/fh4VqVSx/byfGqy9c27InWY b6l8MB6hJF/DfRRBUdDXjG4FBH54a1rONhgDHziVfeTlOtRHyOFCXZnGIh8uOsPlBJUc E/Dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750336505; x=1750941305; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=nGeLPnPcEKHJ2UTkFmEAzCnzbAa63HR34D5qxwVpPx4=; b=Q2X8Z6MJJOqjLJa0n0LUdnqvpy0qtZgldvSeteJtqBzxV7AG9iGAy2BVb3iW7Qx/mM T+bsejU4MeHT3NQbJw2wNRcE4rf9SvIgcQh6Y06CdVAi+rw1rTZNYwv9ht8MJkrxxsFJ ZLxveQ5mRE5OQF4nFYT4ts4JSkODnsuK2yddjgo5otPXxz+AV5DlxXLtPCfbuqa8hXG/ DXWXpCiRl6Qj+AnVVbEf2JwlvOI3U+/xPQvGq2eVK4s0v9Fbla5G0kBUAK6ZVNsCSnlN UsuEYMIHHJRwZqsiJWaI6u44VG/aQskQ1a+2p4hIIiphQIbm39c/KFuYZan18E0SvN97 yYYg== X-Forwarded-Encrypted: i=1; AJvYcCX+CPFJfYKtAElCe12t2zBzrkbsIXKCy9l1ZhAiwAmGyKEJbf0wdJT5ytLosTW2npwQ1EtylbPZ2A==@kvack.org X-Gm-Message-State: AOJu0YyF2svQHU6waibyvpeJzbDX+5de3tFQk59sRByyaHuLSMTBlPk/ ZRhXEJykvf2HUF/iA6nDSlFzF/VYk68NyKj+PDyYq+v+RqQp9ibbS6o2rqfhorWzwKwr7DdLedz vi6hT X-Gm-Gg: ASbGncsrTu9GoqLzMBzWPQxlrQMWNvOUIJBPrzn7nbIVSctT2rDAPneOXvUfKDvx/AS Jtp/FbnrzLBL81fzsVAf0PVuIc3PliT8XpN86vbgD9hpNMkyA1tC2KFtyAknL+VnkjJeqdsE8sG oLe7MW3dBVhNSPyrChfA66AEZn+AcSjut605Tz3pQf7/lkTN4J0vIkMTM/VSPkMP8Fvcx81dLYY lIyXHBo2xNaiSH5dU7v84s3Mx8axjq0NH7mRKWZVJo9kbUzxaNcjBiY4UfRoIpryiG0d/2GxJWg X2HzJRFzgt/bIFOT5SAGzlmiN3KO0ZmgWx4YUL7gPTBPJgQFI0o4PR0pZD93cO2LhUrQcPy+/pN 5lQ8uVvxnab88j2gDfQi/vZUy4ZJfpAJ0U+6XIw== X-Google-Smtp-Source: AGHT+IFtAzqq2Fu5GuVgOUj/d61P9ZIrRTWdTIfqS29I/fFKuDckrmDGU3li1DAgHyAbFg6OSuPLrA== X-Received: by 2002:a05:620a:4486:b0:7d3:e710:1d3 with SMTP id af79cd13be357-7d3e71008admr1128571785a.7.1750336505250; Thu, 19 Jun 2025 05:35:05 -0700 (PDT) Received: from ziepe.ca (hlfxns017vw-142-167-56-70.dhcp-dynamic.fibreop.ns.bellaliant.net. [142.167.56.70]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7d3b8effa47sm876704385a.101.2025.06.19.05.35.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Jun 2025 05:35:04 -0700 (PDT) Received: from jgg by wakko with local (Exim 4.97) (envelope-from ) id 1uSETw-0000000796Y-0nGl; Thu, 19 Jun 2025 09:35:04 -0300 Date: Thu, 19 Jun 2025 09:35:04 -0300 From: Jason Gunthorpe To: lizhe.67@bytedance.com Cc: david@redhat.com, akpm@linux-foundation.org, alex.williamson@redhat.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, peterx@redhat.com Subject: Re: [PATCH v4 2/3] gup: introduce unpin_user_folio_dirty_locked() Message-ID: <20250619123504.GA1643390@ziepe.ca> References: <20250618132350.GN1376515@ziepe.ca> <20250619090542.29974-1-lizhe.67@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250619090542.29974-1-lizhe.67@bytedance.com> X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 2DADC1C000C X-Stat-Signature: wxi76nxcu693yie6igfwzmy6m7493paz X-Rspam-User: X-HE-Tag: 1750336506-528912 X-HE-Meta: U2FsdGVkX1+zySy30FnQ6mhdQvvkAqyBlW3j1k86ybBDsXr38carLHppUO0678K18wFbyYCIwz/95ZGkrJIKrQN/GY2dqnsSzqbTVoUDRwLv86G8DklHB8vLyqrxg5iJudnMNIbgJN0OeFdSSF/XmdzjJ9v8WA350Im9bj3z+BczgLqNkw4aK6BH8NM2V7q95yCgboQoCylHsxLSbMwM3F35hmtEk+wnz5gRj/1S9qrP3vcgEAJjPATpJOO9lKRfAWUHCNlM7zemkGp2Jf9wK8RsJ/ltAsibsb6IFqC2jpoofPqihICJe895q/sRt47Q0Q5zxivYfhX9Xl0Cotuy7pPxQpC9A0s59vfb8LuOgXtJc1RiKyVrQxzGtgnnkxbhAzBwATQczMpOODIB4keCv7eM7JV0zZYKhLhDNPDFrGX5dK99tCvJUEQP+A3tm7tuOnnAmf0oq4tebZnRsKIO1oKhoe1qODlgtT6J2GK2gLWD2pLwO8VBukwEUmtULwXNtm+I2QbC0cdCvekHCKLp93fnWNMinnOCK422Ef+b3V1yzlqlXi9zPUsdUXc40jSsu6O606cdTQuC/oCfXKXPfqZje6M3myx3+UDjPSFaV3Ba6CYtftlDmZwGlXH4Z7d+pvP/NKlXj8QxLnmJEQ26qlj3u0r+i8JOB+gKxb2syoQOHGbKRWiU0+NLMyURnOnIhlCSxryPcZXDsTowy6QKPFcLO2hoQiBpUhpjrYKI5/G0PTr7NTFqCj/Ypu7xuo1hahMbVYFdJ/+Za+a3+AOphj5vly+lxhEoeBatuswlbMWaz24fVo0fjimdbd+8jKs2LnPB7jd2WD9pgrBJdPbJjcQQiFLfUkzK5q/6oQg36XZrQfks7jR5EsgbiiIKZoW3Mt/dJrSnsOmXoLJgSOZURycWD1+c89cWfqL3+fATPUbrfvh7DQoN1+rkl85tTUDnkHG++ZaV247TDxk80YB gVRGImgG fFcZSfSAGMgJtj9fG4vVGR/yBCrL6UFuisIlwqzg+3fsgwsSJOYQyX2ANRFCS+LbtMwOZfCtWch9zzF+AkiC7ku8hLFSNTI1GnQMyStQJM2WMsNipTH1JaIhl8wucv+wttIYWowKwFHkH19+4d2r3XXwoKNKVvmBFov6UpJPTJ7bg2scQD3zKKcLZaPGUgL36v4noOQyU8FIFQtqMsmxWazQttRFXcu1YD3eCl32oZtMU0fiHs/Nv9b/PvzOmsVzpyewFvSq43aZViwrqYq1pGbNLtsbiOREhwwY1o8QYBwkjZuNjE2j+hv2jGC0/9hwCCSZurm+PGckAQudiSeGV62nCsqISI82DiboW 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 Thu, Jun 19, 2025 at 05:05:42PM +0800, lizhe.67@bytedance.com wrote: > As I understand it, there seem to be some issues with this > implementation. How can we obtain the value of dma->has_reserved > (acquiring it within vfio_pin_pages_remote() might be a good option) Yes, you record it during vfio_pin_pages operations. If VFIO call iommu_map on something that went down the non-GUP path then it sets the flag. > and ensure that this value remains unchanged from the time of > assignment until we perform the unpin operation? Map/unmap are paired and not allowed to race so that isn't an issue. > I've searched through the code and it appears that there are > instances where SetPageReserved() is called outside of the > initialization phase. Please correct me if I am wrong. It should not be relevant here, pages under use by VFIO are not permitted to change it will break things. Jason