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 3D76EC3DA49 for ; Sun, 28 Jul 2024 20:54:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 53C846B007B; Sun, 28 Jul 2024 16:54:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4EBD86B0083; Sun, 28 Jul 2024 16:54:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3DADD6B0085; Sun, 28 Jul 2024 16:54:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 201F26B007B for ; Sun, 28 Jul 2024 16:54:55 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id A481BA2852 for ; Sun, 28 Jul 2024 20:54:54 +0000 (UTC) X-FDA: 82390365708.01.1EE5664 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf07.hostedemail.com (Postfix) with ESMTP id 52EF940011 for ; Sun, 28 Jul 2024 20:54:51 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=IYo4nPou; spf=pass (imf07.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1722200066; a=rsa-sha256; cv=none; b=lKfe2U9HBgH5F10OSQboGuZPtBhM1Cy9umDYagrCsGdqxtIqOsWumav+dycc64cPgV4iIQ DCi3jEwegxb4XPNFN5KK2Vlg6p6uYfDrH0vcHXXSatNMD346BOfkL/blO+ziZKo0DqaABc WWQoEvRfag46OJjfFqYKf3DlxDUWeEI= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=IYo4nPou; spf=pass (imf07.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1722200066; 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=4FrPO2xHdHCuLmr2J0C6j/8LXeqQs47KZMpdgJ5EuOc=; b=US8tF21ZPYcRSeEXm7Kg+pQ2Mdqek3AtdZk1s+lc8vk65XOK2vMmQOMC6D2ZEJt/0TpzDm AFeqaZ5j26S7kSiTaIDkzx5focXpq079GSR8PPGZcSj0tXUbP4UNTUhkZGfoeN9WlzDzeM ONqcZSFp2TAfBI3s0avSb47md3d3Fsg= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 0C788CE0948; Sun, 28 Jul 2024 20:54:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1C528C116B1; Sun, 28 Jul 2024 20:54:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1722200088; bh=MAU1ikI6v16DyZvdLv0S92uOhVuGjagitvH5oKp7HDY=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=IYo4nPouf6CpSTVS2ELBpRlKJMUdykEzMfkhbAbpA+vRb8qD8b8LWb7kYIX5MuMX/ 9VsqbDF5t7OpvjFDSY1cEhfxL1tTezkzfnotFa29dw905pMyKHY4sMZVSAfzkZ/6PG KQEewi5etss8oZyoxSb63zvB542jhqZwDayi2JU0= Date: Sun, 28 Jul 2024 13:54:47 -0700 From: Andrew Morton To: Johannes Weiner Cc: Roman Gushchin , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Michal Hocko , Shakeel Butt , Muchun Song Subject: Re: [PATCH v3 3/3] mm: page_counters: initialize usage using ATOMIC_LONG_INIT() macro Message-Id: <20240728135447.bd5f7b44e1b7a583bfaaee36@linux-foundation.org> In-Reply-To: <20240726231110.GF1702603@cmpxchg.org> References: <20240726203110.1577216-1-roman.gushchin@linux.dev> <20240726203110.1577216-4-roman.gushchin@linux.dev> <20240726231110.GF1702603@cmpxchg.org> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Stat-Signature: u3tyyxrbbini7nufwkks5kwrqz3ru7wy X-Rspamd-Queue-Id: 52EF940011 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1722200091-388299 X-HE-Meta: U2FsdGVkX1+3e0Ety5toSlAichWUr/riuPK3chvOlPF8k2/k1ttxVDx+53fsWSRXXmgqBsZb+UR/zji4sd3c92fg18ywZ1iIBHDMF02RJ9TbZUCq/vFzdw4e6C5/5R7eBM7P0ORaBax28dXRdykLtSuBq/7Nb8/vR2X88HhYmMWGTbKpjChfwpEPLVxDewQ2mDf1S6nQokTv0JJrUJ5YasoVNtPPaNiHB2IvS0DxZ4RJdxMo2Mp6ZgHaxM1UhfYGYdCmZjB8hA3R3d6orjfzBam5ofyuBw997OW55rh+ADbuRD5vuWJjK4ADESVR5uZan353A/37w8MMMVmfulltAdU0DnAGPnPuAxsr8Ep5tSUIqxfvmydfxmvLOIqYuZGP2cO0IUD6S3l261Hc6p/ZKqr4HJ3JfWBv0XJG+jRwnYzbNNNALCGKHzRUFAlAl9Ycn0QikQec7TzNUfKzkiBgJBUHw69V02Y1S17MJZVYtsJpAUufP3asDgtJ724XrqsB+C4g/nvYg+0CaeIg8DBcoFWvPqDqSyerkzPfQHKBhUkhcLyO6EX4NLBBU2v+OZNeo+0cy7cWd/WrXJSj66NZ/3eIm56Fd+iMUpJnxLFrfAqnrVMCJbPrNgZBlwatDw34pyu30xBHh4eXN6VXNaXJas87hXN2nfBTGz31EAe+dxny/eMhwGvfqw7tVxxeVs4510OWgMnEy29lI9t0gAIlkNTrW7xg9590zj+K1wsshoUYLBJGJ6+LkGznZwnmpHFtqCB7oPxFJgZtWckuG3e02QOFFX6VW0ldUd6IpVAMswkz0bFfYBzh7tZq3pDMMKAsk4AYpNU5W6uKB9GijimW0vAHiN+ZfsvWFdFRsYYDdcKXHyAocf/CxKQxN+MMuXEzE3rZ/M9gGhblg1Budb11KPhWcWHQUxzynXADdxaqH+5xIbjk7TS22ebBnDDC7LIqyRLHGtbD8d8ypzKRSU9 hpG9vnqh tBTYTKNvWySNwlzd33yszumprS7XbkeYIB6QwTcf6nT5RksdzOAswcXtjRAkLZhJItLs9f/MO4nx/lx0+VJBXz2yC32HsBQwC3wmJB9eASYwK2slozdpoif66cTNorcBth+7HgYAoq/krF4FO+dz406uYV2K8gsfW3ww2wzYWzNA5fuAyuRLentp82utNix7oNv7BYQEoSJyVrsHNF+bGvf08R8AsziyVFdeXYrUZbQs/x4lsfZos+/2ipDziaeAOQa/Vxs280TLBEwDPUuF/usIWzFMr4fghX536sXHIc+KwK3dB/wpRx9JYz4UEzIyUQNCunw0gIhewWgo= 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 Fri, 26 Jul 2024 19:11:10 -0400 Johannes Weiner wrote: > On Fri, Jul 26, 2024 at 08:31:10PM +0000, Roman Gushchin wrote: > > When a page_counter structure is initialized, there is no need to > > use an atomic set operation to initialize the usage counter because > > at this point the structure is not visible to anybody else. > > ATOMIC_LONG_INIT() is what should be used in such cases. > > > > Signed-off-by: Roman Gushchin > > --- > > include/linux/page_counter.h | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/include/linux/page_counter.h b/include/linux/page_counter.h > > index cf837d0f8ed1..5da11392b382 100644 > > --- a/include/linux/page_counter.h > > +++ b/include/linux/page_counter.h > > @@ -53,7 +53,7 @@ static inline void page_counter_init(struct page_counter *counter, > > struct page_counter *parent, > > bool protection_support) > > { > > - atomic_long_set(&counter->usage, 0); > > + counter->usage = (atomic_long_t)ATOMIC_LONG_INIT(0); > > Pretty cool that ATOMIC_LONG_INIT() return value needs a cast to > atomic_long_t! ^_^ That's because this wicked patch passed in an `int'. counter->usage = ATOMIC_LONG_INIT((atomic_long_t)0);