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 38DA0C7EE37 for ; Tue, 28 Feb 2023 15:50:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 408406B0072; Tue, 28 Feb 2023 10:50:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3B7BB6B0073; Tue, 28 Feb 2023 10:50:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 257DC6B0074; Tue, 28 Feb 2023 10:50:43 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 157346B0072 for ; Tue, 28 Feb 2023 10:50:43 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id C859B4067D for ; Tue, 28 Feb 2023 15:50:42 +0000 (UTC) X-FDA: 80517138324.20.8074598 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) by imf06.hostedemail.com (Postfix) with ESMTP id EA78718001D for ; Tue, 28 Feb 2023 15:50:39 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=dabbelt-com.20210112.gappssmtp.com header.s=20210112 header.b=B87Sz4AD; dmarc=none; spf=pass (imf06.hostedemail.com: domain of palmer@dabbelt.com designates 209.85.216.46 as permitted sender) smtp.mailfrom=palmer@dabbelt.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677599440; 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:dkim-signature; bh=UryJW0EuVY8u2sW6z9mCQGQjWTzi+ldNIkpQGB8+HtU=; b=P2vLnB2R4VLfDAJX2j97fIaI/Tz1rXsOBTiy3dSc++atHI0BWdM02poCIWgKd+n64AW0Xo xxRcyHZnLOxr0h5LFfFj040TLf3JnJUXkh/beKMS9hclanC2Jd2pcwpSQC6RrrBf23fRrT vHnXUA4Rd72AxL4zFOJPdnchckRQN5k= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=dabbelt-com.20210112.gappssmtp.com header.s=20210112 header.b=B87Sz4AD; dmarc=none; spf=pass (imf06.hostedemail.com: domain of palmer@dabbelt.com designates 209.85.216.46 as permitted sender) smtp.mailfrom=palmer@dabbelt.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677599440; a=rsa-sha256; cv=none; b=MkYa7e/ylbkSoE/nCl256njUSEOxHK1sEH4K81zOLnGIIjQxAG55jJF/VDzCNykDWDdCoy Wdjyi3C1MQvS1J95ycRR7d6ebz8x0dG1YwkzlEwA0Yy+GIc/3nn8CMtjpI0xZDPaS70b9a yCtp+2+z6w+s9+lZdtBds/jBR9hclc4= Received: by mail-pj1-f46.google.com with SMTP id x20-20020a17090a8a9400b00233ba727724so1883036pjn.1 for ; Tue, 28 Feb 2023 07:50:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dabbelt-com.20210112.gappssmtp.com; s=20210112; t=1677599437; h=content-transfer-encoding:mime-version:message-id:to:from:cc :in-reply-to:subject:date:from:to:cc:subject:date:message-id :reply-to; bh=UryJW0EuVY8u2sW6z9mCQGQjWTzi+ldNIkpQGB8+HtU=; b=B87Sz4AD1+v0XwCsrRoMpTHOfPGa5C2kWXfopmI+Go4uM/GlteH88Prr3xnOjgOBpK 5TXEM23YJaNZ7g9EbVYCuK/JD08Tarh0thhlMnTFFyMOEygBOFNnHXUltVMCUsr+soSV N7JymoT7+eTk9L3hW6gd0jRYqCQJylQ1Sv9bK+MVkRTzPo6kpx2lySfN5ZcoLvOslGRO KPapypwptYDfTKoui/kxjkto9aXQEXnB0zNI2xnF9K9K1w6AMTAlsuNOBVAzoDOh6S9m XMeLlvUu7AtZRerpGExszQw24rKkktWNdf98ePl6noAkKeRplxZuYNOqKiII4Yi6n3n8 TCXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677599437; h=content-transfer-encoding:mime-version:message-id:to:from:cc :in-reply-to:subject:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=UryJW0EuVY8u2sW6z9mCQGQjWTzi+ldNIkpQGB8+HtU=; b=0V9qQOZjpFWOLknJKS5guoi91qx4hBXLmD7uMyBLVUcHDOBY98ip+4B8q/KOAH2ZR2 l0+f8ZRXeFXT8gVJUY26DJc56zCGp6szwNnw7/FClOB9YEftjEw7hxjw/rxNdgJMOS+n gtOx7vRaFe5yfWSkZMseh1A+Tfx6AZuYFrzvFjFh4jUUHNA/mD1ZUuksnWlv+LnPR5+Z VvPbwy1Jm+c87yFrfREjxMAb1WvuD+ytuEmbocdo1OeXtRLx3AwALrX4icQs8IA4hbTO Po2oPiAJ8Qtp5LIsKRgJd6P1bH3NeJjQ8g3DoinK9YMgRciVYq29+EvYx1cmawoof5/1 bdwA== X-Gm-Message-State: AO0yUKXP2SL1K+X14KpEBMrOazbA00NrFIJaK9QWjiq2YsDXuLoxpPAB t/HVy8ARzMQj1JCXN2/u7GgwyQ== X-Google-Smtp-Source: AK7set80NPLuAAPSgZZsRqS35byB+8nywbDP9pe24Tyk+tjImkNZjMRv8vvzE4HsisyOpmumYVDG2Q== X-Received: by 2002:a17:902:d2c7:b0:19c:fbdb:43cb with SMTP id n7-20020a170902d2c700b0019cfbdb43cbmr3953598plc.51.1677599436809; Tue, 28 Feb 2023 07:50:36 -0800 (PST) Received: from localhost ([50.221.140.188]) by smtp.gmail.com with ESMTPSA id h12-20020a170902f7cc00b0019d1f42b00csm3612084plw.17.2023.02.28.07.50.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Feb 2023 07:50:36 -0800 (PST) Date: Tue, 28 Feb 2023 07:50:36 -0800 (PST) X-Google-Original-Date: Tue, 28 Feb 2023 07:49:44 PST (-0800) Subject: Re: [PATCH mm-unstable v1 19/26] riscv/mm: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE In-Reply-To: <20230113171026.582290-20-david@redhat.com> CC: linux-kernel@vger.kernel.org, akpm@linux-foundation.org, hughd@google.com, jhubbard@nvidia.com, jgg@nvidia.com, rppt@linux.ibm.com, shy828301@gmail.com, vbabka@suse.cz, namit@vmware.com, aarcange@redhat.com, peterx@redhat.com, linux-mm@kvack.org, x86@kernel.org, linux-alpha@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org, loongarch@lists.linux.dev, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, openrisc@lists.librecores.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org, david@redhat.com, Paul Walmsley , aou@eecs.berkeley.edu From: Palmer Dabbelt To: david@redhat.com Message-ID: Mime-Version: 1.0 (MHng) Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: EA78718001D X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: ey84ibpugwkhenn4z86pxphw3wzc7qh7 X-HE-Tag: 1677599439-984560 X-HE-Meta: U2FsdGVkX1+4MzYk+gebN0PGZu8jqxkhiMPviX4W4xsMLe8adz2NnKHY1VZKFpy+bCPv2x/+Bz2woyhm7laZtWDyX8ZiEdTK6qzKtLDQn3Tkt1gCSSKShMQhhotBR9lbuddz/7ovzpgL7/zDRhIyBuXKOqw/EWAbiPVL0XBoC8zQGe0uczFLvr38P+3WHhE20XP7oR03OxBV1CHZqI05sDSTFOgZPZ7PeWfHUjE5kH8t5fe2yUGdLWM9JidMhkojgqy9WVmb576hrfiFs71DaF9OAo2owko7njDVFeH7hyOM6+njqdVfxsctD4SWVTK9wQfB1ddZ+zoNgJAD9KA6YCpuazdY1ZqdayjeZnOOG0E9QOG78xVqZ78/IKeq8V952zelWPXueLZ+Nvm4TzDO4wMdJ5E55kClx7YWRzOI57Z0JwlPWCl1XY5TXzGUsL8veEmOgPbB+zksvd2tIQCPYj4zBkGoRNEGavJTZdeCBVrtMhZ5oGAXGzk8WWKFmlBMsNx/1NcLhpFWwF3kZm4XvtkmxfO/msAqS4cvsyHWJRCH4l+zHWLpAqtWksXkH8VthaAm7JFMFI5nLv7MaYxpUUugVlMLW0U1MH+LMuxdjHqZ4vxdqGV2y11MlDgFUkSBPkwFrdqnYFIWQE8XEQaK3R3pSGC8R2QrzAuVdRkCHLI3E1JIGuwEOhxlauclES7+WXeIKO0ubtni1pUxU0UeuOmWVERqRzc560Z5ZdeZKfPqNkXFAaRwI0aqtru88kDLbrjrGdK/MAwCEes6vlXsijCq6W0rz2q4ps3b4V3USVBcpK4X+RgRH+5wjSyNiRz52+hAwzdv1mFiC3X50aD2TQkUnwYg1SqDJB4No+JfLykhKkkaZKJ87iE2eLSrRvGtbIinnqNVdX8d8B0KmNT/OTialKGefEO9aQ+8V9ApalhAJX+7pZ69CRbnD0KtwTuv3w+dLFdg54Y5ZjRDVAw YiqofmEc D0rwK5m0wpdfn2RLRn8aFYbxRNTAt2gRV4U5RwVP+n5e+rs14hqcjT1A/yBRpvcEaQbIFGcSLoChqGVK3R+KQ5qwK5VChRbTHQ22Ksb9AUI823hMUmKIsqBZv95rt0Ul7xylOqxsXNnMC6fCcRMmcmdl5myBdd729Gx+WRb9pxfD9s0q0XKFlEF2gtVgMTMxTvlKxTeLuoLNMeJSRZeKz6PH17yeCE3gK+ydgL67sLH4D2GlwGDtM0QGiUnP7E/QET38CGMv1HfBkjx/EYJ5YQyOFffm3ECGCf2j6pSQOHGqwin0Y4yGK4Dlu+VCMAFil5ZMF5AbbFsErGvv0T1ZQLMF0lSu04ycq/lqnBXn8KvRXrQbTHYFh6Ik95+St5Omv1IVZGeYrrh3LMOXT6mDN5Ub5MFx7wCcBOA9DRLHLsmVLBmE5/enVVFYGS3yb9nrChZFXAjSpK9dEv0NRJI7veBhDAwp3k7gdYaHuTEQnCAJkqJG3p2o4iujqhJaLsQGqvXdznA7iluL2nC4EBJjjxhWJhPMdWzmoecAY4AagY3WWVhCp93APdk1WrR92pMsE4rPY5MgQ8elhNpbKQivLJjivMDrVBy24pwBfzGem5+yHYfvAEbN1MgkvVhDggxkSG5Ybt2w8O645A9hi66vxtCsLQLMDlqjGFCQbI46f4M/7X6SiUzVY8JCUL7iUxx2WQi//jVhyqXyfvbAlJkQfqMINag== 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 Fri, 13 Jan 2023 09:10:19 PST (-0800), david@redhat.com wrote: > Let's support __HAVE_ARCH_PTE_SWP_EXCLUSIVE by stealing one bit > from the offset. This reduces the maximum swap space per file: on 32bit > to 16 GiB (was 32 GiB). Seems fine to me, I doubt anyone wants a huge pile of swap on rv32. > > Note that this bit does not conflict with swap PMDs and could also be used > in swap PMD context later. > > While at it, mask the type in __swp_entry(). > > Cc: Paul Walmsley > Cc: Palmer Dabbelt > Cc: Albert Ou > Signed-off-by: David Hildenbrand > --- > arch/riscv/include/asm/pgtable-bits.h | 3 +++ > arch/riscv/include/asm/pgtable.h | 29 ++++++++++++++++++++++----- > 2 files changed, 27 insertions(+), 5 deletions(-) > > diff --git a/arch/riscv/include/asm/pgtable-bits.h b/arch/riscv/include/asm/pgtable-bits.h > index b9e13a8fe2b7..f896708e8331 100644 > --- a/arch/riscv/include/asm/pgtable-bits.h > +++ b/arch/riscv/include/asm/pgtable-bits.h > @@ -27,6 +27,9 @@ > */ > #define _PAGE_PROT_NONE _PAGE_GLOBAL > > +/* Used for swap PTEs only. */ > +#define _PAGE_SWP_EXCLUSIVE _PAGE_ACCESSED > + > #define _PAGE_PFN_SHIFT 10 > > /* > diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h > index 4eba9a98d0e3..03a4728db039 100644 > --- a/arch/riscv/include/asm/pgtable.h > +++ b/arch/riscv/include/asm/pgtable.h > @@ -724,16 +724,18 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma, > #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ > > /* > - * Encode and decode a swap entry > + * Encode/decode swap entries and swap PTEs. Swap PTEs are all PTEs that > + * are !pte_none() && !pte_present(). > * > * Format of swap PTE: > * bit 0: _PAGE_PRESENT (zero) > * bit 1 to 3: _PAGE_LEAF (zero) > * bit 5: _PAGE_PROT_NONE (zero) > - * bits 6 to 10: swap type > - * bits 10 to XLEN-1: swap offset > + * bit 6: exclusive marker > + * bits 7 to 11: swap type > + * bits 11 to XLEN-1: swap offset > */ > -#define __SWP_TYPE_SHIFT 6 > +#define __SWP_TYPE_SHIFT 7 > #define __SWP_TYPE_BITS 5 > #define __SWP_TYPE_MASK ((1UL << __SWP_TYPE_BITS) - 1) > #define __SWP_OFFSET_SHIFT (__SWP_TYPE_BITS + __SWP_TYPE_SHIFT) > @@ -744,11 +746,28 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma, > #define __swp_type(x) (((x).val >> __SWP_TYPE_SHIFT) & __SWP_TYPE_MASK) > #define __swp_offset(x) ((x).val >> __SWP_OFFSET_SHIFT) > #define __swp_entry(type, offset) ((swp_entry_t) \ > - { ((type) << __SWP_TYPE_SHIFT) | ((offset) << __SWP_OFFSET_SHIFT) }) > + { (((type) & __SWP_TYPE_MASK) << __SWP_TYPE_SHIFT) | \ > + ((offset) << __SWP_OFFSET_SHIFT) }) > > #define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) }) > #define __swp_entry_to_pte(x) ((pte_t) { (x).val }) > > +#define __HAVE_ARCH_PTE_SWP_EXCLUSIVE > +static inline int pte_swp_exclusive(pte_t pte) > +{ > + return pte_val(pte) & _PAGE_SWP_EXCLUSIVE; > +} > + > +static inline pte_t pte_swp_mkexclusive(pte_t pte) > +{ > + return __pte(pte_val(pte) | _PAGE_SWP_EXCLUSIVE); > +} > + > +static inline pte_t pte_swp_clear_exclusive(pte_t pte) > +{ > + return __pte(pte_val(pte) & ~_PAGE_SWP_EXCLUSIVE); > +} > + > #ifdef CONFIG_ARCH_ENABLE_THP_MIGRATION > #define __pmd_to_swp_entry(pmd) ((swp_entry_t) { pmd_val(pmd) }) > #define __swp_entry_to_pmd(swp) __pmd((swp).val) Acked-by: Palmer Dabbelt Reviewed-by: Palmer Dabbelt