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 69FD8E748FE for ; Mon, 2 Oct 2023 17:34:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0C14F8D004B; Mon, 2 Oct 2023 13:34:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0980B8D000E; Mon, 2 Oct 2023 13:34:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E7B148D004B; Mon, 2 Oct 2023 13:33:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id D6BA28D000E for ; Mon, 2 Oct 2023 13:33:59 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 8E5311203D6 for ; Mon, 2 Oct 2023 17:33:59 +0000 (UTC) X-FDA: 81301219398.21.5DA6726 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf26.hostedemail.com (Postfix) with ESMTP id 4B35B14001D for ; Mon, 2 Oct 2023 17:33:57 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=ASdL8x3I; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf26.hostedemail.com: domain of david@redhat.com designates 170.10.133.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=1696268037; 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=ycaPEXE57RgkhfEN2l1Hbx0ds50RPCHq0uPD2XiXlY0=; b=kIyaCqGwGOlYu751JrOkoIGZf/A19yccHiS3IsyprH01zY3pD/eeri50n7C2JWZk8H+DZ+ 9f0eYmmy8hX74fZkGutF8jSexpLMQCDjkylN5nY13I5Wd344NDJ0bJJDQv9Z+lW4k/SnQD KXhv+AvLmterWvDOmsp8aFRwIDxGZcE= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=ASdL8x3I; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf26.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696268037; a=rsa-sha256; cv=none; b=08+aG3uawIHKhTVNK67Y/t0Dv4BgbF6YUEDUGS+qPEPpoKwLwBsnVdsWyLb7RK+mfR48c+ Qk6x9IM1vTPnBpnLKdELgI9ISCtAL/JE5REMCvaBp5saptUlzf0tICRRTLvbdiZyBHMdBo Po+SjclhWiQmbY4i3tqGbp8J72vJM4A= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696268036; 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=ycaPEXE57RgkhfEN2l1Hbx0ds50RPCHq0uPD2XiXlY0=; b=ASdL8x3IQmV6wXFpfzBcJlVLNPLX3IyOsBcMqkVHLX6aIVAPDU3VuJEwjxEkR/EsVsPoYF vh/xl8EefEp7Wg8UG0zxB/uOiQ0iF7eCqholqoJkEJ1Nd2/eAxvfQFYWHue4kdivz82GIY rMTm1MS0XK+FwnUY9PneknZnx0hvFy0= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-116-qpbzqVvfPIKPpPgnlFSe2A-1; Mon, 02 Oct 2023 13:33:54 -0400 X-MC-Unique: qpbzqVvfPIKPpPgnlFSe2A-1 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-40566c578b7so255225e9.0 for ; Mon, 02 Oct 2023 10:33:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696268033; x=1696872833; 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=ycaPEXE57RgkhfEN2l1Hbx0ds50RPCHq0uPD2XiXlY0=; b=GITwb85A7a9N+1AuPMI4BsfvB+TZLc5e5hcoBz+zBgSSN/bhes4j87/zex6bGvPf6Q +Gt/Id9PbaZm4yksZ4COAp2xJtmP8F4hcVI4qV0w+eV61XXMyd0gzBiF+AW0GfcswAkv 2K0kz5VMM86K5QueSXGYTAEbz4K8WVd9VTUXoPrwNx78gdBfm3Asu8gzejRjm3ArJOF5 xYNMV+DamulV1FgvvUX2ExahGxcxfvtuBuPMlRtuXn8cUBYivfXdlEE274YYHlxsO8C4 MkKuS5spb5Hlumv9Lo/PZ/BJneABygXqSKyZR2bhModB/zZ4H0nJ14GBD/WWC3iXltRr dAAg== X-Gm-Message-State: AOJu0YwZtDfAHVRXLMypf+yGp5M7hmYd6I1m7C4BICYE3Eev9ocSgB/M JD86aNqq7dYNaNtBQ+3la13epT91fRYC17gRPzivgsTfhAi6qjyslIbGr0pIa6Jk4YAUOrC2Vne M1vw47WZMBhQ= X-Received: by 2002:a7b:c392:0:b0:405:4a9d:b2bc with SMTP id s18-20020a7bc392000000b004054a9db2bcmr10174628wmj.22.1696268033340; Mon, 02 Oct 2023 10:33:53 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF6OH8aY1+9aqrgbgtOpu85+2xJbjCF9QgW2wew0ab2APA3ftxFGN8117E8JTqoZU4pvNvgWA== X-Received: by 2002:a7b:c392:0:b0:405:4a9d:b2bc with SMTP id s18-20020a7bc392000000b004054a9db2bcmr10174607wmj.22.1696268032828; Mon, 02 Oct 2023 10:33:52 -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 r1-20020a05600c298100b0040586360a36sm7706418wmd.17.2023.10.02.10.33.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 02 Oct 2023 10:33:52 -0700 (PDT) Message-ID: Date: Mon, 2 Oct 2023 19:33:50 +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: Jann Horn , Suren Baghdasaryan , 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> <98b21e78-a90d-8b54-3659-e9b890be094f@redhat.com> <85e5390c-660c-ef9e-b415-00ee71bc5cbf@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-Server: rspam09 X-Rspamd-Queue-Id: 4B35B14001D X-Stat-Signature: w4scg8e1x1ynhkwnhqn6jsrgtibq51bx X-Rspam-User: X-HE-Tag: 1696268037-775022 X-HE-Meta: U2FsdGVkX19pFFJef/2Yu0tk4BjJTGMu7c0QOl+C3DJ8Yv5ESU7D9idwlee3Q4dXIhng0W8Y7heX2tL56cLgtJvjz0V3edF2f3rVuXjep3Zqd2tQEyhypJCy55vpDhM5OwjK5p7yPnxPdoN650hEXbz1H3EWfP2YFkjiHABduUtpTh7eCbo3zkjuyuQcv3Nj2Xyx0U/HujbGTiRL1CXnFpsZUVzbraH4CzL3QGTSY6QwwIpwDsB2GYVn7rSeCT9vDAHJsQ7zcJ4aoI/6TQQHLQo8m1vqM4jG8T2FyaDbNbzmZOMt7bDSYtSAHGIJL1LUH7aFkKpGyzqSWeJNUt/JshZxa6sup3/hoXTkFhLcoDlJGoTGphDfXwEXSaO+9rEFsDuhWcwIXgoKZ36seCwtl7XpaFXJ+752Prj+awlJPS28xqdXL0sDisuRZIOeagxG8+mGKIeBg6fcF6/aOMHUOli1uOxC+6rkHK9gskoYUlmMlSbXUg2L0dSrt/maIKrF9xMIy4YTEh/x4Uwo7ebcfiLJCTdorw2dyNMpSGGwU7uunoKYMB3s96U9/bqtPHS1OaFdxb5HE8qF/euFaGVl63iT3cuNAUKBk+sr57bV1IsCBOoh1MDnf+DnqoW4BpVUUWgazdY6q64uVv4D6ty1BxWv6cTC075P6YXs/ROs2BuLhlnCHI9ECuatb6OfY8kaAoq0db+uPOPKDhvkYVP306vyjECBVXrtUwekYwKQKCok0qyysKj3z5WLin/fWlbGKmllMfeW7rxIb1fpctScOwUJIL3lNI7FBLW3vnzvedWduXYYEstftbstL0Tr2SmCxyCMNQogCQgmk/AMdPKBGeruKRxqHHHModWz/Wn+DFqWbA0Fv0UR4ygMkLkMUH/iECF94LgiEXJYlWxKARjzMih2GYEULqUz+DTIwZHqHcanaXbG6rqY14XdSjLiWwjIyLko+oQGFDXGm47ibjV q+oEfOf8 nUgUge8dlwkbp52d9VkB8epoej7bFubvOJM4oGzKKDKqdQ9G16klXLNNjoYJMLjeboaH6bZ0nYhGUK/Y47YHLOi+Oat+I0lBd1aZX1hNZ6LOj/tNbaBJXAUnxuO8gteCgzPSCUqOYuHZ9T/uigjEnr94aZdO5t3P4oLt12OIJY7CO0eOz1ZMZqbj6r6vMSA3jIngFnnfRPZWz0pC9t194u+uoDUI/L/cbsZBQVWsQVjyZ7yfWSPNPggAH+ZHHkBMOHOwPq2vwmI9Tb3JERcz1vKe73ojVwtw4sWoO0I5HI0CJd2Qtm8MXML91YQItSPDSPieQcLpA8Q+65GDbgZjU0vBhne06LjasEJTm6v4KnAKc3pAFUbgPF0tbDfAHBNjRBSHeahf0HpYjVkxuL80YSkxJhPBx7UmUf5sejKiwLxR/D7XCei8lTOSnNg== 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 02.10.23 17:21, Peter Xu wrote: > On Mon, Oct 02, 2023 at 10:00:03AM +0200, David Hildenbrand wrote: >> In case we cannot simply remap the page, the fallback sequence (from the >> cover letter) would be triggered. >> >> 1) UFFDIO_COPY >> 2) MADV_DONTNEED >> >> So we would just handle the operation internally without a fallback. > > Note that I think there will be a slight difference on whole remap > atomicity, on what happens if the page is modified after UFFDIO_COPY but > before DONTNEED. If the page is writable (implies PAE), we can always move it. If it is R/O, it cannot change before we get a page fault and grab the PT lock (well, and page lock). So I think something atomic can be implemented without too much issues. > > UFFDIO_REMAP guarantees full atomicity when moving the page, IOW, threads > can be updating the pages when ioctl(UFFDIO_REMAP), data won't get lost > during movement, and it will generate a missing event after moved, with > latest data showing up on dest. If the page has to be copied, grab a reference and unmap it, then copy it and map it into the new process. Should be doable and handle all kinds of situations just fine. Just throwing out ideas to get a less low-level interface. [if one really wants to get notified when one cannot move without a copy, one could have a flag for such power users to control the behavior] -- Cheers, David / dhildenb