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 C27F4D462DA for ; Wed, 13 Nov 2024 16:44:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3992E6B0092; Wed, 13 Nov 2024 11:44:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3486B6B00B6; Wed, 13 Nov 2024 11:44:41 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 207056B00B8; Wed, 13 Nov 2024 11:44:41 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id EFE3B6B0092 for ; Wed, 13 Nov 2024 11:44:40 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id A55F240B74 for ; Wed, 13 Nov 2024 16:44:40 +0000 (UTC) X-FDA: 82781643336.03.F81D070 Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com [209.85.208.52]) by imf01.hostedemail.com (Postfix) with ESMTP id 5440E40005 for ; Wed, 13 Nov 2024 16:44:05 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="kMu/ed4N"; spf=pass (imf01.hostedemail.com: domain of jannh@google.com designates 209.85.208.52 as permitted sender) smtp.mailfrom=jannh@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731516223; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=K41601Aj1DwCT3LWzGLI16qz80eqGD+NEopptWi0zDE=; b=VARSlNKbUuULwbmBQ0AsTWSVlbLNJOyJcSIoWqrCOTjccJGIyowez4reV2J6oL90SSA5EQ 4Y3NLoyUStk2EiT80tGm7OIdLeimTzcbkRve2OeC8LXNLvFDGK1n6DJ7cv6W2QwBEgmid3 txAA4oJBXAoY/4PEHOIHBhvDK/86jKo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731516223; a=rsa-sha256; cv=none; b=fYXUN0ZcVI7VsI9bmNIwOho1FQbXUFUrLHrr3Lmpql9lFyBHJuwX5SSZtB7PEF0U7mUElx wsEfKdy/rJeqODliSvqpfiKkKiRgrKZCJdhyAw4M1X0Dwbpl3KsQjlsnGSjlNfy5KWgTYX lm+Z0HYSY7w8pOgLkvIOe6MT3RTkIV4= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="kMu/ed4N"; spf=pass (imf01.hostedemail.com: domain of jannh@google.com designates 209.85.208.52 as permitted sender) smtp.mailfrom=jannh@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ed1-f52.google.com with SMTP id 4fb4d7f45d1cf-5c93e9e701fso5265a12.1 for ; Wed, 13 Nov 2024 08:44:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1731516277; x=1732121077; darn=kvack.org; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=K41601Aj1DwCT3LWzGLI16qz80eqGD+NEopptWi0zDE=; b=kMu/ed4NSTE3X/IdNAteClhYo7+fwR5oHACRJLOyhrrQ5VhzAWPWEfS5z4bogyJBpn b5ycRcdomZV800gPszmBG9Og4IunTzhpHynlbdYJgq7u4wshB/9E+w2qId9CNFotsLh0 TWVKaCsKOD4U4p4U2s/ZdMop3yN5qb7aUx03ugc0uRg5KzsOe4jg9k64MOsGtD935xDQ XPK09i9AxPnLzLa+e8lcnnWNKWHSqNQWRuoknaCzxuGz2NadmhJ6qhuROThcjBCo4MPy 8jV6wdjKueJlRPGWL4Ymn51p9TVbrnuwOHjN090dxt1AJ354ot7ltQ9ubOkryHcApa+g tqxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731516277; x=1732121077; h=content-transfer-encoding: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=K41601Aj1DwCT3LWzGLI16qz80eqGD+NEopptWi0zDE=; b=DwPuXtXVz1eTLEAcCLA2sK2sWSs1rYO+4ssY75i0I23Y6yMwRrBjF480pYO8uXSwyD ipAI61sT+lv7biXydTx7eHDGMsJ+NzvuJskIXTxiJzcQRVa0Xlp2OQ3BMpMlQSnfV/Qy vxz0PJ0R41GsGUOZQNNh3EygOWrJUFTmdEe2afNzg7PVvX1XXiFoVgnt9AePI0D/LDJW uBdGyrCKTtCmLiXNJl7GOflf5vkkghZYjj0YKyik2xFKzUr3C3gOI9Y6DIuOZpqXU8aS ugRIQ7o8cM+qc2YwBxOpBhv7wG8R08snvm+K7g1apc0S2+mose1//jUAO2eXvMPnO3r/ GeGg== X-Forwarded-Encrypted: i=1; AJvYcCUy/WCKZmjLgXaj2TZRs0mDkA1iDj2JSwBPgjyN67PSaAnHKNyTivqI/KTrREXEaxYgIHcIsIFHdQ==@kvack.org X-Gm-Message-State: AOJu0Yw1fHjj1YUloUwvrn/Ej5gqUpYCgRAm7C1/AeDTzYgEckFKWvh3 rCqDi0/ExZXG1yR9GFXGh3a3MNNomJMnMBonKABaNtPoari9tcdX4hCdhnXB01gQldVeMY26AHE YdMoBsjafAe6mivkjK3UkNk9zWsMXnEHGPOnw X-Gm-Gg: ASbGncv0k0j3L8iFyH2jf9tRXWLnaOYewyFVJoay8c3CAIreKAw/A/5TG6u6jkCGEbr 41vbyzmFAcvLIgn08D40Y+uPGrmDQfvUG7ZK+5+GYiPneFUO0onvNt1qHCzgY X-Google-Smtp-Source: AGHT+IFmW5EY8yv++uV6rWC8b84oqe+r4WcblS74tlvDXju2LG8ZJr1TrcaWUFb2AMJlbTIPMvZYMZs+C5PWC/0DTn8= X-Received: by 2002:aa7:cb8c:0:b0:5cb:6849:b30e with SMTP id 4fb4d7f45d1cf-5cf656c49efmr93291a12.3.1731516276879; Wed, 13 Nov 2024 08:44:36 -0800 (PST) MIME-Version: 1.0 References: <20241112194635.444146-1-surenb@google.com> <20241112194635.444146-5-surenb@google.com> <54b8d0b9-a1c7-4c1b-a588-2e5308a977fb@suse.cz> In-Reply-To: From: Jann Horn Date: Wed, 13 Nov 2024 17:44:00 +0100 Message-ID: Subject: Re: [PATCH v2 4/5] mm: make vma cache SLAB_TYPESAFE_BY_RCU To: "Liam R. Howlett" , Matthew Wilcox , Vlastimil Babka , Suren Baghdasaryan , akpm@linux-foundation.org, lorenzo.stoakes@oracle.com, mhocko@suse.com, hannes@cmpxchg.org, mjguzik@gmail.com, oliver.sang@intel.com, mgorman@techsingularity.net, david@redhat.com, peterx@redhat.com, oleg@redhat.com, dave@stgolabs.net, paulmck@kernel.org, brauner@kernel.org, dhowells@redhat.com, hdanton@sina.com, hughd@google.com, minchan@google.com, jannh@google.com, shakeel.butt@linux.dev, souravpanda@google.com, pasha.tatashin@soleen.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@android.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: 4tjd7bdbxs99tbkd458i7bkqiixmd7kn X-Rspam-User: X-Rspamd-Queue-Id: 5440E40005 X-Rspamd-Server: rspam02 X-HE-Tag: 1731516245-665883 X-HE-Meta: U2FsdGVkX1+DZXtQENAakVQ6tLElKtFJAoYUME8orAu3rFH2AMh+PKZKsuAlXAYoHPwuSf9WSggF9qZJWcyvhVJuytvQuSi2gtd/XOwNBgkRu1XWHxKra1B8Zb+JCeGQB6N451h2EfB/i8qWZCe7gXr53f2esU2e+6ABNJQS/YByBRqX7IbW6zo0kcIomLeMdBRNVw0nfHteozY6frQIhyA656pFMM9RgMN0t7yVOyZ5NUyPXZjXElOZvp7OUGWTKnwkiNIybw0iW/yuqCAE2hxlfBoLKZPeFOkdRDaDfehVqwBDdXkYJvQR+WpbGtNyQsJyE3Xhhpd9f4Poe1HLm9oVDkBZoKGXCGBJHOEPhXUNTYbZMPh9U04szsbaZAOx4Tz5x4UBMjz9X2R7VOvnHvwyMsOOwHE5y+DSSM0iV/bc4y7JYRSz+DDJe+b7QHWVZk0xjMnxdWv6X2j8YWiWjuY9/zoO10qSd8V85GhUtvNPwvLSqnbD0lJUNAw3ja/pV6+0x2A/Z5J7+XFhFV3yP6EtwXBn7p4i/70MB4+Tp3qodt0H7eRlLSySFoF561auBx3xXPW75jfUuX9GL7GNe/D2PdsbHQKZq+IqzmY5TzQY5oWG9T2kJpDc9r6zFc0+n3a5cz76eZKonsud1o/onRcGlpThCbVvfz/R8wEsXNolQtIICh30ncD5tcaUyP8iQi6rlwRjwhhIMCE4HU/OZsL/UOYsxE7ilpCqHGFI4nLAB98iQ6K/GOqLSN+OirJyHJMgw96YYLRy+ZflcfP/JqwZkgvajxZoLxGMHsueYQqGl8sIdXxfEC31b1zaq5yVh66UxPqr9DJ/0e6DRPbj/XfJ2i0ogTIPrwtRy6bv+fRKdmNvgQVBcuuf1wZX/ihOj/8LGBvwqgXk4ITFT42+I1ISkXzIuE0S12/Z/GMjSSBWBx7zWRe9PuMLU4dF0Et9ioBT9PUTEIigVo1SPqs ksNDXmf3 vWaOsie+MBjqp/+EJOo4/TXvmV51ZHV91f0sdJDNEVqk8dgFXpPaAXXBgD6+qybJVypaNE0PRvUIYwEgeUiXLY2YFTCkWzgWhoN0UUViPo4OS5qXz0QUuK+z58vtpgR33M4UomZPBlqzg1K2QuJ2l9suE4/Uc56geKXOktJzpvq4YPRWFHnSgRiD1hhCk4lBXlt6AxIFV71V6XOSANuzftFj0/14X4gOaAKSn00RwyyZCbqYGpw3TA5jiuIfuQ9WZ1WxDqWEhw+M3xtYI82p4GfUD4+P3GXmjo/d0aNxF0g1IeNL8Tgii2dx3GXc+FcYolERN X-Bogosity: Ham, tests=bogofilter, spamicity=0.000005, 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 Wed, Nov 13, 2024 at 4:23=E2=80=AFPM Liam R. Howlett wrote: > * Matthew Wilcox [241113 08:57]: > > On Wed, Nov 13, 2024 at 07:38:02AM -0500, Liam R. Howlett wrote: > > > > Hi, I was wondering if we actually need the detached flag. Couldn't > > > > "detached" simply mean vma->vm_mm =3D=3D NULL and we save 4 bytes? = Do we ever > > > > need a vma that's detached but still has a mm pointer? I'd hope the= places > > > > that set detached to false have the mm pointer around so it's not i= nconvenient. > > > > > > I think the gate vmas ruin this plan. > > > > But the gate VMAs aren't to be found in the VMA tree. Used to be that > > was because the VMA tree was the injective RB tree and so VMAs could > > only be in one tree at a time. We could change that now! > > \o/ > > > > > Anyway, we could use (void *)1 instead of NULL to indicate a "detached" > > VMA if we need to distinguish between a detached VMA and a gate VMA. > > I was thinking a pointer to itself vma->vm_mm =3D vma, then a check for > this, instead of null like we do today. Sidenote: Something like NULL or (void*)1 is fine with me but please don't do pointer-to-itself - we shouldn't unnecessarily store a pointer to an object of one type in a pointer field of an incompatible type, that increases the risk of creating type confusion issues (both in the memory corruption sense and in the Spectre sense). I know MM already has several places where similar stuff can happen (in particular page->mapping), but here it seems like unnecessary risk to me.