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 4237DC05027 for ; Wed, 8 Feb 2023 21:12:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 86BC36B0071; Wed, 8 Feb 2023 16:12:20 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7F4146B0072; Wed, 8 Feb 2023 16:12:20 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 646C36B0074; Wed, 8 Feb 2023 16:12:20 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 4FB2D6B0071 for ; Wed, 8 Feb 2023 16:12:20 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 2837D1A0C33 for ; Wed, 8 Feb 2023 21:12:20 +0000 (UTC) X-FDA: 80445372840.25.DBFBE1B Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf26.hostedemail.com (Postfix) with ESMTP id 1808C140002 for ; Wed, 8 Feb 2023 21:12:17 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="Z9CaJ/t6"; spf=pass (imf26.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.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=1675890738; a=rsa-sha256; cv=none; b=d1U4daw2mf8nlCvljGeDCOqoU3zO0p9viptHbB0WO9CTC4+Nr8KOrSVUz0O7cCmcaIvQ8F DaMRLo3YTokT6aoo2NvZcx6yanQfTpL4S+8AL4pyPfnO1k5SlZEDZW1Gl9zxYFXj6dOapO CGPDgzE22zMFjlZlb3uvIYKgPgjFQCI= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="Z9CaJ/t6"; spf=pass (imf26.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.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=1675890738; 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=mWs5syWzL3AMT8pL8dG+0Q7bw+lD8ANchOAIxFLnI5k=; b=lMfJRZtzk0LkldH+AqHMIzNApIH8MTCKjpsINVTW+gDJOTgMMPjYqQXxVZ6QwxR/4LXBV3 FmJGWcb3X/aBBf15d+aM4t8OVvFxDGMlt1gajgVdAg3pII8gwVmuPOsbLcH/moHrcKeRWr yDk36rWWHmiJAUqVH1a0PmFdvov7aHg= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675890737; 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=mWs5syWzL3AMT8pL8dG+0Q7bw+lD8ANchOAIxFLnI5k=; b=Z9CaJ/t6GqMHh6zhUhKAW5ceN8axLQAo021tW63r4tlAp7uHgU428jJ/7BSZzWXH9jrj0Q 3KEwuIUzECrEBoAJPEYIaaHy8BHddpLAYCPnM8q32L/OHtIFklIogXpp0uXSC0nloPCNno 9NOFdfPKVZQ7uRtPhK6+jCRvpPv9wrY= Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-131-zGX3JoyoN8WhY8Lz2zbqaw-1; Wed, 08 Feb 2023 16:12:16 -0500 X-MC-Unique: zGX3JoyoN8WhY8Lz2zbqaw-1 Received: by mail-qt1-f198.google.com with SMTP id p6-20020a05622a048600b003b9a3ab9153so11391064qtx.8 for ; Wed, 08 Feb 2023 13:12:16 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=mWs5syWzL3AMT8pL8dG+0Q7bw+lD8ANchOAIxFLnI5k=; b=jAuqrm3ZA3NmZNG60UXI0fDaEl51hFFv+AVcaUz/muI2U1Mt7DDJG82Bq8/Zj7QsPy pPDewriSVljHo2yVRqgMkm3cDsNKmW8rHc9ueeqLonx1YBbzHtug/KxvBxA64uEM1mFv T445PPt8If7KgF5IPQgiqC5T3+ZSWhjovzdxCAf6wq6E/c/QLc9hu8qwa/fzvLLsiOVY VDfuH38YK+SXO3rUrrbgehmpfacr+qiMoI4333VEit6ksjRP7eAW13i+NBUyZnP/IqIF IQCJtEyXKX+66xzLeGy+iunF9kWLmJLUBxVSuWf5hUlTdvMwYJXfN7Iw8g0nicK7GXM9 BBZA== X-Gm-Message-State: AO0yUKUiGnh99ShDnrlamu1DUtkA8nHP+B1ZwQK606vZt4VtwAebpo2D bRt3ocXFMG2yjsa665/V7+Hf7MorFjyjicAgAXzQPWUc6+FA8CKT/3rwEQO6WBTevQAR/IxEoHc 8SfOSiKlsIPc= X-Received: by 2002:a05:622a:4d2:b0:3b8:58d0:b4d4 with SMTP id q18-20020a05622a04d200b003b858d0b4d4mr17052252qtx.2.1675890735738; Wed, 08 Feb 2023 13:12:15 -0800 (PST) X-Google-Smtp-Source: AK7set/ztOWL/58E/IzCjCqlkCIGCW9TptwyHWWsTpgaTb3Ns2l76HkUmDIhP+fLnPBVXV0SefeqEw== X-Received: by 2002:a05:622a:4d2:b0:3b8:58d0:b4d4 with SMTP id q18-20020a05622a04d200b003b858d0b4d4mr17052210qtx.2.1675890735410; Wed, 08 Feb 2023 13:12:15 -0800 (PST) Received: from x1n (bras-base-aurron9127w-grc-56-70-30-145-63.dsl.bell.ca. [70.30.145.63]) by smtp.gmail.com with ESMTPSA id r10-20020ac83b4a000000b003b9bcd88f7dsm12083178qtf.43.2023.02.08.13.12.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Feb 2023 13:12:14 -0800 (PST) Date: Wed, 8 Feb 2023 16:12:12 -0500 From: Peter Xu To: Muhammad Usama Anjum Cc: David Hildenbrand , Andrew Morton , =?utf-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= , Andrei Vagin , Danylo Mocherniuk , Paul Gofman , Cyrill Gorcunov , Alexander Viro , Shuah Khan , Christian Brauner , Yang Shi , Vlastimil Babka , "Liam R . Howlett" , Yun Zhou , Suren Baghdasaryan , Alex Sierra , Matthew Wilcox , Pasha Tatashin , Mike Rapoport , Nadav Amit , Axel Rasmussen , "Gustavo A . R . Silva" , Dan Williams , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, Greg KH , kernel@collabora.com Subject: Re: [PATCH v10 1/6] userfaultfd: Add UFFD WP Async support Message-ID: References: <20230202112915.867409-1-usama.anjum@collabora.com> <20230202112915.867409-2-usama.anjum@collabora.com> MIME-Version: 1.0 In-Reply-To: <20230202112915.867409-2-usama.anjum@collabora.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspam-User: X-Rspamd-Queue-Id: 1808C140002 X-Rspamd-Server: rspam01 X-Stat-Signature: bhb3ggau4a33dunoxetc5q7pxffxus45 X-HE-Tag: 1675890737-327066 X-HE-Meta: U2FsdGVkX1/WC7/LfOaEIGIqyqoxmYO1tOZz1Ubq94+2E26M/tLYA7WyKVUPnmBn0aKteGc2paHYIMG7sKx3Cx9W4WFYp4VGUw3cHNjOzylz9sTgflVWn5c8/b4QChAjtAeVKbWV/ebj3HPKFv9inZh1/6ew9UDRQiJGCKXIgifG+czmX63k0oxjptxfvEFuxaRFZJNKBbGZ1slkjbd8DwlkN5j89OuBYdDPTOCOcCXKcj9VMHDJ62Nh8KQPFhCwmUxTvLfyVJVDfXZwpfxTbrHVPiF5NeQnScP2IMiLd/VUY2Mp4xyFJXWiXjj9fBsNAiDzx5XYSNwh6shHJSqDlvXwUI2J4Ej2rj/nqjxuRhQTJlPVv1pGnR1TKGHpQOzwtMeux6kRZeIA4yBIDMVfCA6AfiwyhmcctzBNDAePxXLQb1iKj8/ovfrHP2hHwYAYAls0H1i2PA6hBD62OIH86O3tEVhvwyaLZelQ047U2eXGbagaY1/PYmHbtmKD4nKhXMCIs6C9AyOq0vtBftqMUPBUuNfvrC8uUxTVUv6gnlf5oCDUBjzlDpzCd9f6BU5IkmvMQZlZp0jETQGUIk9yb4QVV0kg9JFmLpRCjsHoiCk6/5rjX5iiICEt5zttC7cVDw7Mwx3tELsW5drfNJL5855fp4jCY80+IQ2tiVpfdQGauO/VPAaXzXdAhBVcidPipslcC7zuKWxQoc5/LvPHYaMfz2NDasifYQ9mc8pTKZ5j3CDMPyREx4vWTzAWuBB7cDiGY7M5uWuXT0EMWT9wPf2Du+9kl3OLJ4HXt4Kic0mmP7yYnX6cDSKt4e2jk3lyNAIJA9sJMMa+zDyLh4ySELr8zrcJiQhtepgswbREQQ9/20xr0PNg4IL8Jx0I2f3iAR20G3u+4zxtH4DGPB1tjwOgFtXrv/2JqNQU5Ya3JwwYCQ+mWfrt1T0ZABJM7Q45eMuFAFKAzpU3iGnUeLA SPmVWyad DTYl4G5e2nDAMtnm29AGqSMZeEU6A81V3jrQl1kyVlng5yDZ7UPt5Ez0C/hbAHsmhiGSa23a+0Q8lULxSahK7aA7iyk5h5rHs/JRFckI9cB10ZJRnOJZbge1f/Zsxhsf1GkwLuYJaks10J52w1OmHXSw2KQtgVRb1wbFAJbb0+l89QbY0Fg6cxXvG/Z+JJiC0R0vR45+glh19NZ9plWflZ4GD7Wn7LKEAZBbc+P/dYSy9kZSImGL57lOn+f6UFXMGeQd/QyFH/VUstQlyOlFHS1LIIg7yt38f3C/VpzXVegNXp9TdLCxxDCloIdS82Y79IKQBzdgYTYaMvSDcCrUflLgq723cx/Fr467sST2dd+DxJ0oXVtWfy+IbpxB1O4GoE+k0PG6RBoNZEuyXzAp9F7wZm2u9VGIrbykl3AUc6dO6s8k726WDnnXsMPUfIJQzSf5QC8TNPL8pw6glMgWnWoyRUg== 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, Feb 02, 2023 at 04:29:10PM +0500, Muhammad Usama Anjum wrote: > Add new WP Async mode (UFFD_FEATURE_WP_ASYNC) which resolves the page > faults on its own. It can be used to track that which pages have been > written-to from the time the pages were write-protected. It is very > efficient way to track the changes as uffd is by nature pte/pmd based. > > UFFD synchronous WP sends the page faults to the userspace where the > pages which have been written-to can be tracked. But it is not efficient. > This is why this asynchronous version is being added. After setting the > WP Async, the pages which have been written to can be found in the pagemap > file or information can be obtained from the PAGEMAP_IOCTL. > > Suggested-by: Peter Xu > Signed-off-by: Muhammad Usama Anjum > --- > Changes in v10: > - Build fix > - Update comments and add error condition to return error from uffd > register if hugetlb pages are present when wp async flag is set > > Changes in v9: > - Correct the fault resolution with code contributed by Peter > > Changes in v7: > - Remove UFFDIO_WRITEPROTECT_MODE_ASYNC_WP and add UFFD_FEATURE_WP_ASYNC > - Handle automatic page fault resolution in better way (thanks to Peter) > > update to wp async > > uffd wp async > --- > fs/userfaultfd.c | 20 ++++++++++++++++++-- > include/linux/userfaultfd_k.h | 11 +++++++++++ > include/uapi/linux/userfaultfd.h | 10 +++++++++- > mm/memory.c | 23 ++++++++++++++++++++--- > 4 files changed, 58 insertions(+), 6 deletions(-) > > diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c > index 15a5bf765d43..422f2530c63e 100644 > --- a/fs/userfaultfd.c > +++ b/fs/userfaultfd.c > @@ -1422,10 +1422,15 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, > goto out_unlock; > > /* > - * Note vmas containing huge pages > + * Note vmas containing huge pages. Hugetlb isn't supported > + * with UFFD_FEATURE_WP_ASYNC. > */ Need to set "ret = -EINVAL;" here. Or.. > - if (is_vm_hugetlb_page(cur)) > + if (is_vm_hugetlb_page(cur)) { > + if (ctx->features & UFFD_FEATURE_WP_ASYNC) > + goto out_unlock; .. it'll return -EBUSY, which does not sound like the right errcode here. > + Drop this empty line? > basic_ioctls = true; > + } > > found = true; > } Other than that looks good, thanks. -- Peter Xu