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 B1A16CD37B1 for ; Tue, 3 Sep 2024 23:41:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EE0E08D01F9; Tue, 3 Sep 2024 19:41:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E90CB8D01E4; Tue, 3 Sep 2024 19:41:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D58308D01F9; Tue, 3 Sep 2024 19:41:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id B880C8D01E4 for ; Tue, 3 Sep 2024 19:41:22 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 5A670160452 for ; Tue, 3 Sep 2024 23:41:22 +0000 (UTC) X-FDA: 82525050804.06.E589F5A Received: from mail-yb1-f178.google.com (mail-yb1-f178.google.com [209.85.219.178]) by imf05.hostedemail.com (Postfix) with ESMTP id 9CC6D10000A for ; Tue, 3 Sep 2024 23:41:20 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=gN9gsOBB; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf05.hostedemail.com: domain of jthoughton@google.com designates 209.85.219.178 as permitted sender) smtp.mailfrom=jthoughton@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725406810; a=rsa-sha256; cv=none; b=UfbhVy6mNS3bMeU4bbY9KlvCvMfWsntKwe14WGi7MPu0huyYYsEBHTaYMe+dVbUIHew/PX 3SyunmpgBXcZ1WiwsMa5AIW1BgtP2Wuj6hlwROzyqIFgVKqlywDxwviQYEHT0NCtxPq4/v BOGSahTKJuJGUtDFsT5E3+2hIbxoAiU= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=gN9gsOBB; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf05.hostedemail.com: domain of jthoughton@google.com designates 209.85.219.178 as permitted sender) smtp.mailfrom=jthoughton@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725406810; 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=V5M0Sum4xgHlTMU2fLROf8XBEuOZsxnLsFF2EblQMHc=; b=P1jAdjFNkszSi2jZR6It8aTe95YrQSyOBK5GpclcDDWRfnsG+O+gYno+PrZy6lyZWfbbNo ET7szbOzZXHKIkxAK4Nk++tw2AtTxKz0f+k0IB6DcDIkyy+dSXxlMeNW287pau65hGkDPo K8MlB7VkfhmnKkyBvIxZRX0L7hJjY4g= Received: by mail-yb1-f178.google.com with SMTP id 3f1490d57ef6-e05f25fb96eso5806333276.1 for ; Tue, 03 Sep 2024 16:41:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1725406880; x=1726011680; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=V5M0Sum4xgHlTMU2fLROf8XBEuOZsxnLsFF2EblQMHc=; b=gN9gsOBBZ4LWjRLjTKToiOnrvlY9AdRhzh8IPLeU2kV4Cubcnm7ZoaTDuWH5w6oSUT +YbCEkaIiLzVBscdFS2IN+zN9+3LzoFqSK/LTadcwKqRxqGaY4Sj5aPZdAyPMiZlVUr9 8vd1adbF8A9k7UH2D2HERjDZ7r4/V+mSPfTVLjQvgDwEjMSQu+rZTYkg11Gp/bTLQbwD /oW6hLyINJCHM9fny3Zys1i0ntGUGkaGgc2XG8KTV6NqgzrkVcunSZDNCVJ+3NvIfc0v qNr7xxZ37A6dwns6WClq77ACee8RJwLlz4Yyv0qYzMCPFSWs46Bru42dHTZt9c/NlbjK VamQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725406880; x=1726011680; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=V5M0Sum4xgHlTMU2fLROf8XBEuOZsxnLsFF2EblQMHc=; b=VofLjeVtJENOQF4QNna+HLbtNXmWySiDf22ZXANz+YoAA9C1IxGaUOzo3O7MLsjiTZ yxNDRkddlXKxThuR5Axi/T8Xa8vih1b1sWaKJkSWYNZE5dsn7CEoFQdqvDIBvgkRJwO0 v+OSaF/tiRCmW3ZNo1Fu/CKdkIc/cY1VNnP7CUku+y1nR9VsLKJc2wz5s9HTMfBNiRa6 V+hGYEibAyLK0vLns4DrqkS7KIbvq7BNDNAUps/lkU56du/QYJ417IPVycemW5ao8Iou 7MI9p3tbYTpYgWrA/wqmWqZr+Yc9HVk/HfFJPxjVOTQ/66hclVjqgqvqwzaGt6L6mRxE VMFw== X-Forwarded-Encrypted: i=1; AJvYcCUNMKFcPz5InWuW6vVsCsJwf3kxxsPgZrJGunOYxY+YNrO6ScU5sqbNijntQZ1/WtiKMsZcGc1Osg==@kvack.org X-Gm-Message-State: AOJu0Yzdh2eyqHJk+dQRyPseflLJQDlNbZyqVYuBbozLVu1xAGg4UNal gb0bv/IP6z8UWwvQPfOqqeP5pS4pGCCqNacvLl0C5mIrtj4BX8crR/WZKjbWDZsA6e2Q/Zvuts7 V/S+fM5hSyH9HK7ywEUEo8p76VJx00v3WSP02 X-Google-Smtp-Source: AGHT+IFWEFEBxEfnZLDRslHEZBai9WH4P0k103YAF6DmVxrdDw6kLMNpGPXrgYEEvE4DIx2uMMfkeh1c/yvpuejloeI= X-Received: by 2002:a05:6902:1405:b0:e1a:7271:b3e6 with SMTP id 3f1490d57ef6-e1a7a3d0fabmr17177041276.53.1725406879370; Tue, 03 Sep 2024 16:41:19 -0700 (PDT) MIME-Version: 1.0 References: <20240903232241.43995-1-anthony.yznaga@oracle.com> <20240903232241.43995-7-anthony.yznaga@oracle.com> In-Reply-To: <20240903232241.43995-7-anthony.yznaga@oracle.com> From: James Houghton Date: Tue, 3 Sep 2024 16:40:43 -0700 Message-ID: Subject: Re: [RFC PATCH v3 06/10] mm/mshare: Add vm flag for shared PTEs To: Anthony Yznaga Cc: akpm@linux-foundation.org, willy@infradead.org, markhemm@googlemail.com, viro@zeniv.linux.org.uk, david@redhat.com, khalid@kernel.org, andreyknvl@gmail.com, dave.hansen@intel.com, luto@kernel.org, brauner@kernel.org, arnd@arndb.de, ebiederm@xmission.com, catalin.marinas@arm.com, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, mhiramat@kernel.org, rostedt@goodmis.org, vasily.averin@linux.dev, xhao@linux.alibaba.com, pcc@google.com, neilb@suse.de, maz@kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 9CC6D10000A X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: zoku5uk6y7wjc1bw8k9yif8fp5hpi7h3 X-HE-Tag: 1725406880-620470 X-HE-Meta: U2FsdGVkX18C66kJMbJ5bKNuE3tKvRjZKByFjEjQDZLaRxJsLm0xVSWm10vS7iibIIv2xx6Y2BZahja5NiOcQfKeinJer2PxlRaaLBx4cpvv7HtHEJCgqHNekOZigMEZNRO3SI2Qev5plzXLyN7mNJweyItK7nXfK+ijzgKQKd6m26cOMx11EdtKLBpnMB4yIDkAYPAceUMewEyPgRNV25Hk8pQVJjKL7VAtZignuM9/WiFymxye/3eE87OQoY73tLnHNv6CSZx+N/RwuvInsohWzPJUJIbCDSISMNOgDkkeS/i/W+3Z5cSjTclfia84tcR3qdI2g/5YQFNPUlenqZbXLhIVY130BCy5pEYt2D7U7ldUACLjHZlFoOlBjKrTqKgPTaoWY17WMO1xarfRSHSxGRAsR98BCB3utBLvAJ/fjdKeC1g397USk9yapa+F4kQ1DrHQpGFZ8EAFoYEkXSj4VVlaorcLQuuQUdG3DVJn5SgkMADURvIxduSysZvknCTNQwHNlSxGaPZsraLpP3IzsZFrAGr8RAE/kzR+bMUVaLnbww/Z9B2Ggui8XElOolPEjm0dPy2QxquUlL+1vtfQuYVvqcn6vSCioFPn21z27HzGZ1ICPhvFvoc6xqhLhE7XyV1wsQpplJv8WsUBFbA5BVrkHv8irfeyFBkl9eGZ9JDPIbAeUjENdom/Rq3rOJ5OCISvQ7QQTVYwH58KmjRf9+/8HoRReF6fAFZDo1tZ6yJfidFlP0lzp+UbF2W6xd5WzA8ZcwyffXZ9Sjagcu0mOvJjiuHRFxkSF5EPOaLpFiZsxS7p+GkftzEM/7JPPD6ojvq6PVSJ4sodjg7lSMO6SWoN4AuWswx1lLieYt0/owKc4Or+V3+M/pZhfApdPQONXrf1mOGE0ikoLFXYrPxKHPAiB8v1hFPBRV/gW8+7QZddN+I6+TpRdC594cr2eBeG37aE07nw7DUxvVF BdR3Qqel BlIN0PpCdcRvAmXRdYMmlUbnO1UBzgfXgL5y2jfssUyhnRm60yYadxhwzwcIh2MR4tETuuY2Z7DbZoE2LLyV8XBU5+HxwXKSJGhLp84VNMoUMMT5XT9a31/b11Ympp2JESlFaiFaQ+vAzrKQBxB4no+vQoD+L7yM/CDE2NWqlOP9utTD9grjJ1F5Anb7CVdq+//bKcbISMPrhQErQjtcWgQFqjCJ4T6CZ3wRVtvOGvVYpZ9XF+dOtMHpDQ56J51nNBk6hDHn1Z5Y2IU64bWbp4GFn34MJCQAoOc2h/Yh5j3PyViI= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, 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 Tue, Sep 3, 2024 at 4:23=E2=80=AFPM Anthony Yznaga wrote: > > From: Khalid Aziz > > Add a bit to vm_flags to indicate a vma shares PTEs with others. Add > a function to determine if a vma shares PTEs by checking this flag. > This is to be used to find the shared page table entries on page fault > for vmas sharing PTEs. > > Signed-off-by: Khalid Aziz > Signed-off-by: Matthew Wilcox (Oracle) > Signed-off-by: Anthony Yznaga > --- > include/linux/mm.h | 7 +++++++ > include/trace/events/mmflags.h | 3 +++ > mm/internal.h | 5 +++++ > 3 files changed, 15 insertions(+) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 6549d0979b28..3aa0b3322284 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -413,6 +413,13 @@ extern unsigned int kobjsize(const void *objp); > #define VM_DROPPABLE VM_NONE > #endif > > +#ifdef CONFIG_64BIT > +#define VM_SHARED_PT_BIT 41 > +#define VM_SHARED_PT BIT(VM_SHARED_PT_BIT) > +#else > +#define VM_SHARED_PT VM_NONE > +#endif > + > #ifdef CONFIG_64BIT > /* VM is sealed, in vm_flags */ > #define VM_SEALED _BITUL(63) > diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflag= s.h > index b63d211bd141..e1ae1e60d086 100644 > --- a/include/trace/events/mmflags.h > +++ b/include/trace/events/mmflags.h > @@ -167,8 +167,10 @@ IF_HAVE_PG_ARCH_X(arch_3) > > #ifdef CONFIG_64BIT > # define IF_HAVE_VM_DROPPABLE(flag, name) {flag, name}, > +# define IF_HAVE_VM_SHARED_PT(flag, name) {flag, name}, > #else > # define IF_HAVE_VM_DROPPABLE(flag, name) > +# define IF_HAVE_VM_SHARED_PT(flag, name) > #endif > > #define __def_vmaflag_names \ > @@ -204,6 +206,7 @@ IF_HAVE_VM_SOFTDIRTY(VM_SOFTDIRTY, "softdirty" )= \ > {VM_HUGEPAGE, "hugepage" }, \ > {VM_NOHUGEPAGE, "nohugepage" }, \ > IF_HAVE_VM_DROPPABLE(VM_DROPPABLE, "droppable" ) \ > +IF_HAVE_VM_SHARED_PT(VM_SHARED_PT, "sharedpt" ) \ > {VM_MERGEABLE, "mergeable" } \ > > #define show_vma_flags(flags) \ > diff --git a/mm/internal.h b/mm/internal.h > index b4d86436565b..8005d5956b6e 100644 > --- a/mm/internal.h > +++ b/mm/internal.h > @@ -1578,4 +1578,9 @@ void unlink_file_vma_batch_init(struct unlink_vma_f= ile_batch *); > void unlink_file_vma_batch_add(struct unlink_vma_file_batch *, struct vm= _area_struct *); > void unlink_file_vma_batch_final(struct unlink_vma_file_batch *); > Hi Anthony, I'm really excited to see this series on the mailing list again! :) I won't have time to review this series in too much detail, but I hope something like it gets merged eventually. > +static inline bool vma_is_shared(const struct vm_area_struct *vma) > +{ > + return VM_SHARED_PT && (vma->vm_flags & VM_SHARED_PT); > +} Tiny comment - I find vma_is_shared() to be a bit of a confusing name, especially given how vma_is_shared_maywrite() is defined. (Sorry if this has already been discussed before.) How about vma_is_shared_pt()?