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 C1968C48BF6 for ; Thu, 7 Mar 2024 10:44:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2DA6A6B0144; Thu, 7 Mar 2024 05:44:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 262486B0145; Thu, 7 Mar 2024 05:44:02 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 103F96B0146; Thu, 7 Mar 2024 05:44:02 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id F04AB6B0144 for ; Thu, 7 Mar 2024 05:44:01 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id C5F6E1C1372 for ; Thu, 7 Mar 2024 10:44:01 +0000 (UTC) X-FDA: 81869907882.14.33B5587 Received: from madrid.collaboradmins.com (madrid.collaboradmins.com [46.235.227.194]) by imf05.hostedemail.com (Postfix) with ESMTP id 25930100005 for ; Thu, 7 Mar 2024 10:43:59 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=collabora.com header.s=mail header.b=oK3hZtRn; dmarc=pass (policy=quarantine) header.from=collabora.com; spf=pass (imf05.hostedemail.com: domain of usama.anjum@collabora.com designates 46.235.227.194 as permitted sender) smtp.mailfrom=usama.anjum@collabora.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709808240; 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=o8HbXvnmS414+BHFfwKXJ6mtJBhf3VNNV+KdZITO3Vg=; b=Fr1eabYmL/YIV7QvAgJT6r4UGds44+4BfnJrUheUXNU5ZOBJBZTolsL+ZxKBMuxNXi0qEq RJG6FuMs92MdgLLzNWJ/kpUT8VMM++hRNURPMRRbnbryO+XC0Jk5ZmT3xpfjsP/1FmserA ml6Vkf0bEfL0/xbv2bpNRVfYJIlWGzQ= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=collabora.com header.s=mail header.b=oK3hZtRn; dmarc=pass (policy=quarantine) header.from=collabora.com; spf=pass (imf05.hostedemail.com: domain of usama.anjum@collabora.com designates 46.235.227.194 as permitted sender) smtp.mailfrom=usama.anjum@collabora.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709808240; a=rsa-sha256; cv=none; b=HiqzXOw99x2ph8C7w1e0vzd4q1XLhtYZla8Kxx5gvmB6qh+T9ceLv7Dz5vIF3ZVLew0Wv1 e2TCvV3inmUGqZxFjoH9azZf6y/h9wostIqFkkMNLLOhYe0d6h7Kdmm2RcVZE9Db+KZ5J6 miVW4/lO3JJMG3ZOwoSKGA8Dgj+3gZQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1709808238; bh=k0wg7qIECji7q28HelXRDU1MuWYWt7ZKoT/fy2ixp8I=; h=Date:Cc:Subject:To:References:From:In-Reply-To:From; b=oK3hZtRntHn5hpgtf/gZlqZNjgs9FVIGRX7PODR8hiBxLS2fG9ZXAiZ5M6BGlo4gK oT4oMtkNrUO52Au3E1PB9z/u3VzviqSAkf229UTWGz84wHqJs3DWBINPkFIpsj7MnZ HBOoA8u/UbRHRh1koH72lVaMVOoO5Y73NoEPyiJZ9N+Tykygq5DJy/LNR1veI7tKfL gkBRn4KEaJ5+oCFFK7/9N6r3aYHRsylGkM0Yih7zISIyvCdqctHEK/Y1gEVExefxLp OTeqg9bI5QuY3rgJABjonIPW0GYpVofKM3KzzsfjHnnhJzcH2I0AztdJhVNoiMi+/1 QfwF4ugmFIKUg== Received: from [10.193.1.1] (broslavsky.collaboradmins.com [68.183.210.73]) (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 madrid.collaboradmins.com (Postfix) with ESMTPSA id 2CA0F3780EC6; Thu, 7 Mar 2024 10:43:52 +0000 (UTC) Message-ID: Date: Thu, 7 Mar 2024 15:44:20 +0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Cc: Muhammad Usama Anjum , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, upstream+pagemap@sigma-star.at, adobriyan@gmail.com, wangkefeng.wang@huawei.com, ryan.roberts@arm.com, hughd@google.com, peterx@redhat.com, david@redhat.com, avagin@google.com, lstoakes@gmail.com, vbabka@suse.cz, akpm@linux-foundation.org, corbet@lwn.net Subject: Re: [PATCH 1/2] [RFC] proc: pagemap: Expose whether a PTE is writable Content-Language: en-US To: Richard Weinberger , linux-mm@kvack.org References: <20240306232339.29659-1-richard@nod.at> From: Muhammad Usama Anjum In-Reply-To: <20240306232339.29659-1-richard@nod.at> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 25930100005 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: s4fn6juuj7szdghjrwoxq83kst1sayh3 X-HE-Tag: 1709808239-409206 X-HE-Meta: U2FsdGVkX1+ysGGPJ3bUTc3ABPtDEAGsOBK1WXdAwVE7wJJ7AxyzgFQvaRhAkLideqw3celCvIJkFHZl1nogrZrSS9ZFuL1JZzgKVotHkrz/+TpzJMtUPxua/NPgrsvBo4xR0RMYkXxmOP9acNs+vZ9hDXzXyfnIkBjYszA5EqT/AadKrxFrPeR61R7jCB9bmC+wrmkumVcWD6n9usEuqaHCAYu9drwUIcuvTIqZ+zy5v8dATU8tLz7rYPbc2l/AL4bQtfMKRASAQlGyLIAYEbmo/7nJhBqVTN7mFs4dPY2gNzPzMdEY9CXxy/WnBTiyOKj9m47cQ9JmA3sNh4t7aHI4+TtrKrhxpptt6fI88zaCscp8RGOmOoLmFAzT83H+uY0EAsoJvzCvCtZ8pbEOmZJhK7/HS3T5d91ElHc41Dd4cRw8vgTMFmHSYbJUYvb0ZIBS0UbIKjLNEJgLamA4F0GS9vNR3x+X1Jiu1xbi1erCqFrOeNijtJ7g5nuCnr2UVme+j4E/YuPyGYZ+Yb0KNyeES4oxkHg/rpdEe8tQQqS+oI6uiEzVg2eIcdUh7rvRE4mObJEyJAQZKO46dHxvTpfWj06JytM7XMzWbiSXKN+Q1lo/V2vGx3q2gjkHB+CKubDWKV2yMlhiDK/ZJQfvMLrlLl/4QIvbATWMc7Nd9rBkUysFEltkHvDvLflLBP0M538oZNralor7e/LjFF/STUEZPvOIRVgXSLjEk8xa2jcPdXCruUxK5A4ELP7S4wi1eiwyF49AybHo9nPkwS8L5iDY1OeyRMtE45VVv7gSWZdba9NX/VisBfkaVfYftMhqKJqWs4czOEBM+AloN58Co+daaKsQbudhEmvm6Sbh7ppGiVFje0ZeTMdIEa9LYqGnW+2Zpzf2UWZ6SN6dLAS0ZWb0B4dwsT/j7uzq0b0nS/ffwuov7FxCElb7nhrn+NqTQbcPEoYJTGurjUSv2yM l62c8SR0 46nIggBnLmh1HAdnChqPhTyvSbtJ6hjkqm89xkJhS4a3KNOI= 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: List-Subscribe: List-Unsubscribe: On 3/7/24 4:23 AM, Richard Weinberger wrote: > Is a PTE present and writable, bit 58 will be set. > This allows detecting CoW memory mappings and other mappings > where a write access will cause a page fault. > > Signed-off-by: Richard Weinberger > --- > fs/proc/task_mmu.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c > index 3f78ebbb795f..7c7e0e954c02 100644 > --- a/fs/proc/task_mmu.c > +++ b/fs/proc/task_mmu.c > @@ -1341,6 +1341,7 @@ struct pagemapread { > #define PM_SOFT_DIRTY BIT_ULL(55) > #define PM_MMAP_EXCLUSIVE BIT_ULL(56) > #define PM_UFFD_WP BIT_ULL(57) > +#define PM_WRITE BIT_ULL(58) The name doesn't mention present from its "present and writable" definition. Maybe some other name like PM_PRESENT_WRITE? > #define PM_FILE BIT_ULL(61) > #define PM_SWAP BIT_ULL(62) > #define PM_PRESENT BIT_ULL(63) > @@ -1417,6 +1418,8 @@ static pagemap_entry_t pte_to_pagemap_entry(struct pagemapread *pm, > flags |= PM_SOFT_DIRTY; > if (pte_uffd_wp(pte)) > flags |= PM_UFFD_WP; > + if (pte_write(pte)) > + flags |= PM_WRITE; > } else if (is_swap_pte(pte)) { > swp_entry_t entry; > if (pte_swp_soft_dirty(pte)) > @@ -1483,6 +1486,8 @@ static int pagemap_pmd_range(pmd_t *pmdp, unsigned long addr, unsigned long end, > flags |= PM_SOFT_DIRTY; > if (pmd_uffd_wp(pmd)) > flags |= PM_UFFD_WP; > + if (pmd_write(pmd)) > + flags |= PM_WRITE; > if (pm->show_pfn) > frame = pmd_pfn(pmd) + > ((addr & ~PMD_MASK) >> PAGE_SHIFT); > @@ -1586,6 +1591,9 @@ static int pagemap_hugetlb_range(pte_t *ptep, unsigned long hmask, > if (huge_pte_uffd_wp(pte)) > flags |= PM_UFFD_WP; > > + if (pte_write(pte)) > + flags |= PM_WRITE; > + > flags |= PM_PRESENT; > if (pm->show_pfn) > frame = pte_pfn(pte) + -- BR, Muhammad Usama Anjum