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 8C8E5E7849A for ; Mon, 2 Oct 2023 07:49:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2415B8D000C; Mon, 2 Oct 2023 03:49:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1F1BB8D0001; Mon, 2 Oct 2023 03:49:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0E1368D000C; Mon, 2 Oct 2023 03:49:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id F3BE28D0001 for ; Mon, 2 Oct 2023 03:49:46 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id C7E341C9BA5 for ; Mon, 2 Oct 2023 07:49:46 +0000 (UTC) X-FDA: 81299747172.20.A43DFB1 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf22.hostedemail.com (Postfix) with ESMTP id 62942C000D for ; Mon, 2 Oct 2023 07:49:44 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Qm9tqKZY; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf22.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696232984; 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=R3pNKxFBUrDFcUW5mxBwAPe/18s1s98AEQ79l0wt2AA=; b=GiqseN14NAmUnHUeH45rTMcgwQTy3p2804Byl+5AkWf7KdVLngmpAOHbRx/jqwYcH2M2y3 FQgPipSJgkjs98ynwHW1nFXgpIkjgX+b6jyvSSPpjeK5FRMnBlSzBpi9CrWNWkvRsdG5Ii E97igs1TV7vGV3DQ3mNY4KqWFX8vBEc= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Qm9tqKZY; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf22.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696232984; a=rsa-sha256; cv=none; b=ae9SZxdK72BA43nHYYiJKFznoLGY525t5dnl5+TAoS/CI2JwvQ7JI6zn/5ZV7/+vu2KlDV VIxT/U5izWyNGJWpVCWzBV6WaUwJZj3aI9icuWbCoXjBhjrqqolvNKAvgADOt471nGOdld LtfB5qrIUfkp4ExDHLqXdBUcMx46IRg= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696232983; h=from:from: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; bh=R3pNKxFBUrDFcUW5mxBwAPe/18s1s98AEQ79l0wt2AA=; b=Qm9tqKZYABYPRb7sor+tDQnl6L/WGtTQSAzPudhaNhph4w8/WYZ+IFnU2VpsdXnreye4oF pCJcAafjCtfUjiwklDp/EFuDg9arhxBC2k29qzqU/ueuOfKb0JiHc9NcUuwvJct5Wspr9D q66yzEX3PVybY3+1o6rC7327pUlciG8= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-389-0mJw0vFLOEexoTeMHrkTDg-1; Mon, 02 Oct 2023 03:49:42 -0400 X-MC-Unique: 0mJw0vFLOEexoTeMHrkTDg-1 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-3217fdf913dso12018496f8f.3 for ; Mon, 02 Oct 2023 00:49:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696232981; x=1696837781; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=R3pNKxFBUrDFcUW5mxBwAPe/18s1s98AEQ79l0wt2AA=; b=RDApD4+LVorklMaqWqdF/J5w+9KTpzp0c0v3BVZdK+EG7xzOc2L4TmzBTVDokXkxZj SVPp7hxlBozBHLGCKN62xzWmJaj8YsAkpR9wRf+NrPOK3lJJRl2RmVjQKPZgK219lXeq 6tuU6YhqUK7jGOVolrzV1ofp3xba3rSjFEu8yUuSBoPqFO0/TrcN10YnxproYlThpOKP hgk9Zzq1eddZ8ViSV6RY6fTlSmbqDu6rZze1ym5JF7bDvfOl/FwWaL4hZry5F15KT2o8 /L3Vvan3SWaBOBgpeNGY4YyYILeU3cmzABiJhQRq/v1bqlpSB31mOH/Eazf6/RO+E0Y7 QNlQ== X-Gm-Message-State: AOJu0YxgYAjsAtpA7U55XwlwC7qBSQcpEM67V4cGZfQ1HDHFuIm0AEBg SvKH8FVgQ8KL0sU7YDiF5lNUrL1YBaWD1jbLVUY6PKUozcKyKJ5gCQab5olNJhHmE+rEvVqODgM hPvC4Vbch+r0= X-Received: by 2002:adf:cd0a:0:b0:31f:f982:5395 with SMTP id w10-20020adfcd0a000000b0031ff9825395mr10301923wrm.35.1696232981330; Mon, 02 Oct 2023 00:49:41 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFLBiLwKVSTk/G8HcTeWj03aHPuB2YTlSJwfNO0ffMI/phA6rHC95xmGQ2ps9Gau1Kj+UL4rw== X-Received: by 2002:adf:cd0a:0:b0:31f:f982:5395 with SMTP id w10-20020adfcd0a000000b0031ff9825395mr10301886wrm.35.1696232980873; Mon, 02 Oct 2023 00:49:40 -0700 (PDT) Received: from ?IPV6:2003:cb:c735:f200:cb49:cb8f:88fc:9446? (p200300cbc735f200cb49cb8f88fc9446.dip0.t-ipconnect.de. [2003:cb:c735:f200:cb49:cb8f:88fc:9446]) by smtp.gmail.com with ESMTPSA id s5-20020adf9785000000b003232380ffd7sm19386758wrb.102.2023.10.02.00.49.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 02 Oct 2023 00:49:40 -0700 (PDT) Message-ID: <56c63536-3947-49b3-d271-6092e50474ec@redhat.com> Date: Mon, 2 Oct 2023 09:49:38 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH v2 2/3] userfaultfd: UFFDIO_REMAP uABI To: Peter Xu Cc: Suren Baghdasaryan , Jann Horn , akpm@linux-foundation.org, viro@zeniv.linux.org.uk, brauner@kernel.org, shuah@kernel.org, aarcange@redhat.com, lokeshgidra@google.com, hughd@google.com, mhocko@suse.com, axelrasmussen@google.com, rppt@kernel.org, willy@infradead.org, Liam.Howlett@oracle.com, zhangpeng362@huawei.com, bgeffon@google.com, kaleshsingh@google.com, ngeoffray@google.com, jdduke@google.com, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, kernel-team@android.com References: <20230923013148.1390521-1-surenb@google.com> <20230923013148.1390521-3-surenb@google.com> <03f95e90-82bd-6ee2-7c0d-d4dc5d3e15ee@redhat.com> <9101f70c-0c0a-845b-4ab7-82edf71c7bac@redhat.com> From: David Hildenbrand Organization: Red Hat In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 62942C000D X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: o4wpyzekimt9s43ta89z7gko9ofai1je X-HE-Tag: 1696232984-864964 X-HE-Meta: U2FsdGVkX19MN8wZTgKlTlmv83/qemyuRa3wJC2FU58n/6QMwh9eTi4tRjNg3U+jq+sfrHBarnR3EfdFbk+4DETll4B4Ftc0isiM26gIOrRX9cFZriTglI+YGMWhYGGElFW12QqXP2fEQQ+c0AIBfjD14nUNYgO3qFZAEnV3888y32NVI9IFm69L0ohfHLK1c6DbyvDAFyJbQk+etUEmYlsKAf5RlZ46rTp2MbA+nxGexpY9xIOVztjn4Ktm/Trz5oE9dHKlrn8OItD+HuHR6SSn8Bf3ZwA2v2wzJNB+0usMN0sRIMIhS3/42qDy4n+077F6eqMqa0AwvHbUd7jizjd+7Df4qsh31OwUVxKg0v/JyPL+lrGxFy21QV03QkhkAtgBqV9IcJNh3+AbEF/UQBk++TqDsg6NcuHIBr4IwMGkkhsyvFIxYvMR0vIj8dubc6kbPVLLFU3Cr5QWuhiBZK7WH/hlR73tOva8n+CoroAVJZDywGG0BPQ5J/9GpXWKB9KDvjh334WYxxkIKju+i1gZCq5R0muYcudiee1MRj/yxWa+3Nt7jXW3uG8I25prldff7qgmxzVlnrsP+9QkfmXHVzu3+0XN6lxZcmTKyQKXf3WYYBS//wELCyUkrHOwSWEakBTqWnTqmTDFsPVDY54UG+qu+pdzqkD1vS5jQxOtG2Dtt/sMG5+ZLjB2s58YOyS3dyb0WOBTfDshAv8nxPeDUDsvI39iXUeP/+GcuYlqdOL+Md8RnNGlbloDItTs5Wk041qhb+mSRL4FaEjcg/voQQkvcz49q9S84s8L2DnrBhLX/4Aul891PAlL0aFJxEmVAz9zfHpzEqD12TFey/z2QyqODwkcEtYIu/AnGZ3yGBV1Hh5l+aIy/78Wsdrq2ntCHVbnksx15TNSJCRLjUOwGJD86vHudl7Kryy4OitlbFiKMu56kMaKZE0J5JAhZSn86EbzhiA+Q9vyc1s PCCNyCvR tOx/KgL2lMIbhd4TSIe6TstwYGwSs10k3Htp0fj2rny2OKQommSBBQu6KvvO5icGZAcVfQFMd8rESKyrlAlodHNncvev6Tqw8QC5a2hKvZdNdQ+Gzd7Gl3p8pAlaWeE0DTVEmtGKO4gwqtM5B5g7pNcsTiKM3xtLbPcakULUMqFEwtSkblP4Ah+fJNfadUVttmqjtuDt93v8QRXudDVU+7h9g0NHVlFr9i88GnmImysAnrYNsTHbCcg4UuVh6h85VjjAlEQv69o8Zfv5G+UASycXb2cHoiHbCzFV9c3Erde3xLHHkccQQNyIsr1t60TWudldEB7zXHn8TkbKD0w379ucvK9FZilJ78nFrCQrE5bk0JBgMBt9HMxp7qi5PpsdH16WKB80rG+CIHX40lMma005aY99OLzXTMu0jZ0iawJjTSFAe1irdoBDK+g== 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: On 28.09.23 21:00, Peter Xu wrote: > On Thu, Sep 28, 2023 at 07:15:13PM +0200, David Hildenbrand wrote: >> There are some interesting questions to ask here: >> >> 1) What happens if the old VMA has VM_SOFTDIRTY set but the new one not? You >> most probably have to mark the PTE softdirty and not make it writable. > > I don't know whether anyone would care about soft-dirty used with uffd > remap, but if to think about it.. > > Logically if the dst vma has !SOFTDIRTY (means, soft-dirty tracking > enabled), then IIUC the right thing to do is to assume this page is > modified, hence mark softdirty and perhaps proceed with other checks (where > write bit can be set if all check pass)? I think so, yes. > > Because from a soft-dirty monitor POV on dst_vma I see this REMAP the same > as writting data onto the missing page and got a page fault > (e.g. UFFDIO_COPY); we just avoided the allocation and copy. > > The src vma seems also fine in this regard: soft-dirty should ignore holes > always anyway (e.g. DONTNEED on a page should report !soft-dirty later even > if tracking). Sounds good to me. > >> >> 2) VM_UFFD_WP requires similar care I assume? Peter might know. > > UFFD_WP shouldn't be affected, iiuc. > > Let's first discuss dst vma side. > > WP_UNPOPULATED made it slightly complicated but not so much. The core > should be that REMAP only installs pages if it's exactly pte_none(): > > + if (!pte_none(orig_dst_pte)) { > + err = -EEXIST; > + goto out; > + } > > Then it already covers things like pte markers, and any marker currently > will fail the REMAP ioctl already. May not be always wanted, but no risk > of losing wp notifications. If that'll be a valid use case we can work it > out. Agreed. > > On src vma, REMAP ioctl should behave the same as DONTNEED. Now we drop > the src pte along with the uffd-wp bit even if set, which is the correct > behavior from that regard. > > Again, I don't know whether anyone cares on any of those, though.. If it's easy to handle, we should just handle it or instead spell it out why we believe we can break other features. Seems to be very easy to handle. -- Cheers, David / dhildenb