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 CF718C74A5B for ; Fri, 17 Mar 2023 14:01:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E69B26B0075; Fri, 17 Mar 2023 10:01:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E18C46B0078; Fri, 17 Mar 2023 10:01:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CE0E46B007B; Fri, 17 Mar 2023 10:01:32 -0400 (EDT) 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 BE0EC6B0075 for ; Fri, 17 Mar 2023 10:01:32 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 2E1411C7401 for ; Fri, 17 Mar 2023 14:01:31 +0000 (UTC) X-FDA: 80578552782.06.8BF1F6F Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) by imf04.hostedemail.com (Postfix) with ESMTP id 8675A40040 for ; Fri, 17 Mar 2023 14:01:27 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=collabora.com header.s=mail header.b=DFrv3lbC; spf=pass (imf04.hostedemail.com: domain of usama.anjum@collabora.com designates 46.235.227.172 as permitted sender) smtp.mailfrom=usama.anjum@collabora.com; dmarc=pass (policy=quarantine) header.from=collabora.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1679061687; 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=X4H9Ab5dEFWvSZ2feqwF96TncSriBrkbwCaArigCmfc=; b=1dN1Zd8MQm+josIs2iOx0lJ0JpZZmB1pzrvY6Yp1Hbi5N0ASsnzIKWeWhmHOlt+/+a44AM NkPd8yLGtT+tX3k9u0AycM5F5clAxRxGfubzvE+ksN22cgEO5dZbG7Zl6e0Urj/+ghkm0u PKNbYdXQ2OT16eL7ZgnZS2eaas8cpAg= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=collabora.com header.s=mail header.b=DFrv3lbC; spf=pass (imf04.hostedemail.com: domain of usama.anjum@collabora.com designates 46.235.227.172 as permitted sender) smtp.mailfrom=usama.anjum@collabora.com; dmarc=pass (policy=quarantine) header.from=collabora.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679061687; a=rsa-sha256; cv=none; b=XGQE8WpkEYRv8pWa1iv2eVVye6mKK/wmpL/BYyn/yu61HhEbwt+teNdMhvuoNjhPpgcM7M bbODfR6HQqBsaVm0D1k1e306qqbuU11ODVSlA0K0voNvF7YVQbIrPnDfkgiSYEqJOXzzY6 ExFgyc8f/5wlrHs+jHVoiVbsT9BxW6Y= Received: from [192.168.82.158] (unknown [118.107.141.218]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: usama.anjum) by madras.collabora.co.uk (Postfix) with ESMTPSA id 7F9D666030B0; Fri, 17 Mar 2023 14:01:13 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1679061685; bh=X77REsS88D3ZxxFw2rKOswH7CLpZ3lC6XKxvKqJ1z0k=; h=Date:Cc:Subject:To:References:From:In-Reply-To:From; b=DFrv3lbCSKDHa6chTaYRxZDbV/9UXlXZF0yPRbjhkIn2+w/Bz2wrbNQ6u87uCwB1R dN6FBz4N9Qkvd+q3MKX9U9lSscGedU5giIl3IHwUtf/4MZ/+0ATFHeYwpAvzZNrvx2 ii1Kd6vpaPtoSyzMO9rWhe3PgvBYFtIFkHJZCNjfN7tLjbuyu1x5z5lu9DelDa6CQI U5DAvKI+RfdgwYZcomChUkZpONLSAuDZwmn9XxRBt/bI9TyefUQJz5fMe8RXftm1Qw sBiCTE8n8/pn7bpoI5N5A/rYwVjdjODMX6kmuditkWhaBwLY1LiqRxias1x281/ZM3 0eqaZFsefWvWA== Message-ID: Date: Fri, 17 Mar 2023 19:00:53 +0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.2 Cc: Muhammad Usama Anjum , David Hildenbrand , Andrew Morton , =?UTF-8?B?TWljaGHFgiBNaXJvc8WC?= =?UTF-8?Q?aw?= , Andrei Vagin , Danylo Mocherniuk , Paul Gofman , Cyrill Gorcunov , Mike Rapoport , Nadav Amit , Alexander Viro , Shuah Khan , Christian Brauner , Yang Shi , Vlastimil Babka , "Liam R . Howlett" , Yun Zhou , Suren Baghdasaryan , Alex Sierra , Matthew Wilcox , Pasha Tatashin , 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 v11 1/7] userfaultfd: Add UFFD WP Async support Content-Language: en-US To: Peter Xu References: <20230309135718.1490461-1-usama.anjum@collabora.com> <20230309135718.1490461-2-usama.anjum@collabora.com> From: Muhammad Usama Anjum In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: 85btrx447rumzwj1ifedh3pzmjahgcwh X-Rspamd-Queue-Id: 8675A40040 X-HE-Tag: 1679061687-634136 X-HE-Meta: U2FsdGVkX18cD+EdKhFPXCW5DVv1Oz/M+Ah+99XeEkwZLTTOyDEafkYLcelAh61U0ZvwxD0SLfDNw4U+FkJq9Pd7ad7c2ZUNr+YbJF3qQm4nZJi1PI/oEhyuRbJWRDmaX8d+zMFf0+exRQa+wm2ixpMXltgW+AT4Pc4dvxFg/7Jg1xLhphlsfoERxLjUtI5MWbjcer34Kgm2bn1bP/6QgqzgjOkLMUELR2E32CoIv0KdOSSO89T4Po1th+Tcg3Ikqe2NN0uTJgssu5ZYXbC3aiZOpwi3CPELabovftjOxFyaLqQ1LuTGOmHrRAfLZtLUpfRVZwXN8v6xMfcZ6MA34ReTgKJ62N5PJrSDBgzsTic7SjbM1ws8rfVM8i6tf1bBAqtFHlQEpFsrsPSUSxdSNqllkPpke0MM7om5qVxnxq19MIHKATgP+6ayyycvwBHdn8S1RrVyFbsyI30ECfMewCnkCwKunZ5f4CHcvvd+/0mKfSXDy+OL9qGgYKWaEsYhXjmAw49gS+sRcwk/K80jW/5//r/3qlLnPpPbvl4mbHs6OEa83hL2tOwWAVT4lOBl6z6R5Sx/H74ilGivgpWdRQ/1fkpU0ESyD6zjm+EUaI/qBuACNGOzCGuesGjuDyXTJdxfQVl9vKHVBS1T+5P3+NXN9Vz2mkmOPfNCq4CLWpPA0qqE7vCq8GsBd1VBhZclUH3EdJB8AdtBmkwGxJbWcmM59YTPjmXU2drM5BANRO3A/lMEM8etV1wvhLglu9bcrcSapfSveJXVBoN5JIv+t6tKJxwDseD7LpHBvcBkK640cGCK0jXlclaTdXm0/2V00/ni1OmR4J0XgcWFQV26GGJTY45PQh3kmxL03jb/HVTnpq7RA5Wx1yzvlCBvTT5HrgwGeBN4bjUjEYyZRQpd/XOFrq/7d2zTNbFsxpNldP+rs/FZALlZKvXP075l636bENaqfA/E8ixMye0TQgl im7l/YLT sWwi4+ihSOX6bjLBDlsw+6opYdHfLOCRxFhEufNMb5kuZQiSP5+kqOVK1ifFEJB3Fn173gdIDtN7ByutfmfjPfaG5Fu1+hEqvGMQVPSUanimu65kq0z9QVevFvXTJkfFD55bLs21FHQY1PIi1HgK8DR96n08VFxrIatpZIObRQnPkZwacBhjyAfuDrMhnhFCUy9Qjw98p1gPWgN+VSfkMYjxeNrLsF+misxzJ6RnbJA0cdfp5GhmGoMJmnujXuWwmXNkd7H+aDAs+c6hkxhigLdcBZp0Cq0ScTmzlFpFNuhmCfFk= 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: Thanks you for sending. I'll perform testing and share results next. On 3/17/23 12:20 AM, Peter Xu wrote: > Hello, Muhammad, > > On Thu, Mar 09, 2023 at 06:57:12PM +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 > > Here's the patch that can enable WP_ASYNC for all kinds of memories (as I > promised..). Currently I only tested btrfs (besides the common three) > which is the major fs I use locally, but I guess it'll also enable the rest > no matter what's underneath, just like soft-dirty. > > As I mentioned, I just feel it very unfortunate to have a lot of suffixes > for the UFFD_FEATURE_* on types of memory, and I hope we get rid of it for > this WP_ASYNC from the start because the workflow should really be similar > to anon/shmem handling for most of the rest, just a few tweaks here and > there. > > I had a feeling that some type of special VMA will work weirdly, but let's > see.. so far I don't come up with any. > > If the patch looks fine to you, please consider replace this patch with > patch 1 of mine where I attached. Then patch 1 can be reviewed alongside > with your series. > > Logically patch 1 can be reviewed separately too, because it works > perfectly afaiu without the atomic version of pagemap already. But on my > side I don't think it justifies anything really matters, so unless someone > thinks it a good idea to post / review / merge it separately, you can keep > that with your new pagemap ioctl. > > Patch 2 is only for your reference. It's not for merging quality so please > don't put it into your series. I do plan to cleanup the userfaultfd > selftests in the near future first (when I wrote this I am more eager to do > so..). I also think your final pagemap test cases can cover quite a bit. > > Thanks, > -- BR, Muhammad Usama Anjum