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 94112C77B6D for ; Wed, 15 Mar 2023 15:56:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0B0986B0071; Wed, 15 Mar 2023 11:56:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 061C46B0072; Wed, 15 Mar 2023 11:56:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E441B6B0075; Wed, 15 Mar 2023 11:56:06 -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 D5A9F6B0071 for ; Wed, 15 Mar 2023 11:56:06 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id A0B5CC06F7 for ; Wed, 15 Mar 2023 15:56:06 +0000 (UTC) X-FDA: 80571583932.22.4D4FC76 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf15.hostedemail.com (Postfix) with ESMTP id 80F18A0015 for ; Wed, 15 Mar 2023 15:56:03 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=LHENMYW8; spf=pass (imf15.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=1678895763; 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=Pw4eRnmgxAQbUslf97rTqSt6QU+YteWEHOJqAmSsx5g=; b=KkZTs/OBtfqX5Aa7TX7ZrcZwgHx0SHt5B5Cw0KrANEbjxsbZtytpmlc6Xe3OUYiHAJI1n8 5VFHBqdkj7CF7R3A0bHkwjswPux7aHcXOR2fi4fE9Mf8SA7MD7jasKDHf9LPy2U9SffvDZ KIzZb3B7I1co0bxuaPoMdTtTSn5XXBg= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=LHENMYW8; spf=pass (imf15.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=1678895763; a=rsa-sha256; cv=none; b=5GNRdfimURW9+jMdz0yWaOukgi9/PZHINiDB1ez3IR1QWRnReL8iWUHccOsK2PCu7JZozu Dy4bVrt4nFEybXJGaPeDYhbsBDVI2z41Lpndth8yHH8Axu4Td/IriYleMTw+51Lmpt2fWy 3/iISIcBVufftuzHK+cdmnrEH7IdSsg= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1678895762; 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=Pw4eRnmgxAQbUslf97rTqSt6QU+YteWEHOJqAmSsx5g=; b=LHENMYW8zAj1+MmeAOFfXdCzoKEjXlqoL24dodqfyHcYQjjV+zr7ZXfxOkK+1A7fblRHm3 pJ0xYJBIokhBovvESrj0j9HVwRVVJkK0YQxHVSFmUQdv3HykKhAW6Tj9bYgyPK4vTODq1c ZXPIhKEuH5L+uE3LgG0/YmLHUwoswyA= 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-665-lrAn6ROlMUu-JDacOf3EAQ-1; Wed, 15 Mar 2023 11:55:59 -0400 X-MC-Unique: lrAn6ROlMUu-JDacOf3EAQ-1 Received: by mail-qv1-f72.google.com with SMTP id ke14-20020a056214300e00b005abcdd36f47so4350773qvb.21 for ; Wed, 15 Mar 2023 08:55:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678895759; x=1681487759; 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=Pw4eRnmgxAQbUslf97rTqSt6QU+YteWEHOJqAmSsx5g=; b=LDMDoUyxEZQYEAGiYEHEhG9Ir2NvWyPdquCVWho+ZelNWJpUDTdAa5hPV2bCL+zPWv m7VzMy/SWsX3jx8RQXKY0BEtTz6HPKTXKfczJT9mRukGiYLLwEZ90Rx0iihv733LH8up i+qXvDONR1bizl8OiAKjWdP0RnNKs0XlOElH2Mihl51N7G8fIjXcynte+yWC/5aM7usV G93i4st2VgJf/2hUlAeU3z80fLoMjxU4svoBinYs8cG1mMHCFI6o46/JOtJQio6qfcSE PRdQ5uuEx7v/RBTep5tBFBfVGW8ebjxxADSlqc9KPj/XZzeQ7w/Izl6sWkk7DvBmPb8n TkOQ== X-Gm-Message-State: AO0yUKXTZMuFpvx6DdVL8jI61/gwwaorPKgS2/WzlkfCa6aBaeRS61EP Kv8Dca2UGFInN4SIAlRc6upcojE7FuQov9WgFCaL1kHaZO77mWdh7Tm+jb1a5lpl2DW07+6P/Z+ M+oTRRA0shNo= X-Received: by 2002:ac8:5f0f:0:b0:3b9:a4d4:7f37 with SMTP id x15-20020ac85f0f000000b003b9a4d47f37mr7256624qta.3.1678895759086; Wed, 15 Mar 2023 08:55:59 -0700 (PDT) X-Google-Smtp-Source: AK7set/eKRMHgAx+CwCeLiCbX9cigeSt/aHmp3juRyE7h21eLYSzPFiMLvDtztWo7Q/hFkgkseO21A== X-Received: by 2002:ac8:5f0f:0:b0:3b9:a4d4:7f37 with SMTP id x15-20020ac85f0f000000b003b9a4d47f37mr7256562qta.3.1678895758790; Wed, 15 Mar 2023 08:55:58 -0700 (PDT) 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 t30-20020a05622a181e00b003ba2a15f93dsm4125741qtc.26.2023.03.15.08.55.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Mar 2023 08:55:58 -0700 (PDT) Date: Wed, 15 Mar 2023 11:55:56 -0400 From: Peter Xu To: Muhammad Usama Anjum Cc: David Hildenbrand , Andrew Morton , =?utf-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= , 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 4/7] fs/proc/task_mmu: Implement IOCTL to get and optionally clear info about PTEs Message-ID: References: <20230309135718.1490461-1-usama.anjum@collabora.com> <20230309135718.1490461-5-usama.anjum@collabora.com> MIME-Version: 1.0 In-Reply-To: <20230309135718.1490461-5-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-Stat-Signature: e5whszpma876nx534sa6x6yjscx748q4 X-Rspam-User: X-Rspamd-Queue-Id: 80F18A0015 X-Rspamd-Server: rspam06 X-HE-Tag: 1678895763-979384 X-HE-Meta: U2FsdGVkX18N7sQQZ/nPSS1DHnpKuEwdefo2zhjGNmYgfaLzpM/4k9GYugKIYG8yPsmOWugNUjIrnJeebHD+TlrogvWVc8JwoAiENLHD6SoUCQBYApYimN4R9+aOhA30eyJR3lH6NywI3yFSjHPq1NtzctVrjkhqHRgF9WRvt7jvEuw2bwYRfrsbem5TUQ0iK7qYo/N2x7/bTP8GxhWEdgq50jAUKnx+CIt120CYzlH+pKCBJ+3xehMfY2sK+EqnrNYabxj+OYkuPCAqQ3Z2RS7x/McMgSpFaKEu9oi/UFoa/EQemDWJmqmsX9hYdpG7HX3122ylUpM2Dq1yYg4kbOPHUY4F6j4KPCyNhdYUHnt4PRPH15z9JwJWqt0JQ3lqUxTQ6cUA7H2/DkT0C4BNWEba84Xzgm/VoYApWufIhko2HfwiIszqqCXq/EiartvniwMXcwRyzlrEjb9dStW0rpKh7oSEXrj+RYJOzdAljidgASTuwyPR53ZOb8wcqFm+F9bIN9l0XwYE3g2t3Yd+zaNlsi/fYhRxxdP4KYn5yTgcQaD+05BY6TUrkqaBHPjhsA1ot/n6nNsTZngkni837EXiVH5jFrohajpl5WWhQuMWOaFJ1CVHjDlH6mCTI1R+gC0nsBPJbHl3qJGbtm5qkVmiALsoca+57MnCWKvJF0UAPbU5aF9rqE2j5jbmkpm46ws1DgEE1zV7C0IxlAhsHMdXSC/O4xsnQV4tFL4iHlThThIsaRgU7qOvLaGB7uhlVqAdRLA3JMUaSuiSztifyg7F7tZ3rO5ZnHJMSRpeNloUjl6iSFWvzsh5ow8EqL0CPZ43A2jplTpDnwXVRY5oTPvBfgC/NxlMxUUwWt4wdXbaZAU5jx07Ha7OXRpGijv1eoCayVZZ/q6X177l22Kvp0mXjFgg33lzlw1vwDs96D/VdbhaShQUNd2iAA9oPfjLVkf8wc7itJFdKiTWjfD yG25Ieji DV+GqnlNJXSVgRiQ0Cz89joELRTmGY1EhXYWPosc8z/Z9P70wGAFe7TX6+1iRP4qVtMsXmCznUTx78jsXtVwkvKVd8q5gjczkNeUc4h50mlpoK8WT7OAaRBVVnUOwO/IncpvpoFyUavcNtwNvJEEgAK0x+TjQasblduOaXLWjgQbteHrk3wcBhSXStYG6OSoeUVnaX2IOWnt5MBUj6XvAgaRRdeD/4g2xXKrQrtag/1Rm4zIOx0Wsw6SuBAh10+oNGfwQ4BTEivXQGMIbtdHQI0jCXDPo7c8FK0HnmiNEWXwT8UEiROCMD9hlCRkz39b2VTo7SWsiuwNjelHDnO7DbQt1xx98rr4y72vvyjR8jbxDDMISaYx3eIUH23RW5f0JJBIDZlBdNaZdI4h9EbeGoBr0EEqOIvOwSFq8OBbuhrIBPps= 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, Mar 09, 2023 at 06:57:15PM +0500, Muhammad Usama Anjum wrote: > + for (addr = start; !ret && addr < end; pte++, addr += PAGE_SIZE) { > + pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); > + > + is_writ = !is_pte_uffd_wp(*pte); > + is_file = vma->vm_file; > + is_pres = pte_present(*pte); > + is_swap = is_swap_pte(*pte); > + > + pte_unmap_unlock(pte, ptl); > + > + ret = pagemap_scan_output(is_writ, is_file, is_pres, is_swap, > + p, addr, 1); > + if (ret) > + break; > + > + if (PM_SCAN_OP_IS_WP(p) && is_writ && > + uffd_wp_range(walk->mm, vma, addr, PAGE_SIZE, true) < 0) > + ret = -EINVAL; > + } This is not real atomic.. Taking the spinlock for eacy pte is not only overkill but wrong in atomicity because the pte can change right after spinlock unlocked. Unfortunately you also cannot reuse uffd_wp_range() because that's not atomic either, my fault here. Probably I was thinking mostly from soft-dirty pov on batching the collect+reset. You need to take the spin lock, collect whatever bits, set/clear whatever bits, only until then release the spin lock. "Not atomic" means you can have some page got dirtied but you could miss it. Depending on how strict you want, I think it'll break apps like CRIU if strict atomicity needed for migrating a process. If we want to have a new interface anyway, IMHO we'd better do that in the strict way. Same comment applies to the THP handling (where I cut from the context). -- Peter Xu