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 70E06C369BD for ; Wed, 16 Apr 2025 13:30:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7FE7428010F; Wed, 16 Apr 2025 09:30:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7A8D02800D6; Wed, 16 Apr 2025 09:30:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6711B28010F; Wed, 16 Apr 2025 09:30:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 498B62800D6 for ; Wed, 16 Apr 2025 09:30:24 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 400BC5A896 for ; Wed, 16 Apr 2025 13:30:25 +0000 (UTC) X-FDA: 83339991210.01.24997FF Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) by imf11.hostedemail.com (Postfix) with ESMTP id EDB3140009 for ; Wed, 16 Apr 2025 13:30:22 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=fRPB3zuF; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.221.49 as permitted sender) smtp.mailfrom=mjguzik@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744810223; a=rsa-sha256; cv=none; b=VKoihY1aIFuAsyJnO13eISlRSgP+06wboCCwwqDLZrpcxgO8jpEsGZOV3ShStqCy0XlBTm GDf0cK2EQxZ8WCUEXQGhgkd7ijrM7FrqlFMziFPEh6BSXijX7aVB8jSWfyvRM+1uk1ZccD jcNBIVwIoY70VvcfdWCYmui1IRFRML4= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=fRPB3zuF; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.221.49 as permitted sender) smtp.mailfrom=mjguzik@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744810223; 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=ruWeQ/jZWWsGDt0cFTUwwu/ek8FIbyqNmdK4Y6AKtkE=; b=lF5Y4akvFldKBYrMT/RcUBg5oPFkR47zuydGM456VnKyuCegl6NPljPZ1wNCJO+94Kx0lD MsJR8Sfr7Dr0OfDBcw/8ebd8XmpgzAtR8ILnHx99RBKM7dxe8MBFlYIBCmBaVmsWk2bb/Z bGqcgwVzOMVlbeYddhH5nt1SRi6qKhA= Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-39c2688619bso4419553f8f.1 for ; Wed, 16 Apr 2025 06:30:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744810221; x=1745415021; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=ruWeQ/jZWWsGDt0cFTUwwu/ek8FIbyqNmdK4Y6AKtkE=; b=fRPB3zuFLXjRFAWEmefrG4yA+FTvEBMosqOCPEMMgR81jJ+2gemRle3UpRKlu54eoL CqnXC1iYrsYo4XrQNtp2SUesnhcqRl2YG9hzb5yCRng97e7HwjIU0UE8x2wpQJ0ejqLQ qHw+b7EBoBCYg2+BcTnLKCCjiQELEPsMh/qiJtMKJKejFik472FF/iaATgKoRHpw4TRr AfHX3PeLny3rxFMLhGnIUQMtRcFvZPMYeETy47x1o6V15cIreT5lrlz9wRDoSLv9SrRp W88dNcHdimur3baaPsNMlThRQ0BusO/DoHcCwPAGQmoJ/6li9SCkt9g5IasYZM0Zkb6g T8bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744810221; x=1745415021; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ruWeQ/jZWWsGDt0cFTUwwu/ek8FIbyqNmdK4Y6AKtkE=; b=IgiIzmRNCeWAVUrqtWr+WIBkXySWu9U0U7QGQ4/XlDjUL62lsGS1c7FRci9HIrT74f YlvkPWWjuOQaaRENEy3GFZ6+8UNOWviUatN1pqzoVcrv8EgsP93BNhHePSJ7EgU60ak8 6etqIj4V0j5rnVNSekULm610jMWY2jScVUSVYuMl3LW7aLQbd0kLO61BCGEqX4f8ORxR gbMOMtJZ2Qdqp5zdoQFHds5d/AwEatX7oaT+9yLaHjapDOlPTHpwVbl0dUh+fQ/1gQJI v1L8UQ2OCvSLAZ5n+XORABZeRYe2t9IRNV0RpGjXXq3lKAA5y1oZ45y5OgFA4G2dnx5w 25/A== X-Forwarded-Encrypted: i=1; AJvYcCV49J+2od39mV8zJFIIYVdaZUh0VFTnIngMuqI88Dw2tjm+DY3oW9gqIOJLukt3UTAkdhbQ98UUFA==@kvack.org X-Gm-Message-State: AOJu0Yw28vuyQX+NaIFi3OsJKiIsSk9NqZPnGL6A5620o76igpmAglGw uRiyrQp9okdgcLybntog5X1b4t5oMI4x9xgY5j4iM/+5FpIiPGv3 X-Gm-Gg: ASbGncu5SRap/PTckfFRyxn2SI9gWmyUirOtZFTtrx3DXIf6b3CGOe3KmeGW2qaFU6a rCe2JX/+k3FddFIslmsY28NjI/7bJGBwh6DgkNQ/jXzhDTLjDi1G6T5QdltY9ZOSkXc/+aPmJBx fY1AQHWaMuPNTOx4c8GCZbOix1QYLV8ZjFerJiswYz/5k+TTciQQNEY4RcrszgwVVxunq1/KfdJ VZmm6bTeSsKi0CuWLyD+bOZzQe7B6dE4Of5EgcbYHJEZINuuQ0VaJs6hY6pG5dJQ7+julcxUvMt P11jYaD0r2lCZosPK7cdOM79fk7kJiV339GekSDiUuWy0p27UMluOGaG X-Google-Smtp-Source: AGHT+IFzmENLvdzlwYIkpGRVUJfIxITPwHNn33jm2bA5qWx5kSthdB1+apT3RE3+Bt7w9e8+fZ+Zvw== X-Received: by 2002:a05:6000:420d:b0:39c:2b28:604a with SMTP id ffacd0b85a97d-39ee5bb0c8fmr1481397f8f.50.1744810221095; Wed, 16 Apr 2025 06:30:21 -0700 (PDT) Received: from f (cst-prg-69-220.cust.vodafone.cz. [46.135.69.220]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4405b50b897sm21303505e9.26.2025.04.16.06.30.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Apr 2025 06:30:20 -0700 (PDT) Date: Wed, 16 Apr 2025 15:30:12 +0200 From: Mateusz Guzik To: Ye Liu Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Ye Liu Subject: Re: [PATCH] mm/rmap: Move anon_vma initialization to anon_vma_ctor() Message-ID: References: <20250415092548.271718-1-ye.liu@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20250415092548.271718-1-ye.liu@linux.dev> X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: EDB3140009 X-Stat-Signature: sdqjq5enxugydjrr8e5jccutdbxzeb7n X-Rspam-User: X-HE-Tag: 1744810222-780487 X-HE-Meta: U2FsdGVkX1/3nhCj3z51aBxYSNSCSrCmO2qio0Kud1d0JhXHMWAFVcxeTBlbMo0p3fY/Cg0UVGQu4aW2u971REhDvdMwsWpODTmuZviArHiXpy29ifB97tQ9UFd8S+Uzqpi7LGK21iz6Ozs8G9hIwlZeV1tNPgmzHPx+XX4qItWwrOS3X2+hSIBRLyoM/JqjqTJ09sI3IQoyOiaZUk1aiYsxRDKVXcVaCMKiaDFxWIjTLx8LwAOYTs5zPr1N2q5jlbz8rOABREmZRfoQz2wIqjtm/2K10aH34kiPH5b6Fzu/XLZglTr+ot1o/YpllG3NJZBgIW8CzGv4VFO9PrKTPuTPLjsuqvQg7jt4x+NH5OSWw7gFB5zSratLXOZQptPt4THLjhCNs/T/GMZif0140zmmuZ0tH7cNtMg2UvVylLtY9P3NE67CAuPk492nEPajP01wKFbpXrLD/Qeac3HsIKEZR1+UykLqdT+s03IFntHCHgKscpEsDqu6uRfm3EI1BNIhw0yey1JkuFZ9WXjwDdZzqgEbQBOPEDrhzm2vzJgPTg9lYXApCaKhjynKmPIZDGtdfbV3BW73wmNtBx938wkStD0MkizduBXoVY/b0xs3mMjhhgjzOcMuCr2TmVU+yaQ5J6Ju89X2kQyDyEWys9mwvCE/AFcWFi/5xI+hAXVXyG9sFjuV59MF8eYik12gxAxS0Ccehme2FH3JBR8A3PyaM3wm+SrROYmNjHbiWAqsLgqU57ST7LzYrb5ILNMUlXZouNrQZ19EJwYOa7IcRyffSF9en9gEZKOfmiqs4VH6x44ZbEALb7LZ7vn57UBXp+F+Owjr1V9r4zGgo7bOZUYtXq8clhiH74PmAs/3tF6x+zn53UPauwc6ieatQmFYFvbSOzbbYwRTD49UItbcoNGfb3bDVylI+FTLp1XkqKBduPftgbUY/cy2q/lXnFF6XZZBoo4/tAKYZh1EjkV h7g6qEtZ 3z14DTE0VPIA9dfpugAjjGGvlHX4ZOyDXh77b/OehTLeyfzhNatjafSANrt+bB1iir2V9umZ4pSUGZEQbgfmyFGIRpqHfNmiwpmCUAm2kjBKdLU4M25PWmIRyo7XqYlJuIYrkEvyWL3fSXlp+bSlVBWnd/LWLzl0gwjbqCO5UUSM3D1xESaZUqUf+mGpOsEOjPm4XM9ZscW7ToHrHCVOpk77YybAHaomJ+LDPEaLTQDdnXv89w8MF4aY+MAm7MF7Ff9GH7fqfMTE3O9RIyt/fXXk+SfgwXB6fUQ45Phe41YVm8tkq0LeWyfA5Fs5q8ilZQfsOuyLYLpiY/hgdaMGbUpO/z2XWf3vnH5ccnzo9oTfxUOpmbKZcpX4hBpPnuCMC9egT+R2ugZUGYQIiJySGbBbew9fJabctUrqgYg7JkuPKp28je5EPfPcSjb9bybUSGsk5 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, Apr 15, 2025 at 05:25:48PM +0800, Ye Liu wrote: > 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) As was pointed out by Harry this changes behavior: by shifting to ctor you make it only happen once instead of every time anon_vma_alloc() is called. By extension this assumes ->refcount is 1 and so on. By any chance did you assume ctor executes every time kmem_cache_alloc() is called? When making changes of the sort I find it beneficial to place debug-only asserts in place of moved code at least during development. So in particular in this case I would add checks like these: VM_BUG_ON(anon_vma->num_children != 0); and so on. Then on a kernel compiled with DEBUG_MM this would validate the expected value is in place and blow up early and loudly if not.