From patchwork Tue Apr 15 09:25:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ye Liu X-Patchwork-Id: 14051749 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 32BD1C369AB for ; Tue, 15 Apr 2025 09:26:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 389442800DD; Tue, 15 Apr 2025 05:26:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 336F82800C2; Tue, 15 Apr 2025 05:26:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1D7312800DD; Tue, 15 Apr 2025 05:26:04 -0400 (EDT) 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 F0E822800C2 for ; Tue, 15 Apr 2025 05:26:03 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 10DE51A10FD for ; Tue, 15 Apr 2025 09:26:04 +0000 (UTC) X-FDA: 83335746648.10.0F17DA8 Received: from out-173.mta0.migadu.com (out-173.mta0.migadu.com [91.218.175.173]) by imf30.hostedemail.com (Postfix) with ESMTP id 5C11E8000B for ; Tue, 15 Apr 2025 09:26:02 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=IOn1n8dh; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf30.hostedemail.com: domain of ye.liu@linux.dev designates 91.218.175.173 as permitted sender) smtp.mailfrom=ye.liu@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744709162; a=rsa-sha256; cv=none; b=xlSUAWYozjhqY7CkcMPyrO9jtSsRmsW1qRTNbSknairkNgDZFLEpBfElS29zR40ah+7l7d 9r2ILZxfu6WhXGQyYobzpTmbwJpRRTtNvCmxX1O1BN9Ew2Ypb9mKk9V6HnprdbaT9H7rde uH8ItPREqjZCsBmy+jBivPyMW/RIzqU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744709162; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=t8GWBbvNAyASsGHRjRlleeuP7nCk/V15qdS4Y4WVO48=; b=ygG+tX9lEbz7hA7F/W/n/HJXGQu9BPpM6UdoQjOxJim6BOM6PY2fVQrQH6z8p2lPDqS6vZ zZVcpHpyIimEXB4WwT6oUqtrY0IlTlRJHM/CPpkkYbFq+C0fQpts1sy5pfqMVhhV/uLW+W dASHgJAWD1uC14hABuF2nbUsfoycsOg= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=IOn1n8dh; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf30.hostedemail.com: domain of ye.liu@linux.dev designates 91.218.175.173 as permitted sender) smtp.mailfrom=ye.liu@linux.dev X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1744709160; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=t8GWBbvNAyASsGHRjRlleeuP7nCk/V15qdS4Y4WVO48=; b=IOn1n8dh8IjO6+zB1Tq4ua6g5Rc/EobI3F3VjW9p8vVrgEqn8xQA0Ng7wWQus07haFpvKl I7WOOVnAngwNpRKkwFX7DtNLgtDw4LC8/eBzspERzumwoJVaEfqWO7qs2sUeexmgzm5PlZ oQZoDIvwLbO/PCow5Qg99DTiTuDku2E= From: Ye Liu To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Ye Liu Subject: [PATCH] mm/rmap: Move anon_vma initialization to anon_vma_ctor() Date: Tue, 15 Apr 2025 17:25:48 +0800 Message-Id: <20250415092548.271718-1-ye.liu@linux.dev> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 5C11E8000B X-Stat-Signature: zggzpaqtwuktmgp85tamj8u7orcj6poi X-Rspam-User: X-HE-Tag: 1744709162-493187 X-HE-Meta: U2FsdGVkX1+UWi91W1/cmdeSKaSqvKh8zAKyVbK8EmMUcWNGiAM4f1UwwE8bLJiUZ1xby+v3PDVAJ1LI/NjB0QuuLidQbR+dF5D3LlqCTPHfAhbYMRk7B6Remun9x/uy1MkXbtO9RNShVSGK1YUpztNQ8lNX5AY8t/VtozAadCVfINrE9j67tNUkTZNXQTPUpA8bWpscT8j81YNCQ9QNaUNgZkCBsDrRoj66y1UA7TcuEvlOQ36mARtSS5v9HOxFrD+eufhDGXLqX1y7D9FdL2xeSrNzbMiargV0tVAjW7DS8gybFUP6ydG1ryU27Hb5I15qlHMr/kSwVaaY5FocwBZXP2HRK4lI5wi++uQWxIDdEJo7W5ZfSFIzAxFo3mzpbVD44LKAd+1cbDmXb3/Kw0usWIJkfDgrRAIcVgzXfFWYix//2wvBTZ9fDyWNDagsgGjmV+QSJUICOGzDNEk2D4QbRay0fvD1htL4mpn+0pUpzCfwLRbQvEckIktufjEWK38dKBMv0mcAe/PozJD5HbHTmSxpybPmNc8auF9YzmMcNp/dRExDPoJZsP3ZyUwGaPmQ4oYCTjk8mWv8SOiplH9SOZ8EUuRR9VTMXeJvwDMTWxZ+m/jQyRY6HteMGQA2+rylzMFobq1Rt5kld30oeE/LtSQo0yg2flI4Vw3qZ160oM+Z7BC1xKDDkNA8Rj/yo87J9k2vSVfi7rAlcw8Uk8tSul5TXPjDp400SxW3HvC01TrZwQm6oRvfeamWnNdamRtw/bf4UwwxOQLhH0bapGLaDttY6jkAkGnpUuiMTrXqpFBpYFr5TcABu0LmR6EJsQOXVoNyhW84nx32+h7MiHk902OrDVh8CEltyK+jGS6sibgEsLi7zRio4/gITmP2/OVamWIPGBu+NJVSKusqBsXPPsLoJaBUVputETIYsLAD5E4O0rcWYbp2qiIp19PzEfIUZRgYDM9E63DytUP 7WaEU0Tx foth1po716mbWBgq9yDZ21dUwrzlWDnSJdKy9xTLBimdHcVMC8g4Nwx1UfiekRE0wgifH7YDgvlGrCob8IyBsjTCZqCPCdKIKZZOroKwv+OdQ4bqPG6K1dAC2iHEQzxN+8EDIzPzIpRdvBwSsq1UALSnjP88UPnnn881qMQc0hlaXcRuCjgBPonCp2I5EKA5Or/3LG+9K3bTmbStJiv5mJkT6Ng== 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: From: Ye Liu Currently, some initialization of anon_vma is performed in anon_vma_alloc(). Move the initialization to anon_vma_ctor() so that all object setup is handled in one place. Signed-off-by: Ye Liu --- mm/rmap.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/mm/rmap.c b/mm/rmap.c index 67bb273dfb80..9802b1c27e4b 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -89,22 +89,7 @@ static struct kmem_cache *anon_vma_chain_cachep; static inline struct anon_vma *anon_vma_alloc(void) { - struct anon_vma *anon_vma; - - anon_vma = kmem_cache_alloc(anon_vma_cachep, GFP_KERNEL); - if (anon_vma) { - atomic_set(&anon_vma->refcount, 1); - anon_vma->num_children = 0; - anon_vma->num_active_vmas = 0; - anon_vma->parent = anon_vma; - /* - * Initialise the anon_vma root to point to itself. If called - * from fork, the root will be reset to the parents anon_vma. - */ - anon_vma->root = anon_vma; - } - - return anon_vma; + return kmem_cache_alloc(anon_vma_cachep, GFP_KERNEL); } static inline void anon_vma_free(struct anon_vma *anon_vma) @@ -453,8 +438,16 @@ static void anon_vma_ctor(void *data) struct anon_vma *anon_vma = data; init_rwsem(&anon_vma->rwsem); - atomic_set(&anon_vma->refcount, 0); + atomic_set(&anon_vma->refcount, 1); anon_vma->rb_root = RB_ROOT_CACHED; + anon_vma->num_children = 0; + anon_vma->num_active_vmas = 0; + anon_vma->parent = anon_vma; + /* + * Initialise the anon_vma root to point to itself. If called + * from fork, the root will be reset to the parents anon_vma. + */ + anon_vma->root = anon_vma; } void __init anon_vma_init(void)