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 68BE3C5479D for ; Fri, 6 Jan 2023 23:23:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C5E2E8E0002; Fri, 6 Jan 2023 18:23:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C0CE68E0001; Fri, 6 Jan 2023 18:23:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AD4CA8E0002; Fri, 6 Jan 2023 18:23:57 -0500 (EST) 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 9EB938E0001 for ; Fri, 6 Jan 2023 18:23:57 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 6A154120E9B for ; Fri, 6 Jan 2023 23:23:57 +0000 (UTC) X-FDA: 80325954114.07.5A08C36 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf07.hostedemail.com (Postfix) with ESMTP id DDDBC40008 for ; Fri, 6 Jan 2023 23:23:55 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=V6hoVNwO; spf=pass (imf07.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1673047436; 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:in-reply-to:references:references:dkim-signature; bh=z0CwGrxELIAzTH6XvbJHxAjTC7f+hD8FqVOP90neThk=; b=kIEITz0uzDxcpgLTxPuM9+SW+T5HaS5fzpiqi4SivAY5t1AMUGgat75nVMrI5hvvxxPy/N Fys+xP2qB4r0yt8DAwor/49n0JOB0inK2l9//3bx9PUZpxvrWgT0x4qtqPVZfCvZks173G cVM2kprwZfa4BuwD2OsoNF0wuM/I8+0= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=V6hoVNwO; spf=pass (imf07.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1673047436; a=rsa-sha256; cv=none; b=cP0klZ8zAvlNbG57RopLfI0n9+KuQ3SjalWvzzr0eS5dBvkAgL9Huh/LIys1CAegm34SAx r5YNhYRgngJHydG6gBJ1JC4u+fY1viQrVdNhV0FvBHaTGfPJ4zpazjsqIKQTukb6wMZyL5 nM9lGfiteXU8zm7Xg5VKtUabVpEWd/4= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id BE0F561F9E; Fri, 6 Jan 2023 23:23:54 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 99C0AC433EF; Fri, 6 Jan 2023 23:23:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1673047434; bh=3vR6NKS+8/yDQjacQCEJb90byWuxg5F7fZOgQOiReDg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V6hoVNwOsxR3O9WTuGhqKa+r81MHV/aTvBqWvil5PnvOy5xGqsZ9nMgVfiK9mGT5I r+XdOGgbyG75OkC1/VVdK+To2F5z7zoNXFTXt1csLg7QZqsWkTOW0KDDPQwcy86EDl xpbZmfWQuK+Ob6smVigQePpwaSh7IHgJlsHmFIJj3tjJIruOMEoGqyBxZ+2vYZRqq7 6y42FY2OFq/avhdsaAV26tUoPv1m5eHiymgKti95A/rtEZD6iV8vjO8zrdtOBLvUWJ i9KmIwjAEoKdKXWOyZTsOaoOOCohixJvFM5wKeuOrVOoB4kPQy7U7LdawdCRVkMvEy fyuVr4ncJs40g== From: SeongJae Park To: Sidhartha Kumar Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org, vbabka@suse.cz, sj@kernel.org, Matthew Wilcox Subject: Re: [PATCH mm-unstable] mm: introduce folio_is_pfmemalloc Date: Fri, 6 Jan 2023 23:23:52 +0000 Message-Id: <20230106232352.1520-1-sj@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230106215251.599222-1-sidhartha.kumar@oracle.com> References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: DDDBC40008 X-Stat-Signature: jmapbzprhom73qurb7jsrmwz7xznk5cz X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1673047435-786959 X-HE-Meta: U2FsdGVkX1/hzUKv1wFOPAEDMyZgC8b78AIcW6qgxiKDnobo+6vOXIOADu+e304e2GUTr27QlVyYaai0K8BPbkVjBCBgiT6YJlADV/h/4QxrxUHAKxKBesVBLvE8V59QU6+9WMaXGN6GRt6Jjz42rM6UfxVojLqQdqfffb2fs/lxEQNClEu8dkDL5PYIV4A4Q8b3C30JHqi+ZTjOfC3iYzbDxJ3JnYBHku4cCezXPudyX9xmnZIuq7mhsnfPjlpzvnMd8kbRScyNeWc7VdfKLFH8dPT6MZZ0UdIe7XFD2owZO/OJMQ0VD8T0Hrc8vylX6RtDMUavPdASE7tFs+JBrGo+6fW399clnNpS/rmRgwTyn/c3PJL3vVxBiXLrhLMg0QLSry8nfsiQHMOtEljbz2NLDCrz4w3p2msdTAxICnG+2xsh9x8s+d2ewyNLkOsuPAZnthfkTe5c02LQC8EbHsKxoFrGkfq+ANiXU8mf6EUA+AMrxpwbSQg4FW+AHxTpMZSyEzFjkydfp4V8yXXGNEUAvMhEzLcYxMSFXidEIH4P5GhDeH6WGv+JVIgqJYI9Ij2SDtgrfhp44I8BsByf71eJop1/KrkUrcSkY6MaBv6zI60HGYnWoVttm7z9YxY4OnnQdr63yID1/o9YSCN2oqedvdDZhlPNQSo6Hj1iq+rpj4OBd3uhxQfdDfOhfdck3wAG+VlGM0tm/Ae6AN7ejWkAiBz6GnBNFqRy7Z/8cX3Oehwhf2McXPUKZ8bFYZr/dqtGtDIwpi7UVT21POifMkHpw2t62dYD+IoF2t+vm9UcIqr5x9epkV8gDCAZxa2oryCpqP8/68CsHv4CKw2G136PIV3FzwZDSIR1d/pHO+6w87ngiutf71A9Qj8BW57iU239My/5hJ4o9f3EtOgHKlz8JZz1XEFYSeqBoj3h0dCMcmRba9Awmrjoaykw7lZF9QictlbsXKrzQblkjy3 GXb8zugB XmiFHAniiauEtgP0iVnptU7l36E/rx9b9pTijHO6sHRJpdWG0CkrpWipz7HitfEvryTKZ07SCUUxWZbbNynFX6LTnWWMtWXJSTzQkyXNfY5n7KXcfTu8I0kDxPg== 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: Hi Sidhartha, On Fri, 6 Jan 2023 15:52:51 -0600 Sidhartha Kumar wrote: > Add a folio equivalent for page_is_pfmemalloc. This removes two instances > of page_is_pfmemalloc(folio_page(folio, 0)) so the folio can be used > directly. > > Suggested-by: Matthew Wilcox > Signed-off-by: Sidhartha Kumar Reviewed-by: SeongJae Park Thanks, SJ > --- > include/linux/mm.h | 15 +++++++++++++++ > mm/slab.c | 2 +- > mm/slub.c | 2 +- > 3 files changed, 17 insertions(+), 2 deletions(-) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index c37f9330f14e..79d5a0cbf4c3 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -1906,6 +1906,21 @@ static inline bool page_is_pfmemalloc(const struct page *page) > return (uintptr_t)page->lru.next & BIT(1); > } > > +/* > + * Return true only if the folio has been allocated with > + * ALLOC_NO_WATERMARKS and the low watermark was not > + * met implying that the system is under some pressure. > + */ > +static inline bool folio_is_pfmemalloc(const struct folio *folio) > +{ > + /* > + * lru.next has bit 1 set if the page is allocated from the > + * pfmemalloc reserves. Callers may simply overwrite it if > + * they do not need to preserve that information. > + */ > + return (uintptr_t)folio->lru.next & BIT(1); > +} > + > /* > * Only to be called by the page allocator on a freshly allocated > * page. > diff --git a/mm/slab.c b/mm/slab.c > index 7a269db050ee..01291ecbc0d8 100644 > --- a/mm/slab.c > +++ b/mm/slab.c > @@ -1373,7 +1373,7 @@ static struct slab *kmem_getpages(struct kmem_cache *cachep, gfp_t flags, > /* Make the flag visible before any changes to folio->mapping */ > smp_wmb(); > /* Record if ALLOC_NO_WATERMARKS was set when allocating the slab */ > - if (sk_memalloc_socks() && page_is_pfmemalloc(folio_page(folio, 0))) > + if (sk_memalloc_socks() && folio_is_pfmemalloc(folio)) > slab_set_pfmemalloc(slab); > > return slab; > diff --git a/mm/slub.c b/mm/slub.c > index 13459c69095a..0cbe6eff23fa 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -1859,7 +1859,7 @@ static inline struct slab *alloc_slab_page(gfp_t flags, int node, > __folio_set_slab(folio); > /* Make the flag visible before any changes to folio->mapping */ > smp_wmb(); > - if (page_is_pfmemalloc(folio_page(folio, 0))) > + if (folio_is_pfmemalloc(folio)) > slab_set_pfmemalloc(slab); > > return slab; > -- > 2.39.0 > >