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 637B5E7717D for ; Mon, 9 Dec 2024 14:30:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EE9958D006D; Mon, 9 Dec 2024 09:30:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E99CE8D0058; Mon, 9 Dec 2024 09:30:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D61898D006D; Mon, 9 Dec 2024 09:30:30 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 8FAF08D0058 for ; Mon, 9 Dec 2024 09:30:30 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 1129280434 for ; Mon, 9 Dec 2024 14:30:30 +0000 (UTC) X-FDA: 82875655254.03.15AF60E Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) by imf11.hostedemail.com (Postfix) with ESMTP id 16FD34002A for ; Mon, 9 Dec 2024 14:30:08 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=XnLH4NNN; spf=pass (imf11.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.47 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733754608; a=rsa-sha256; cv=none; b=xCbEgTPewO6bZggXiqhGigbYbIW2QPj4uUoqtuyAqzy65Dz/jgDwXLKHdqvBWLKpqM+7gj peE1JJ1OnQx9BF65cRsibix8X4vaAxaolM6JW/04M/QUY1MnELTRozy7pdw3sOU7F+Ve8k ZeukfbThe5MeTRbqZvmHBZR7HzuoObU= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=XnLH4NNN; spf=pass (imf11.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.47 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733754608; 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=xCmGrQhnqbwdfnLabY1cRyBfQOTH2omZUbnG6l3F4RQ=; b=GSbl1Y0xWPo4VyQ8GDUxuIuUQZclvhXN9RbUam3lZF7pBgZm+TDEs5fmzQ43z5LG71cVcC hRchGKPZY886xdmdjfPWppITeNpyZEjlTnh4ym5z/5FwvRc/+A23kDnobMMcKNdCeKnFVL JMJy49eNZSWpaSEDXMH/UT70pn0SUoc= Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-aa6413fc7c5so388629966b.0 for ; Mon, 09 Dec 2024 06:30:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733754626; x=1734359426; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=xCmGrQhnqbwdfnLabY1cRyBfQOTH2omZUbnG6l3F4RQ=; b=XnLH4NNNmH5RNONqAolkIGT+NOOW/XbY+BZsqgIVwrFvMKbdDoUduPXdsxAR+Ggc0T rPSkl/xIu+a7qA9/Yf57072plIPqvigaxmhEADOdH2pMAMtvvzVXqMaMm73Lb6CAViDh QLdkQyjhEM0NwDNYEGnZ7gGcJBt25Yunld7crfpErQ+mk4ZaKqXCUAaG57I/AvEbJO8X +sA13eJJChp+TR4VcUekmN1rAFjgCPNaP3bYeeZL2aDVerfslld60TGMJqrVhUmWXxff fSgINPFJaPFyVneBAi22FBKgH/0M/OGMrb55Y6QEfjcgnVSsA8K7yyf2TzNnlgFWoHMC y3NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733754626; x=1734359426; h=content-transfer-encoding:cc: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=xCmGrQhnqbwdfnLabY1cRyBfQOTH2omZUbnG6l3F4RQ=; b=gjGW21ZCgy7cQPXP4PUF9npcpNrNNyrJn9v7uILR3CE7tEUq2wCXB61WPIl0JxqfdB Jrik8BQOggM/VXDFfqnB+vcUoQBTU5pkEx99g+D9fPV/E/1aZam5t21Gv1X8rZOr02RJ RTZ/XYOWFi2QGYKcji57D4Ymxf1MMATEjnWsY6lBox3PFTWL97Hmsq+iDD9EcRxE9WtS LV5nJWaD0cdbhpCit+vR/rEq6DEMa14M8zGXmfjbaJeRgM/pKLoMBVF7IGO9VKX+iTZE 2/yo92xqw2p04wA8edGLMUVjC0sJ+C3LpXClsscjDo9unATuxDWBSD+ngwdhGm/0Ogtr QMEQ== X-Forwarded-Encrypted: i=1; AJvYcCXgxhR4L+sZWx5pDs5J4UUtn34OYyzSyKY9PEtrb4fAyuxqucU8wDwiyD5i5tOqK2v4zrIEMezMsQ==@kvack.org X-Gm-Message-State: AOJu0YwL32CM5nmHQ6A8MSIr8/dotphJGEkEVqRY8eIN1YNyc5obRy/v 29w+KlR+qoFux95VZCHw56Sw85fn74E7Chz0sxHQStGeokBic2iDUtmIPPSiUI5GIjbsc2bFOQ/ w3KmV7rJy40QpVSGZ50pTwzTneZ8= X-Gm-Gg: ASbGncvq+I1T1qPwRkveyKao5BOW1C4JjaX91mOE0EI7ZnK8kB2RSK2vmjMvULDT21v ZQx//9CaAp8imby8R3itOL9hY8r70dHk= X-Google-Smtp-Source: AGHT+IH7BfwfhJzqVBOOgzpbVdst4JM+esJi2G5ZZro56SpfsZBD4q4Obu+KflviTVH+0n24ibATIi5zBt4pumvuJww= X-Received: by 2002:a05:6402:35d3:b0:5d0:d3eb:a78f with SMTP id 4fb4d7f45d1cf-5d4183c5564mr2221084a12.0.1733754626017; Mon, 09 Dec 2024 06:30:26 -0800 (PST) MIME-Version: 1.0 References: <20241207082931.1707465-1-mjguzik@gmail.com> <94d0dcbe-2001-4a9c-a767-b337b688b616@redhat.com> <606fbf9a-c9ba-4f08-a708-db38fe6065ce@redhat.com> In-Reply-To: From: Mateusz Guzik Date: Mon, 9 Dec 2024 15:30:13 +0100 Message-ID: Subject: Re: [PATCH] mm: remove an avoidable load of page refcount in page_ref_add_unless To: David Hildenbrand Cc: yuzhao@google.com, akpm@linux-foundation.org, willy@infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 16FD34002A X-Stat-Signature: n58uohsb7f49mf1o4rrth486o8mkct7j X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1733754608-414240 X-HE-Meta: U2FsdGVkX1+7F4dRaWZfgv8mj42yfA0Fp2lHgq5A3Kj1cmzA4jdvQtDv3xIpomZpCIVc8/XSoe8weTTNLaCdhtfH05KPkjIFF76aLSEMLX5QUfYm3q8PI9VEMo7Vm+8hvZ+oP6/x2lr4Mv/vftUXLi2bp7mlWKiC5uBeJ0WVcxHxoYZvodF/z5pUXlM8K0XZbIwozfKozFTwNV8wk50mHEJd6c4c7/ZT50OWpjw68DIhUNhENDz/trdms8c8WEpIJ8lJD813nFRwNKj0Gqnbc4E1ou/Pyn8doZDdfpy7N6Nplk+khH6LckXTH0/A29vJcFLuQc6ZT0ucnFiz75L2ghv9BEYsfYA0JuBt4e9iHayeeL6CE8RqFI4ffTPADAt9hK6OlqOs7E2DZv5hIIiKVFYIMrEk+p2ZY0+2hkUr+4vvhrOhGYUt8K8q/A6gJiEF7N689c6Q6g5ETC2wUpuydzAfr9AlPeJdhQ8ERxI6731mBN26AXqE2xeRghrl8ypivk+iE8a1pzHleilYTPKiQuLYAAm/y0Bcm7D3o6YX9KurM4NB4pRZT1swgELfUiEdc8MqHUhy1PrEFKpotlE0b2vWJ52crnCkwgPwitp6oGNwzM3tjNNpxMaQAswMvlNzjLRXm2YSxWtUnxwGorA0BTmAlS4jAKdLF+H0jskOMXeTi7RWdbzKnz9Su/Qv7ax8HHVBfzGAg9PLPl99Lpbt+D43MoADrhOjHS6Zf+LjfJhvzOb7KEkcSscsKVWeCWRU15YWZZgoHCsRpA63wrA/3NcztflDFEO6Bq17ud+KIySrfi6Z0rQEfx9ka2dRwK8d2oBCNuRwIH1LGh5KCOmGjfnyZji8XYvqSvI3BL+MLU8q8RwcHqfATsYpCMLSHRKxJ44giEfBcaqzi1h+a9wFkNc3vvGmxcN+neoTyaIpzhCel1xwdvdgwgChbdA5/neI8PHbULBLL5FtkIjQiw7 U2UIkcHu RneqtU28K7c/ZBkGmTKacP+9MCGs25+zrHX7qTU8T2CYS34EpdqSwFU0pbcufNHX4sEIgQ9kBJJWYgmJdY6KL+k39voZ5k4MxhM3WMS3p/5w7neESXPDSO60uVf9tlP6Gow6VmLWrYkePlgkCn1d3QPF+IPAl9KswPoNgzJuJzXj4s198zFcSbCCB0cLk8126HMKdFb3lKu9kOjuZrLl2L9Ia9Zg39RqYGvsQS55CcRJBh6wpIJXFl5IZdAsUbCYi9FmP8kbACSiY8JrIijGkAKoUGSgaVGZcExhE/AYlyXIlv7IvOPwhHIMFvMDmiRF3gFwQlS6RzrJnOuxe6CaMtdtPadXUyE5gxOmPA8tMylvuOTaL8y/8I1IQg3Ri9b6CYMSY2NFPazRr3LpkGNOyr87aVDTIwuhWQiA8l7avcmqsjHmDV4FW3LM6D3GhaPm2rcAC5GXz89IYHyQ= X-Bogosity: Ham, tests=bogofilter, spamicity=0.401512, 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 Mon, Dec 9, 2024 at 3:22=E2=80=AFPM David Hildenbrand = wrote: > > On 09.12.24 13:33, Mateusz Guzik wrote: > > That is to say I think this thread just about exhausted the time > > warranted by this patch. No hard feelz if it gets dropped, but then I > > do strongly suggest adding a justification to the extra load. > > Maybe it's sufficient for now to simply do your change with a comment: > > diff --git a/include/linux/page_ref.h b/include/linux/page_ref.h > index 8c236c651d1d6..1efc992ad5687 100644 > --- a/include/linux/page_ref.h > +++ b/include/linux/page_ref.h > @@ -234,7 +234,13 @@ static inline bool page_ref_add_unless(struct page *= page, int nr, int u) > > rcu_read_lock(); > /* avoid writing to the vmemmap area being remapped */ > - if (!page_is_fake_head(page) && page_ref_count(page) !=3D u) > + if (!page_is_fake_head(page)) > + /* > + * atomic_add_unless() will currently never modify the va= lue > + * if it already is u. If that ever changes, we'd have to= have > + * a separate check here, such that we won't be writing t= o > + * write-protected vmemmap areas. > + */ > ret =3D atomic_add_unless(&page->_refcount, nr, u); > rcu_read_unlock(); > > > It would bail out during testing ... hopefully, such that we can detect a= ny such change. > Not my call to make, but looks good. ;) fwiw I don't need any credit and I would be more than happy if you just submitted the thing as your own without me being mentioned. *No* cc would also be appreciated. --=20 Mateusz Guzik