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 A79E7C7115B for ; Thu, 19 Jun 2025 12:49:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DF05D6B0092; Thu, 19 Jun 2025 08:49:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DA1506B0095; Thu, 19 Jun 2025 08:49:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CB7BF6B0096; Thu, 19 Jun 2025 08:49:20 -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 BC8E76B0092 for ; Thu, 19 Jun 2025 08:49:20 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id D332D140FBD for ; Thu, 19 Jun 2025 12:49:19 +0000 (UTC) X-FDA: 83572130838.04.E768323 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by imf07.hostedemail.com (Postfix) with ESMTP id 9DFC340010 for ; Thu, 19 Jun 2025 12:49:14 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=N2LbBz0H; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf07.hostedemail.com: domain of lizhe.67@bytedance.com designates 209.85.214.169 as permitted sender) smtp.mailfrom=lizhe.67@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750337357; a=rsa-sha256; cv=none; b=ieU5gpA1NrDLd+ENJILq49Yooheo/3j4P4LUqahpB4QUFQ04p/nusO5H8o5XYxma9+NU3k a9xp9n9zsHpxoNJIueERKB8yxkM+IovipSZ8J4FbiEOmZE+q87B6dZj3MAKnvwBclCIO+x 0B/Zt/eA4Gb+XnX68zrQhOqlb9xn8lg= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=N2LbBz0H; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf07.hostedemail.com: domain of lizhe.67@bytedance.com designates 209.85.214.169 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=1750337357; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=6Q/lJ+JUjVVRbd58/OtFVRAYdVLmgcDw+VEZqa5SvKA=; b=3DyZAX3cxvc/hNiGIk+2YhVs3djdRGjiROhEJ+FQZUe1c3zLLieKe9NfxXAgvZIBlKqSFm /j8HhK2G70fH0bVIC7SsodaE7EeRnFMx9labiPwGs945uNx2ECKR+ZbNRDRGKOjq+5t9d5 FUHPM5NZ53lBml0UEp6bVr0eFVch9ps= Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2363616a1a6so5548175ad.3 for ; Thu, 19 Jun 2025 05:49:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1750337353; x=1750942153; 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=6Q/lJ+JUjVVRbd58/OtFVRAYdVLmgcDw+VEZqa5SvKA=; b=N2LbBz0HDCRQeHAk8tKp1IUlUjNQmI28AFk8W1zMvxNUppE1ZifkmadZrTEFZahJLG vMo7mjufL5cNbmrnfwnY0IMSXGXkkspq4m5ZrgVhaClM/KLNrn83aRkTjCePxT4/At2N wETAy7KQyXil2hn9I7iYbqe6VgxwM6vo7FzWINwBvnqDSUXe8NCntbJM143ysg6mRD9n LPslkQnXgpB+vY21iDukYA40SojUDWXraXb6dgJndbjuSjOVGDuoYIgrP42cn62MDLEy 4rZZk4b10tE03nqt/n1enKKis+1yAc+WihpgfUo0aoi8mjq5y3VIdmvlm4BEBkNCcDeH UBJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750337353; x=1750942153; 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=6Q/lJ+JUjVVRbd58/OtFVRAYdVLmgcDw+VEZqa5SvKA=; b=HgTURLWZDBx8o1xcHOQuutuj1/KmE4p2zxR+gebG5gqOqWnUTbv97jT3RSBvDMAPe3 rYGkOj89dn21F0obp56gKzkT1KY+xFZR52Q4GstZUtruLQUFEtxOhrvn4pbtEOSmxT6a A1aoqohB9E4xYqlRUoFaVUYNkh6fbgAL/xGy4MHOJEK4uVZ3l3b2f8/BtCmDp1n8fgMN pPxk1y/wd5PpET2fUFM5AF+z+YcodPBCgVTXOTnyKjHzJM3VzuS7ImOEUEn9WQnZEWc0 smEmxdZ3CS5mVivc7dDebFwOPWjmAYbKkyCR3bSVL4PB2sRj9vc3z/KwVRZRHvCCfis4 jPhA== X-Forwarded-Encrypted: i=1; AJvYcCWl/bdaM+HrlnfatNi7UWbWYIaDTMffQvOgYZ/EPReRsYok3nGnvMfya5iUgBL6el/ae9PauM41EA==@kvack.org X-Gm-Message-State: AOJu0YwSxs69hl3BOMlpzALOlXZybVwxoCwdN+l0O89gxuN+9fxzS+2x 5S38tMLb42++aOk5yUGeBpbhuwv3yfV3Nl9gNcmDvyq7LHD6NyBK484GVJrOBiYiEdE= X-Gm-Gg: ASbGncsi0DMzCQWnOIo835PxHREcH+eAaZICyLFwLQr1u2mkQ8zfL0W4UvAVzqKC72B Jq0kpGYaUcRJj8QNEOw2/81L4dlFZDYpSH17dxeHg/9e0vt4UWSIRFckJ+mZwAojlSDO8BRkkg+ +iTcq7+UmSlkCwwS2BxTDGHxcxmyr9WKFVna9gKlxNI4Iu8neTKZ2+aDsMYeMTiZZVtp4RTtaoi qkEDh409LNVDkjyroQiu78xn1xRY7rLtNLmKoNre90kNG3bay/IxZ/+0xWGcb47cW98NvxxBPkk b3AiAC0KP41sfBisunSd625zwBNxnOg8DD0SPP63KinVsV5o89k4LGpqoVRxNjhWes7EtWrBi71 UT2/Yiqz3tRP4Rg== X-Google-Smtp-Source: AGHT+IH69LtPDdAgrBovWhMgrSjTEeMKCzKN63Bmw3qGTAGNPNoBSMtG8u3ZPMyzGP1TzYebG5OJzw== X-Received: by 2002:a17:902:d50e:b0:235:1706:2002 with SMTP id d9443c01a7336-2366aeff7a1mr337959005ad.0.1750337353103; Thu, 19 Jun 2025 05:49:13 -0700 (PDT) Received: from localhost.localdomain ([203.208.189.11]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2365d8a5b4bsm119579195ad.54.2025.06.19.05.49.09 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 19 Jun 2025 05:49:12 -0700 (PDT) From: lizhe.67@bytedance.com To: jgg@ziepe.ca Cc: akpm@linux-foundation.org, alex.williamson@redhat.com, david@redhat.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lizhe.67@bytedance.com, peterx@redhat.com Subject: Re: [PATCH v4 2/3] gup: introduce unpin_user_folio_dirty_locked() Date: Thu, 19 Jun 2025 20:49:04 +0800 Message-ID: <20250619124906.47505-1-lizhe.67@bytedance.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250619123504.GA1643390@ziepe.ca> References: <20250619123504.GA1643390@ziepe.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Stat-Signature: mreagakqi15ke85ihyn9qorugum85q14 X-Rspamd-Queue-Id: 9DFC340010 X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1750337354-512483 X-HE-Meta: U2FsdGVkX1/fjTtheti6lczmRGESjy4S6OpK7vzAgAI8Jy8MnSKmqIfVFGPFDW0GvwsinAUh+wMuG5D0A0ydPrZI7FvcwftG112HFPMVFoEf3v6/peIFi5raifgubxytZKID6azEPbcCeqyMhYgTqmly0e34+S/CErVJxDQo4Lyz7dWIjVN/uFHRdC7OvkC0uM+7gCW4/9kmJXs3iMxpeX0qjOJwotOxI5tOEKL7p71cMBZghpugTf4MkDg1kokwPuywm2G0A6dRRdI8l699JZRykgXVX4ZbPOc7xh66WH3K7uaKyLk3/BIJh19QVbDCCaYFekRLjkEx5FX3qOrsR/Ci9nqtsjoPJnQSlDUwf9tw9hOM7BATSA9AGqvJtD1g7f4JPXBgzEuZXt+D4dApwqU2AtJ6fbv1DZFPZKv9siKlFim6EEQeAAXHvKE5dBUvZsTDqpQkBlelUsugWHJQcI+Co3475mx6CLEFiBJEsjwr4c6kxBfQSrAAfO9aZsphZor9LmHzz7evuTOhENz+DPglPv72S7juKRzQsOqcDS1sSK7SApmYe0KHa5zyrskE4QI2V337sFo6brq3yGg3+eFuqxfqDPxFPOrbFhxXN/UmfqP3vorELtuoFwyOfTE3S3ls7zRkq7Tpp+/fswjG5WFm/j3leHNN95B0SypqNB1V/4fc82qtnmMqQfqBY+sSTB73eprh0by8jsan3JrmyP/oHsG2hLPcwsecWdVp9JsXph9ZNTLxH1tlpWhk+/8LqAlGrqKrOjuU5k852aadYt/2lPW9w2BTSYC3s3kLXnFimpiOsWkLM6tpxB7ZO9o5J5k5qwbNnuUauGz6+UcvuGMlaCQQxcRMHlUvuzRifr0bXsK9PeN+X207IHLis2mh+Etk//VRPa/W5MhAmvztQKut5cN1mQLyOh0jqhSPB2lL7CINmFe7nCLGVFiOjkbX/wmDPnwbkxhUv3W0DAE HZ8IONMK KY13ooXaeX+xm7nB2PP3CTMNEotSIEvqpne8DywUqv/5G/7bISAlIADszA4apeQdDejKKXZm1qU1ppv6Jpy+sxjhb3Ycrb9PIhnMiuKV5x8K+/hayZEam1nhvxNGwKZ92YCk2m6Rw7E3U6hvhplMGUa3lzUJFx8kyykLw/AYRNyGsJBQvE1qAM+riW4z9MM/Ljk0tx/fjLiC6OVK1Kim7KCq//3O4BQMxb6bIrXX+AU6cGnegDpmLepyc3plhkGbHQcpjNBgJy1E/5SdkrSGHxlcTtgUUwRSQj7A0tfmZyB6T9YIF8zlLAPgzLWo0Ku0Df6aEVKuxb0336SrTWR3Yq6lAazfTwrGCyQx+QDhD62HyZzA8YJixY4oq22ZPw04H7rQVYcBmlG4mrx2VASPiDsT3rGQEzFH15h8+tP/TSb73d38wkcjcUoXEyfDXYjp6Uvdw 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, 19 Jun 2025 09:35:04 -0300, jgg@ziepe.ca wrote: > 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. Then this approach appears to be no problem, and there’s no need to introduce any new interfaces. All modifications remain internal to vfio. I’ll send out a v5 patch based on this approach. Thanks, Zhe