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 821C4C61CE7 for ; Fri, 6 Jun 2025 22:22:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A92C76B0088; Fri, 6 Jun 2025 18:22:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A1C926B0089; Fri, 6 Jun 2025 18:22:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 959206B008C; Fri, 6 Jun 2025 18:22:22 -0400 (EDT) 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 795FC6B0088 for ; Fri, 6 Jun 2025 18:22:22 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id D9AF85CC60 for ; Fri, 6 Jun 2025 22:22:21 +0000 (UTC) X-FDA: 83526400482.15.F840F91 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf19.hostedemail.com (Postfix) with ESMTP id 424191A0004 for ; Fri, 6 Jun 2025 22:22:18 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=wMkUF4uX; spf=none (imf19.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749248540; 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=lz9UeLDgVYVaKON14uED3MBLQu5RUB1L4GSkvYQMTvI=; b=cicQMYSa1pgLbQJ3ltZVpMdCr5WwW2LNzbX2UirVXt0eY7mtK0Xc0ltfayNq8v4U9RdvsX VG0MjiSy6Or8GoyqW02oMXetuHsh7HXs5jVu76Mhgu8xG4nNJfp6BCx/ffnj6Z9UERJQFD Ubk5TXS0SFp+6Cy+RlXpdoasLRabwGE= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=wMkUF4uX; spf=none (imf19.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749248540; a=rsa-sha256; cv=none; b=qqNR5KubDBmmNPMtpePEg87MC9J9viQyE4mJ2UPF4tlrYoTmgNp/SljS3OaZ04UwITth2Z dFtdproJ9/M0imMS2NeOlDdQzk27NzS9QKy7luGci1LnPP7uldoKICiP3wxenIgCSWYqsX GMWgoWMyFb7iY9iEFPV3ptEfu1+lOME= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=lz9UeLDgVYVaKON14uED3MBLQu5RUB1L4GSkvYQMTvI=; b=wMkUF4uXPC2PbrEWcR72dkiAua gynwqRPPG6VMqTQkgJ1dK7uaczNg6JQBrJ9t6jqdDYdqJxyNCPzNBIrmIPtJwj7KUfqifwR9vE3dM /aEQfIFPHd9/BmDaJp6uYKN+mTTLSXYgs4XLyCJi6Iz/WZWKa+O9C6aEqL98VK7ClTwM3Rd7V7g2a rPQ8uftJB7/In2mFNi8vH4mRHW+2eUi2Kg4mxDAQdE9HSoLwsTcdqQMmJu4zKFFPMc3dGSQNkbX2+ lMyNPaXkVGWhAwtRAViRvHP5EJQlc2BFe1tz0X8DBLM0RhlVRr7QvsyKuRjoRbC8+hLNRH2sx+tuo 7O/wN9mA==; Received: from willy by casper.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1uNfS5-00000005r7M-02Bt; Fri, 06 Jun 2025 22:22:17 +0000 From: "Matthew Wilcox (Oracle)" To: Vlastimil Babka Cc: "Matthew Wilcox (Oracle)" , Christoph Lameter , David Rientjes , linux-mm@kvack.org Subject: [PATCH 04/10] slab: Add SL_pfmemalloc flag Date: Fri, 6 Jun 2025 23:22:06 +0100 Message-ID: <20250606222214.1395799-5-willy@infradead.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250606222214.1395799-1-willy@infradead.org> References: <20250606222214.1395799-1-willy@infradead.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 424191A0004 X-Stat-Signature: 7um3sk1451dbun5dhd5zygjdp9y6mqij X-Rspam-User: X-HE-Tag: 1749248538-86272 X-HE-Meta: U2FsdGVkX19yMe46CvQiAmOMShz5KY4LPVhdYVpNuNDeACru9xUbosBW2miFAv2KspRayjSOQhr8POHSQcyVWNJ8IBFslY0NzJEid4e9RTZG9jj9/iMx6aDLA7sZeVkd5DrCDAWqzCEnE93JDYjpiFs6acQOijBtwMPonyOSmaKwtCVfdAHchq7DhRqCQLOooKncBPBIuRnBnL8JYNOsl+pTx2HbNmu3/i07tRC8ausuKVJGD+FLrDBh0e086AB50I3HDCkUtgnzlLFAtGE/ymWvQwHCfjpZaRWZHxVNs3VcgRWJPyuREm3if9iD8T1kVpFn4bQicOW2Udr3fnbjwfw4gjqsOTzt/ZhSoXEp9DZr9IUOnPlepHeyfFkIoMWoJMExNYWy9VW7lucVxvzRIXguSo30o5Gz8kINhq/rrVOcmIEqqF6q2EYTyJj4A0I9Sso8EtWEcejnkQhag69F0hcoSsKH9L1qWm4bEs+qJiH8E6uV+S3fG74Rx6r6CEVqYZoC1fKcdPNjbHcKpEbp9HYZW+QmOjxFjKP2VmakKq0oVEyaWjaAi5Q606I4Axa2BvLarpr2ypBngpV/Nmg7FcZRE4lJO0pqs9ciX98NR2W4av6l6nFP/KKBdksoxj+LIV2jI1/CmyP6CHxB7EUJBeR1zoF+oEVsDAcL5iTLKX9QLkI2gGZmN4pQKYh5rT4BEe2WUAEccgXvXDr23z+IKSJEdYhZvyeZqQi37R8BW/q2woxNaYphCjuRtv5mQAUqEFzkYy0PoHUpM5LlM2TYIv3H0AOMhx3RK00ayliDt3S/ojqAZ7XFagHzOS/hmYM4Lzs2DGFwxCePgZ0TEk/NOJtxPMkrfISj/jzPqi/IkD04pZ35mZ45J0mOpqI7GTTblv3eaDoFhV01v7iAw1YDcl0CxE7kprV6XNIUzMwqRvOijE+LB9okjRpX0+m+S7bWtGWWqkpowQwmjTAjE8p XaWaWAVR HA5vnickXbM31+15t8PF9dt89dSJ9SiBQuE8tDE6bmtxKPW3xzNFwJjT03H/YhXwfKWMbTJ1sj5vc3IPmxOKQz/YH+9LD2ItRc71I+8Be0oHBnlE/ZcNlXmNaN/U5h3OKsh8OvF+fNM0+KVZGGmvu4Mq9sIG1JmgiJNqMwZHRSalELBsDYzZaBYZUS2AOgXEPyb6asRC2zEszTEcbbhbd4HOjzbQkqk4cg1swrLnEJJsSMo6zMa7zpJYJiYxBYzwD+lHrYiIES7jqmtZ6qU49eUh8i0m1XoSKzASj 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: Give slab its own name for this flag. Move the implementation from slab.h to slub.c since it's only used inside slub.c. Signed-off-by: Matthew Wilcox (Oracle) --- mm/slab.h | 26 ++------------------------ mm/slub.c | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/mm/slab.h b/mm/slab.h index fca818011f7d..aa991b1b059d 100644 --- a/mm/slab.h +++ b/mm/slab.h @@ -117,6 +117,7 @@ static_assert(IS_ALIGNED(offsetof(struct slab, freelist), sizeof(freelist_aba_t) * enum slab_flags - How the slab flags bits are used. * @SL_locked: Is locked with slab_lock() * @SL_partial: On the per-node partial list + * @SL_pfmemalloc: Was allocated from PF_MEMALLOC reserves * * The slab flags share space with the page flags but some bits have * different interpretations. The high bits are used for information @@ -125,6 +126,7 @@ static_assert(IS_ALIGNED(offsetof(struct slab, freelist), sizeof(freelist_aba_t) enum slab_flags { SL_locked, SL_partial = PG_workingset, /* Historical reasons for this bit */ + SL_pfmemalloc = PG_active, /* Historical reasons for this bit */ }; /** @@ -181,30 +183,6 @@ enum slab_flags { */ #define slab_page(s) folio_page(slab_folio(s), 0) -/* - * If network-based swap is enabled, sl*b must keep track of whether pages - * were allocated from pfmemalloc reserves. - */ -static inline bool slab_test_pfmemalloc(const struct slab *slab) -{ - return folio_test_active(slab_folio(slab)); -} - -static inline void slab_set_pfmemalloc(struct slab *slab) -{ - folio_set_active(slab_folio(slab)); -} - -static inline void slab_clear_pfmemalloc(struct slab *slab) -{ - folio_clear_active(slab_folio(slab)); -} - -static inline void __slab_clear_pfmemalloc(struct slab *slab) -{ - __folio_clear_active(slab_folio(slab)); -} - static inline void *slab_address(const struct slab *slab) { return folio_address(slab_folio(slab)); diff --git a/mm/slub.c b/mm/slub.c index 804b39d06fa0..bbd96431a50a 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -634,6 +634,25 @@ static inline unsigned int slub_get_cpu_partial(struct kmem_cache *s) } #endif /* CONFIG_SLUB_CPU_PARTIAL */ +/* + * If network-based swap is enabled, slub must keep track of whether memory + * were allocated from pfmemalloc reserves. + */ +static inline bool slab_test_pfmemalloc(const struct slab *slab) +{ + return test_bit(SL_pfmemalloc, &slab->flags); +} + +static inline void slab_set_pfmemalloc(struct slab *slab) +{ + set_bit(SL_pfmemalloc, &slab->flags); +} + +static inline void __slab_clear_pfmemalloc(struct slab *slab) +{ + __clear_bit(SL_pfmemalloc, &slab->flags); +} + /* * Per slab locking using the pagelock */ -- 2.47.2