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 A258CD6E2B0 for ; Wed, 20 Nov 2024 04:36:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9C3876B007B; Tue, 19 Nov 2024 23:36:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 972A86B0083; Tue, 19 Nov 2024 23:36:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 83A276B0085; Tue, 19 Nov 2024 23:36:49 -0500 (EST) 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 65C466B007B for ; Tue, 19 Nov 2024 23:36:49 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id DB02E16093A for ; Wed, 20 Nov 2024 04:36:48 +0000 (UTC) X-FDA: 82805210082.09.5F70D87 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf28.hostedemail.com (Postfix) with ESMTP id CB6B7C0003 for ; Wed, 20 Nov 2024 04:35:52 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=rTcFiBon; spf=none (imf28.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1732077225; 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=g8h0TAWx5uACRJYvqYwby+uO/66kiFRWyXgXzvRwZ2s=; b=L+f952RicHPVgCJOHZdejDgTWqRg99sqzmdenAoU4PWqgTFV4aOIeOsyVDuRnNWRfaoDxy dxuVdiTyKrmkFZYKtj1fosh0VIcIwHgRxfsSIlyeiiDb6N0FzgqWW/LL0QbQ7km53XoFQF Latx/PT4KnrqaDNp9eYyZSc7btLT2tY= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=rTcFiBon; spf=none (imf28.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1732077225; a=rsa-sha256; cv=none; b=XFiUaMNO1MybjeNVu6Dg0UIVL+MzAmTT4KxQZWpNBohxZihUYySgMOG+NQmxchwB7cWWEN MCW3Taoiz+Ri/Y8QnNJQlePPJJtWb7aO+B291xlFI1mAgVNKgcCS/SEvZRR0juLp1MS8sZ BscvR/ZwJZwynGYNQHKBiYXvGxuvb1c= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=g8h0TAWx5uACRJYvqYwby+uO/66kiFRWyXgXzvRwZ2s=; b=rTcFiBongOBU8vmtfzD6jJDW6b 58a5fNuCWm+VBgCEIaEEWj8KFQDt1Jk+wXKZbSoE1h0CLR+I2hdzW0AO2bZ3PkhnclKAXwLSk13Uu A6qKGMRdZme1QXT6SX0W6wfHDoRrRz/w7jmwG8lmqwfPFajDp4yeLBJoR4vjgSLOhiHJimZ+5bC3M UznvVLOP162zMY3O0dZteKO0WrE7xMvmRhFHq8nORWnMgO/TWHTDMl3PZOl3eCHVduscDA+6Zucwe fetBzUUwVcEitRSY5e+XR1+U8nu9lqYy201yVZ/8oLep68nhm6xeVz0qtNGjTSq5htWAQhc89eS18 7AYQGYOw==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tDcRz-00000004quV-3R4t; Wed, 20 Nov 2024 04:36:23 +0000 Date: Wed, 20 Nov 2024 04:36:23 +0000 From: Matthew Wilcox To: Suren Baghdasaryan Cc: akpm@linux-foundation.org, liam.howlett@oracle.com, lorenzo.stoakes@oracle.com, mhocko@suse.com, vbabka@suse.cz, 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, corbet@lwn.net, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@android.com Subject: Re: [PATCH v4 4/5] mm: make vma cache SLAB_TYPESAFE_BY_RCU Message-ID: References: <20241120000826.335387-1-surenb@google.com> <20241120000826.335387-5-surenb@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241120000826.335387-5-surenb@google.com> X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: CB6B7C0003 X-Stat-Signature: ufpwdqazr9yuemss6phkyh346hcgunot X-Rspam-User: X-HE-Tag: 1732077352-444213 X-HE-Meta: U2FsdGVkX192D6KijqqpuSwVyvkeBtx4fTuFGPRda5gCXHCoX0X81/AkHLXz7YOOd+4i47LoMZc/ejvQoAyOQF7XsmB9GuSl6Ab5a1IM3EodIPFiIgJ16gZ+aFqUPJBVbTcmnZiSS+RHkQ+QjmBRnicvA5klJy3wpoB7kKQsbNXjUgdjwQzsgkZ4IOLYWTE8N7ohORQvhjRs+b2iKMhjZ4eRLXP6zIPswFR1oeoKZPTPM/vuqaJ3RQ4M7/xh9q6mRPtrxIbb8CpJkR0whSFLas4EOGrAI17Es9K8s2WPhbhHshsBPDIazWDYQ/Z6smy2vQ7rNXznj1RTQZwAzGJiU6PjbyK8hiQNjCm6+ULGqgK0GfBakcBjdqN/SxENcZ35ywuKsHZbmVYdVsXcsfDz2F1J5/3TxRL0ntjgJH0mv2KgeCTcTaFpvHfIk0bcgM8NLW08ot/QLw7mQjWGQSAW1eWrxyyD+rkt+BptzOswvi1I4L05Gr6JmbYdUD7usiSD+Y/qkZI4+qCj5wk/lBY+HidH1/n45XKhukWJDc1nSgbbUZD5jcFCXcWJuuQ/4EvONRY1QDSCrTvjxw7197LdlZLHSUhSVL4//IxNH6tJS+hU+MaL2LGB0207sPhG7gXFn8pUvpBAiXc6GYPnwHThuOUnNa64/Yh3cZPNX3kX8Kf7+0hpuKCpNWsNPmxqYOgB8ZlwykC7eUpwrQVX33KAIqjRV/8TxGLLr2mVUY2IhrQPapgNS0iBt1U0J4j1MIHAh2OoH6yiL1cmGLnUvG+UMiYyM+2q/4ktv1VgPxN+2xLI0FcCh2SDO4HJkLoNuficioYAQpKHT2bMeEf6RnOyLYxUfmxnqzE3uQeOgF7IJZLqobMJKLfwCVc0xyi3dFLZ+8mUsgh9Sdrj3PgvqiuabipwjcoYZxD97WhzFv1W6mduw0zV6O5mFbhxGWxNqHTE4kk9rOeE/7X1FTpbU4U OMcYuhhJ Z/ucwnsCyTxcnBGSvxxNy+/Pwj/wEeKIPOvSzsyU+bMDIUVUS0EGUM7FKCHy/K/tVo9fHhcOm4an4hOivNFo10Tjj0tn5417LqMVW9LSgo7MsojDQkzUd4nBju5GJsQyvJzdUh8ZnzGOPrdnYroZFg/KjspD7a1XmKRhnJCyYKeqA3HqtdwDEtVA84IcjyHLykQkooyRVQtkgIQHmYBq1MaRJcT4ypv3IgoZIkdm52VTH6LHZ8ZTZQ+hULbkcsYhvLs7h0D1cjzlUCdcE//YKgl/peQ== 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 Tue, Nov 19, 2024 at 04:08:25PM -0800, Suren Baghdasaryan wrote: > +static inline void vma_clear(struct vm_area_struct *vma) > +{ > + /* Preserve vma->vm_lock */ > + memset(vma, 0, VMA_BEFORE_LOCK); > + memset(VMA_LOCK_END(vma), 0, VMA_AFTER_LOCK); > +} This isn't how you're supposed to handle constructors. You've fixed the immediate problem rather than writing the code in the intended style. > +static void vm_area_ctor(void *data) > +{ > + vma_lock_init(data); > +} After the ctor has run, the object should be in the same state as it is after it's freed. If you want to memset the entire thing then you can do it in the ctor. But there should be no need to do it in vma_init(). And there's lots of things you can move from vma_init() to the ctor. For example, at free time, anon_vma_chain should be an empty list. So if you init it in the ctor, you can avoid doing it in vma_init(). I'd suggest that vma_numab_state_free() should be the place which sets vma->numab_state to NULL and we can delete vma_numab_state_init() entirely.