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 5D22BCE7B1C for ; Thu, 28 Sep 2023 19:00:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B94FD8D00A5; Thu, 28 Sep 2023 15:00:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B1D2D8D0053; Thu, 28 Sep 2023 15:00:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 997F48D00A5; Thu, 28 Sep 2023 15:00:47 -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 819088D0053 for ; Thu, 28 Sep 2023 15:00:47 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 2AEF3B429F for ; Thu, 28 Sep 2023 19:00:47 +0000 (UTC) X-FDA: 81286922934.01.BB22098 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf12.hostedemail.com (Postfix) with ESMTP id CA6744002C for ; Thu, 28 Sep 2023 19:00:43 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Z12cDymA; spf=pass (imf12.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1695927643; a=rsa-sha256; cv=none; b=L7Q2P0mefEfHJiWZRYuWhbK9s3Tsha1Dugy5x7U0WSijGoanmVv0ipWEo2ufUDYUdCBUpU 2bFLIP8YY3npvvAFz3MKCLyC9fOPmZGzYhyoxpzygAxm3RJcF2pBgEygp8l3I98gPCUb4V b9Fr5z+D5gv2/3WWDaEwBfidutuavls= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Z12cDymA; spf=pass (imf12.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1695927643; 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=sYeSXBF9ox8JewI5CgNTTLRvL8aO3BLx9jhzfMOKFj4=; b=tevAYebP1h4LRzTq+gC2u4cwH37cGQLyYhGPFw5Kj4PoNiAR4AIh5nakTUcXq4e1BtYp4w gW1CoYPGKvg8eZoM4ZWGmKEA8wVKqJJZXA9E9p3WIh9NSnrWnsrAPv6BNelgCeRX6vwV0V mSF2nMvjBoR/XXDvbeCmxKqolpEWZGg= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1695927643; 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: in-reply-to:in-reply-to:references:references; bh=sYeSXBF9ox8JewI5CgNTTLRvL8aO3BLx9jhzfMOKFj4=; b=Z12cDymAbTrp3C4MnW235jQxzK1QFF0CmW1ywiid7w5F6LLZPLJO5XhlMf0viZrWIdJvst 6HvoJ+0XmNbDpoeeRrFG5fb8+OkzvxzoM3YuYDl7fv8BtyHd4rbAcBa1WVg74R61/2ekBG zQs8uYGsN49dny5w05S33LBlcdaZg94= Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-90-9Y2LlrS5MwyBPc0_5931pg-1; Thu, 28 Sep 2023 15:00:41 -0400 X-MC-Unique: 9Y2LlrS5MwyBPc0_5931pg-1 Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-637948b24bdso44630366d6.1 for ; Thu, 28 Sep 2023 12:00:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695927640; x=1696532440; 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=sYeSXBF9ox8JewI5CgNTTLRvL8aO3BLx9jhzfMOKFj4=; b=nuRUpnBcrZgmL0XTMQoGFEaHog/NlOwqfeumWONGZPCA1LgEZqWtZhB/QgThObM/fk 3G/ITKyPdyhlU9xUIpn/mMun68l5ZIOImRS6qnL5Nw9MRgqCS0vgrs3OqDbmAL1MoeXP jX9v7nhn+bkV4S8uHHY+zYlsa6PhwY6TrXAlgVJEWj8YgBoq2X/lfkFxkfcTQW4d+6yV aX6N4FN+5nD6qUFhE+PY/hwJTIuqro9+EXgUkuyMUlHncii8AEjY1WNcgbsX7uWgjB5V A2jXRlphAwKndG4SK/3uiEhFmYHb1fT5wAXX2O2YLuJK0+xZNNL/Mm1krQ9bTd8JniOu sPFQ== X-Gm-Message-State: AOJu0Yw+EifTcXEtho2k1N96/hrLskORzXtB0nTGBa09Ka07gTBZINEy EQm6GyTxPj6eVyzcXPvt8Xfxzsj+QERLCIwo+yrkIykuLohySyIALUZfhOY9O26fU8Xi8oVtP59 /fFyflO8l4kk= X-Received: by 2002:a05:6214:509b:b0:65d:482:9989 with SMTP id kk27-20020a056214509b00b0065d04829989mr2048551qvb.5.1695927640392; Thu, 28 Sep 2023 12:00:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG3uis8ZcMwGkA2LhfKt3i7NAV8nmQaJXoWJnDpIdTIO5n+q2tK4lmY4mR5a342HyQijvEuHQ== X-Received: by 2002:a05:6214:509b:b0:65d:482:9989 with SMTP id kk27-20020a056214509b00b0065d04829989mr2048511qvb.5.1695927639908; Thu, 28 Sep 2023 12:00:39 -0700 (PDT) Received: from x1n (cpe5c7695f3aee0-cm5c7695f3aede.cpe.net.cable.rogers.com. [99.254.144.39]) by smtp.gmail.com with ESMTPSA id k13-20020a0cb24d000000b0065862497fd2sm3723831qve.22.2023.09.28.12.00.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Sep 2023 12:00:39 -0700 (PDT) Date: Thu, 28 Sep 2023 15:00:36 -0400 From: Peter Xu To: David Hildenbrand 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 Subject: Re: [PATCH v2 2/3] userfaultfd: UFFDIO_REMAP uABI Message-ID: 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> MIME-Version: 1.0 In-Reply-To: <9101f70c-0c0a-845b-4ab7-82edf71c7bac@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: CA6744002C X-Stat-Signature: 6t7b8oe8npma1czy9edkkm95uhstn5kw X-Rspam-User: X-HE-Tag: 1695927643-406707 X-HE-Meta: U2FsdGVkX19vshOrzVwovY1tF9DZUFbe3iRRVHFZpiTDUMNyV+7SVXENalOwTP4lJeIEwBB3pMPu9kZ70kbEPBOG81+kM3GrzUttJZE6FwYErFkTaj6zEmbVNqFIzKNyctadjlLsWXtIPWFWPz9Mro/fXdx7BuI66JIZJPqV0nOM+X4kGAM4OIGfuN4ZcL6P7AOGapkaV7mZElzYqzQtDpHcbcgF6sR61zKGr6HaYtdvmXNvlNVhDDqFfOFxzeCYpcvXl3MhiULakNnAyFEsiyIJaB4Oo5jTB+GTjPS9J6Wn4JqqMw58y7HX6J+SPif2pUiato9G03K9W828HxDYELg6K+TEV/oZzh9EKLbga4rNBo1kAu1EHEVZR2nNU4/LZzSAF+MKkPRjFvJLvU2d6WvOFaUpRtuC3URQRM1ziTnQr/C5yPMq2iGTXqjL9a4r6Oezen5uDPdCHHClCtxH4rGBaM0PZJQ8FdAq+jlps4ynjZURNr58OS3BGHawd21BfbuOzib4xUZt/fKCAPDgbKXlNCG2KGKra7Xut5y5lCLTNDS+iGJDqSR6BdAXq3MrStzrA2C4+UIv2iLZVQWeJv8RpNemfIGlBMO0cnkFNqq5ybH1DQZNf8vaKUykKtCSASSqYxDe0pBxl6mOLgdEleHzBEQR08bDZJ79E0gfgXyDnUh21o12UwcSyZpIjIeHdoGD2lpuxxqhG13KuVdYcpRyXEiDB0XVJUfb2cEyoLuJ1hJvyNZwOimsjFzRst53jcmnMYR4GEue0zk83OvnQ0C+nJgYrGy2/hxUIzk35K/RZl65Vqwj1arNiJwL9UUZGVE0MWyWGet2NWW7NU66TRyHL7Mt4d30saYuReGt+prk9WqDZ5XBmKt+OYNhAY4OEWlR8up0qIMB6A+/1uQEAgBqMlshJO5ElRz7PY+m7Iy7C7SC0cEpXoaycV25gQl3hy+QL8IF9LsEu73SRnf QZhg6nu9 53fjLUCrAmDOINwk79O3tTWL4OD+8XtKFBVUODlNKprDNuKpayulrLyq+CIGxIVE/ootArlSn8qrZqMHEe5xgEZ6cjSdgc630RMP5Nn+V7YG/sHn9bAxIDR7z4zZitRaQ44LRdsME7hbkyfEY9KPFzb/OhPTgHoJ16ZWa0Hot9ZytDL9/rMD8ArR8C7QsE8D95tCkhUklgzB6ZPHRJ6EBbVje2Zr5ZFSBuBJemLxw15J+iJTPFOiKR/M8XjAftcJ+HbonIc0TDmHSiP0GPoxsvTxUcYsJTJj1Ncm75tkroDtOkVr7Wui5slDU8EbTefTGXWS1uNk5iTPLiZ7C6omSj49zvZlZNuUhaiSvuCDq2SslTSDOPrR2Sn/NmFwyHdwO4rbfF1nXK4PWMUjf9QwrNAd8V2aTWO2yB08d 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 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)? 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). > > 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. 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.. Thanks, -- Peter Xu